Connect visual basic to excel

Liên hệ QC
Sao em làm giống như Bác Huong chỉ để sử dụng .dll
1. Tool/Add-Ins .....
2. Chọn Automation
3. Chọn Browse
Sau đó chọn file .ddl
thì bị báo lỗi là :
The file you selected does not contain a new Automation Server, or you do ...
bị báo lỗi như vầy là sao ? Xin giải thích giúp ! Xin cám ơn
C:%5Ct.bmp

Mình không rõ cái này.
Còn dll vẫn có thể bị decompiler, nhưng ta có thể chống lại bằng các phần mềm nén như UPX hay Aspack,... hoặc ngon hơn là dùng khóa cứng.

Ngoài ra tôi cũng chưa biết cách tạo dll như trên nhưng có thể tùy biến trong excel 2000, 2002, 2003 hoặc 2007. Nhờ bác nào chỉ giúp cho với.
 
vâng, thế mà tôi chả chịu đọc. cám ơn bạn nha.

nhân tiện, bạn có thể cho tôi 1 ví dụ nổi bật tính tiện lợi khi excel liên kết với dll chứ? nói thật, tôi vẫn còn mù mờ :(.

1. khả năng bảo mật code. dll không thể bảo mật được, không thiếu chương trình decompiler.
2. sử dụng forms nâng cao. để hỗ trợ cho excel?
3. hỗ trợ điểu khiển ActiveX. cái này tôi chịu, chưa thể mường tượng được.

thảo luận nào.

Đơn giản hơn về sự khác biệt:

DLL là Library, đã là Library thì bạn chỉ viết 1 lần thành file, sau đó dùng cho mọi chương trình sử dụng (1 quyển sách viết ra, được in ra cho nhiều người (mượn) đọc chứ ko chỉ cho 1 người đọc). Đó là sự khác biệt lớn nhất.

Còn rất nhiều sự khác biệt nữa, nhưng có lẽ bạn ko cần quan tâm tới (liên quan tới deployment modeling, module architecture, v.v...).

Ví dụ: Bạn chỉ cần mường tượng có 1 dự án cực lớn khoảng 50 người làm coding. Theo bạn thì tất cả đều "rúc" vào cái file exe chính để làm chứ? Dĩ nhiên là ko rồi đúng ko? Họ sẽ làm trên nhiều project nhỏ (library nhỏ) hơn. Rồi ghép chúng vào với nhau (giống như chúng ta xây nhà ấy)

Mấy cái đó mới là ý nghĩa thực sự của DLL. (.NET giờ ko còn khái niệm DLL để đăng ký vào Registry nữa)

Mấy cái decompiler của bạn ko làm được gì nhiều đâu, bạn đừng nghe người khác nói mà chưa thử, chưa tìm hiểu :-=

Tại người ta cứ dùng từ "Điều khiển" cho từ ActiveX Control nên giờ mới ra nông nỗi này đây. Cũng như bạn, tôi cũng bó tay với từ "Điều khiển ActiveX", chả hiểu gì cả --=0
 
Lần chỉnh sửa cuối:
Bài #4 (Tạo liên kết đơn giản 1 hướng - tiếp theo #3)

Khi tôi tạo được AFirstProject.dll, tôi mở Helllo.xls lên và Run Sub ShowMessage() --> Thông báo Hello World --> Rất OK
Nhưng khi chép toàn bộ thư mục dự án đó vào máy khác thì không dùng được (Đã chọn liên kết Tool / Refercces / AFirstProject) ???

Bài #5 (Tạo liên kết 2 hướng - Xuất chử Hello World vào ActiveCell)

Không có nói đến Code trong Hello.xls như thế nào để có thể viết được chử "Hello World!" vào ActiveCell???
Tôi đã thử nhiều cách mà vẫn không thể thực hiện được.


Bài #8
PHP:
'***********************
'Khai bao Class DLL o duoi day 
'***********************
Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
- Đoạn Code này báo lỗi khi biên dịch sang DLL (Compile error: Only comments may appear after End Sub, End Function, or End Property)
- Bị gặp lỗi này nên không thể biên dịch DLL được. Xin cách khắc phục???

'***********************
Cấu trúc câu lệnh nhiều lúc không hiểu, GPE có thể cho biết ý nghĩa của từng lệnh được không?
Xin anh PTH send cho file VD gởi kèm, chứ em làm mà cứ error hoài....
 
Lần chỉnh sửa cuối:
Bài #4 (Tạo liên kết đơn giản 1 hướng - tiếp theo #3)

Khi tôi tạo được AFirstProject.dll, tôi mở Helllo.xls lên và Run Sub ShowMessage() --> Thông báo Hello World --> Rất OK
Nhưng khi chép toàn bộ thư mục dự án đó vào máy khác thì không dùng được (Đã chọn liên kết Tool / Refercces / AFirstProject) ???

Bài #5 (Tạo liên kết 2 hướng - Xuất chử Hello World vào ActiveCell)

Không có nói đến Code trong Hello.xls như thế nào để có thể viết được chử "Hello World!" vào ActiveCell???
Tôi đã thử nhiều cách mà vẫn không thể thực hiện được.


Bài #8
'***********************
'Khai bao Class DLL o duoi day
'***********************
Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
- Đoạn Code này báo lỗi khi biên dịch sang DLL (Compile error: Only comments may appear after End Sub, End Function, or End Property)
- Bị gặp lỗi này nên không thể biên dịch DLL được. Xin cách khắc phục???

'***********************
Cấu trúc câu lệnh nhiều lúc không hiểu, GPE có thể cho biết ý nghĩa của từng lệnh được không?
Xin anh PTH send cho file VD gởi kèm, chứ em làm mà cứ error hoài....

Khi mang file DLL sang máy khác để sử dụng, bạn phải đăng ký nó.
Nếu không tạo bộ cài đặt, bạn hãy tạo Setup.bat trong cùng thư mục của file DLL để cài đặt. Nội dung trong file như sau:

Mã:
regsvr32 AFirstProject.dll /s

Tạo file Uninstall.bat . Chạy file này khi không muốn sử dụng trên máy đó nữa.

Mã:
regsvr32 AFirstProject.dll /u /s
 
Chỉnh sửa lần cuối bởi điều hành viên:
Khi mang file DLL sang máy khác để sử dụng, bạn phải đăng ký nó.
Nếu không tạo bộ cài đặt, bạn hãy tạo Setup.bat trong cùng thư mục của file DLL để cài đặt. Nội dung trong file như sau:

Mã:
regsvr32 AFirstProject.dll /s

Tạo file Uninstall.bat . Chạy file này khi không muốn sử dụng trên máy đó nữa.

Mã:
regsvr32 AFirstProject.dll /u /s
Mình đã làm như bạn, nhưng qua máy khác vẫn bị báo lỗi, (Chỉ khi nào máy đó được setup VB6 và phải mở file VB6 lên rồi File / Make AFirstProject.dll
Khi đó mở Hello.xls lên thì mới Run được đoạn Code Sub ShowDLLMessage()
Không hiểu tại sao?
 

File đính kèm

  • BT VB60.rar
    14 KB · Đọc: 247
Mình đã làm như bạn, nhưng qua máy khác vẫn bị báo lỗi, (Chỉ khi nào máy đó được setup VB6 và phải mở file VB6 lên rồi File / Make AFirstProject.dll
Khi đó mở Hello.xls lên thì mới Run được đoạn Code Sub ShowDLLMessage()
Không hiểu tại sao?

Do bạn soạn mã bị sai. Tôi đã sủa lại. Khi đã làm đúng, thực hiện việc cài đặt như tôi đã gợi ý thì sẽ thành công. Bạn lưu ý, nếu Account truy cập Windows mà không phải quyền Admin thì có thể sẽ không đăng ký được.
 

File đính kèm

  • BT VB60_New.zip
    16.5 KB · Đọc: 330
Do bạn soạn mã bị sai. Tôi đã sủa lại. Khi đã làm đúng, thực hiện việc cài đặt như tôi đã gợi ý thì sẽ thành công. Bạn lưu ý, nếu Account truy cập Windows mà không phải quyền Admin thì có thể sẽ không đăng ký được.

Mình đã chép file của bạn đã sữa lại, qua 1 vài máy Setup rồi Run Code ShowDLLMessage() Vẫn bị lỗi như sau:

Tài khoảng sử dụng là User Administrator như hình: (Chụp hình trong Control Panel / User Accounts)
 

File đính kèm

  • Hoi GPE DLL AFirstProject.jpg
    Hoi GPE DLL AFirstProject.jpg
    90.9 KB · Đọc: 81
  • User administrator.jpg
    User administrator.jpg
    32.8 KB · Đọc: 44
Lần chỉnh sửa cuối:
Mình đã chép file của bạn đã sữa lại, qua 1 vài máy Setup rồi Run Code ShowDLLMessage() Vẫn bị lỗi như sau:

Tài khoảng sử dụng là User Administrator như hình: (Chụp hình trong Control Panel / User Accounts)
Bạn copy file AFirstProject.dll paste vào thư mục C:\Windows\System32 xem thử
Tôi cũng bị lổi như bạn nói, copy file ấy vô system32 là OK liền
 
Cảm ơn Bác Hướng, Bác tuyệt quá.
Bác Hướng ơi, sách của Bác trong Nam có chưa? Mọt sách muốn gặm sách của Bác quá.
 
Cái này tôi cũng phải làm nhiều bằng DLL mới hiểu rõ dần dần thôi.

Cam on PhanTuHuong! Bài viết thật tuyệt vời. Tôi là người đang nghien cứu lập trình VBA trong Excel. Bài viết cua Anh làm cho tôi hiểu thêm nhiều vấn đề.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Anh ơi cho em hỏi làm thế nào để đánh được tiếng Việt vào tiêu đề cho các nút lệnh hay các thành phần khác trong VB6 vậy. Điều này có thể làm trong VBA bằng cách đánh trực tiếp trên đối tượng nhưng trong VB6 thì nó lại không cho???
 
Anh Hướng à, tôi đang xem bài viết của trang này (Phần lập trình .DLL) và nó khá hay. Nhưng có hạn chế là các hình minh hoạ tất cả đã bị Inactive hết rồi. Anh xem có thể load lại các hình này được không. Hơn nữa, với tính chất của bài như 1 tài liệu tham khảo và học tập có tính phổ dụng cao như thế này thì GPE ta có thể cấp tài nguyên để lưu trữ tránh ăn nhờ ở đậu vào trang bên ngoài và đường link bị xoá bất cứ lúc nào. Như vậy nó có thể sử dụng lâu dài hơn.
Cám ơn anh.
 
Anh Hướng à, tôi đang xem bài viết của trang này (Phần lập trình .DLL) và nó khá hay. Nhưng có hạn chế là các hình minh hoạ tất cả đã bị Inactive hết rồi. Anh xem có thể load lại các hình này được không. Hơn nữa, với tính chất của bài như 1 tài liệu tham khảo và học tập có tính phổ dụng cao như thế này thì GPE ta có thể cấp tài nguyên để lưu trữ tránh ăn nhờ ở đậu vào trang bên ngoài và đường link bị xoá bất cứ lúc nào. Như vậy nó có thể sử dụng lâu dài hơn.
Cám ơn anh.

Tôi đã chuyển thành ebook rồi, mời mọi người tham khảo:

http://www.giaiphapexcel.com/forum/showthread.php?p=209714#post209714
 
DLL đối với các OptionBox khác và hỗ trợ Tiếng Việt

[/QUOTE]
Kính gởi các cao thủ!
Để tạo một Form VB trong DLL để phân phối "hoàn thiện 2 hướng" như phương pháp của Anh Hướng thì quả là tuyệt vời. Tuy nhiên, có cách nào hiển thị được Tiếng Việt trên các form ấy mà tránh được "tình trạng đen xì" như hình đính kèm không?
Em đã thử rồi, với các công cụ khác thì OK nhưng với Optionbox và Checkbox thì chịu, lại "đen xì nữa chứ". Rất nhiều lỗi khác, ... Có cao thủ nào rành giúp em với!
 

File đính kèm

  • Goi.rar
    27.5 KB · Đọc: 131
Lần chỉnh sửa cuối:
Thank you,cảm ơn mọi người đã đóng góp bài viết này, cảm ơn anh Hướng
 
Nhờ các Anh xem và sữa giúp lại E phần code trên để chạy được trên Excel 2016 64bit giúp (Chạy trên Excel 2003 thì ok). Em nghiên cứu mãi mà không được cứ báo lỗi như hình dưới View attachment Bao loi.bmp.

Cám ơn nhiều !
 

File đính kèm

  • BT VB60.rar
    20.3 KB · Đọc: 13
Web KT
Back
Top Bottom