Lập trình VBA tạo BS TreeView unicode và Task Pane

Quảng cáo

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia ngày
13 Tháng sáu 2006
Bài viết
4,380
Được thích
9,908
Điểm
2,868
Nơi ở
Hà Nội
Microsoft đã ngừng hỗ trợ ActiveX Controls, các controls cũ không hỗ trợ unicode, không có Task Pane. Tôi đã phát triển BSAC - Bluesofts ActiveX Controls để cho những người lập trình thiết kế phần mềm với giao diện chuyên nghiệp trong VBA.

 

vu_tuan_manh_linh

linhvtm84@gmail.com
Tham gia ngày
27 Tháng hai 2010
Bài viết
2,539
Được thích
1,825
Điểm
1,368
Nơi ở
Hà Nội
Xin được hỏi bác Duy Tuân: sau khi tạo ra phần mềm sử dụng menu lệnh này, cài đặt trên máy tính không có A-Tools thì menu này còn hoạt động được không ạ?
 

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia ngày
13 Tháng sáu 2006
Bài viết
4,380
Được thích
9,908
Điểm
2,868
Nơi ở
Hà Nội
Xin được hỏi bác Duy Tuân: sau khi tạo ra phần mềm sử dụng menu lệnh này, cài đặt trên máy tính không có A-Tools thì menu này còn hoạt động được không ạ?

Em hãy copy file BSAC.OCX trong thư mục hệ thống là
C:\Windows\SysWOW64
hoặc
C:\Windows\System32

Khi mang sang máy khác em phải copy file BSAC.OCX vào thư mục hệ thống của máy đó và Register nhé. Như vậy không cần cài A-Tools (bản chất A-Tools giúp mình cài BSAC mà thôi. Em có thể tạo bộ cài tự động bằng InnoSetup cho tiện dụng.
 
Lần chỉnh sửa cuối:

vu_tuan_manh_linh

linhvtm84@gmail.com
Tham gia ngày
27 Tháng hai 2010
Bài viết
2,539
Được thích
1,825
Điểm
1,368
Nơi ở
Hà Nội
Em hãy copy file BSAC.OCX trong thư mục hệ thống là
C:\Windows\SysWOW64
hoặc
C:\Windows\System32

Khi mang sang máy khác em phải copy file BSAC.OCX vào thư mục hệ thống của máy đó và Register nhé. Như vậy không cần cài A-Tools (bản chất A-Tools giúp mình cài BSAC mà thôi. Em có thể tạo bộ cài tự động bằng InnoSetup cho tiện dụng.
Thanks bác! Em đã hiểu!!
 

hpkhuong

######
Tham gia ngày
20 Tháng năm 2011
Bài viết
4,624
Được thích
4,088
Điểm
1,568
Nơi ở
Quận 2 - TP.HCM
Em hãy copy file BSAC.OCX trong thư mục hệ thống là
C:\Windows\SysWOW64
hoặc
C:\Windows\System32

Khi mang sang máy khác em phải copy file BSAC.OCX vào thư mục hệ thống của máy đó và Register nhé. Như vậy không cần cài A-Tools (bản chất A-Tools giúp mình cài BSAC mà thôi. Em có thể tạo bộ cài tự động bằng InnoSetup cho tiện dụng.

Đã đăng ký thử OCX, khi show trong Toolbox (VBE) khi trỏ chuột qua lại nó hiện Unknown mà không hiện tên nha anh!
 

Kiều Mạnh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
4,357
Được thích
3,016
Điểm
1,568
Nơi ở
IIIIIIIIIIIIIIIII

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia ngày
13 Tháng sáu 2006
Bài viết
4,380
Được thích
9,908
Điểm
2,868
Nơi ở
Hà Nội
ĐOÁN BẬY CÁI COI
Hình như File *.OCX đó viết trên VB6 nên nó tèo trên Office x64 thì phải ...
Nếu nói sai Mạnh xin lỗi ... Nói lại -0-0-0-

BSAC.ocx lập trình trên Delphi cho hai nền tảng 32 và 64-bit. Để tôi test thêm control này trên Office 64 bit nữa nhé hpkhuong. Bạn thử trên máy Office 32-bit xem trước nhé.
 

Kiều Mạnh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
4,357
Được thích
3,016
Điểm
1,568
Nơi ở
IIIIIIIIIIIIIIIII
Lần chỉnh sửa cuối:

hpkhuong

######
Tham gia ngày
20 Tháng năm 2011
Bài viết
4,624
Được thích
4,088
Điểm
1,568
Nơi ở
Quận 2 - TP.HCM
Mạnh mới thử trên Windows10x64 - Office2016x32 thấy ok đó nha
Còn File *.ocx không nhất thiết phải copy vào Folder hệ thống của Windows vẫn đăng ký ok ... thích để trên Ổ D hay E ok hết View attachment 199823

Anh thử code xem có view được trên office 32 bit không.

Mình thử test trên office 64 bit (vẫn chọn controls và vẽ vời được trên user form) nhưng khi F5 để run code-> Excel đóng luôn...

Và việc đăng ký thì chỉ đăng ký được vào thư mục System32, không đăng ký được trong thư mục 64 bit ( Đang xài office 64 bit)
 

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia ngày
13 Tháng sáu 2006
Bài viết
4,380
Được thích
9,908
Điểm
2,868
Nơi ở
Hà Nội
HƯỚNG DẪN ĐĂNG KÝ ACTIVEX CONTROLS "BSAC.OCX" CHO WINDOWS

(Chỉ làm lần đầu tiên)
Có 3 tình huống copy vào thư mục Hệ thống của hệ điều hành
(*) Nếu Window 32 bit, Office 32-bit
Copy Office 32-bit\BSAC.ocx vào thư mục C:\Windows\System32\
(*) Nếu Window 64 bit, Office 32-bit
Copy Office 32-bit\BSAC.ocx vào thư mục C:\Windows\SysWOW64\
(*) Nếu Window 64 bit, Office 64-bit
Copy Office 64-bit\BSAC.ocx vào thư mục C:\Windows\System32\

Sau khi copy xong, hãy chạy chương trình "Command Prompt" quyền Administrator và đăng ký.
 

Kiều Mạnh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
4,357
Được thích
3,016
Điểm
1,568
Nơi ở
IIIIIIIIIIIIIIIII
Anh thử code xem có view được trên office 32 bit không.

Mình thử test trên office 64 bit (vẫn chọn controls và vẽ vời được trên user form) nhưng khi F5 để run code-> Excel đóng luôn...

Và việc đăng ký thì chỉ đăng ký được vào thư mục System32, không đăng ký được trong thư mục 64 bit ( Đang xài office 64 bit)
Ý code theo hình phải không ... Thấy OK đó ha
rrr.PNG
Thử tools sau đăng ký xem sao ... File *.ocx để ổ nào tùy thích nha miễn sao trên HDD cài Win ( USB là thua)

Mạnh đang nghĩ nếu Ứng dụng tốt ta nghĩ ra 1 cách là đính kèm File *.ocx vào Excel xong mang đi máy nào là có luôn trong đó ... Nhưng khó là làm sao Code để xuất File *.ocx đó từ Excel ra Folder
 

File đính kèm

  • ReadyForActiveXDLL.rar
    21.8 KB · Đọc: 21
Lần chỉnh sửa cuối:

Nguyễn Duy Tuân

Nghị Hách
Thành viên danh dự
Tham gia ngày
13 Tháng sáu 2006
Bài viết
4,380
Được thích
9,908
Điểm
2,868
Nơi ở
Hà Nội
Ý code theo hình phải không ... Thấy OK đó ha
View attachment 199834

Sự kiện BSTaskPaneX1_OnVisible để báo người lập trình biết trạng thái ẩn/hiện.

Mã:
Private Sub BSTaskPaneX1_OnVisible(ByVal View As Boolean)
    If Not View Then
        MsgBox "Task Pane dang an (visible = False)."
    Else
        MsgBox "Task Pane dang hien thi (visible = True)."
    End If
End Sub

Khi cần hiển thị lại thì chạy thủ tục:
Mã:
Sub ViewTaskPane()
    UserForm3.BSTaskPaneX1.View = True
End Sub
 

batman1

Thành viên gạo cội
Tham gia ngày
8 Tháng chín 2014
Bài viết
4,008
Được thích
6,363
Điểm
2,568
Mạnh đang nghĩ nếu Ứng dụng tốt ta nghĩ ra 1 cách là đính kèm File *.ocx vào Excel xong mang đi máy nào là có luôn trong đó ...
Gói ocx vào tập tin Excel? Thế thì nặng tập tin Excel.
Nhưng khó là làm sao Code để xuất File *.ocx đó từ Excel ra Folder
Thì ghi nội dung ocx vào Excel rồi sau đó đọc ra thôi.
Tôi nghĩ ghi ocx ở dạng ảnh và ẩn ảnh đi. Sau đó đọc "ảnh" (ảnh nhái vì thực ra là nội dung ocx) và ghi ra đĩa.

Ai có cách hay khác không?
 

PhanTuHuong

VBA & VB.NET for Excel & AutoCad
Thành viên danh dự
Tham gia ngày
13 Tháng sáu 2006
Bài viết
6,955
Được thích
23,826
Điểm
6,668
Nơi ở
Hà Nội

Kiều Mạnh

Thành viên gạo cội
Tham gia ngày
9 Tháng sáu 2012
Bài viết
4,357
Được thích
3,016
Điểm
1,568
Nơi ở
IIIIIIIIIIIIIIIII
Gói ocx vào tập tin Excel? Thế thì nặng tập tin Excel.

Thì ghi nội dung ocx vào Excel rồi sau đó đọc ra thôi.
Tôi nghĩ ghi ocx ở dạng ảnh và ẩn ảnh đi. Sau đó đọc "ảnh" (ảnh nhái vì thực ra là nội dung ocx) và ghi ra đĩa.

Ai có cách hay khác không?
ý tưởng của em là vậy nhưng viết code ko biết bắt đầu từ đâu
Em có Tìm Anh Google hoài mà không thấy Code mẫu
 
Quảng cáo
Top Bottom