- Tham gia
- 30/5/06
- Bài viết
- 1,798
- Được thích
- 4,706
- Giới tính
- Nam
Khi tạo một ứng dụng Excel, đôi lúc bạn muốn người dùng khi mở tập tin ra không cần phải nhấn vào nút Enable Macro.
Tôi xin giới thiệu các cách sau:
1) Dùng Visual Basic 6.0
Kỹ thuật Tạo một Front Loader cho ứng dụng Excel của bạn bằng Visual Basic 6.0
Đầu tiên bạn mở VB 6.0 ra, chọn Standard EXE sau đó chọn nút Open
Bạn thêm vào một module, và đặt tên module là MTestSC (hoặc tên gì thì tùy bạn)
Sau đó các bạn thêm vào đọan mã như sau:
Trong đọan mã trên chúng ta cần chú ý:
_ Cách mà thủ tục Sub Main thao tác với Excel: đầu tiên mở Excel ra với câu lệnh
Sau đó làm cho nó Visible
Vậy còn đọan code
thì sao? Nó sẽ làm cho Excel mà chúng ta mở theo cách này cũng giống như cách mở thông thường.
_ Mở Workbook chúng ta cần
Khi chúng ta mở theo cách này Excel sẽ không thực thi thủ tục Autpen mà chúng ta phải dùng
để thực thi thủ tục trên.
_ Trong trường hợp trong file Excel của chúng ta cần thêm các Add-In khác thì chúng ta cũng phải mở tương tự như trên.
Và các lệnh cuối cùng trong thủ tục trên là giải phóng bộ nhớ.
Thông thường mở một Standard EXE, sau khi biên dịch và thực thi thì một form sẽ được hiện đầu tiên. Chúng ta cần phải chỉnh lại thủ tục Sub Main phải được thực hiện đầu tiên.
Bạn vào Properties của project
Trong Tab General, trong hộp thọai Startup Object: bạn chọn thủ tục Sub Main
Xong thì chọn OK
Sau đó bạn biên dịch thành file *.exe.
Đặt file thực thi này vào cùng thư mục với file Excel
Bạn muốn mở mà không cần phải chọn Enable Macro.
Ngòai ra bạn chú ý ở Tab Make, chọn cho phù hợp.
Ví dụ: xin xem tập tin đính kèm.
Chú ý: Bạn phải tham chiếu đến Excel như hình sau để tránh lỗi User-defined type not defined.
Lê Văn Duyệt
(Tôi post lại từ bài của CLB VEC)
Tôi xin giới thiệu các cách sau:
1) Dùng Visual Basic 6.0
Kỹ thuật Tạo một Front Loader cho ứng dụng Excel của bạn bằng Visual Basic 6.0
Đầu tiên bạn mở VB 6.0 ra, chọn Standard EXE sau đó chọn nút Open
Bạn thêm vào một module, và đặt tên module là MTestSC (hoặc tên gì thì tùy bạn)
Sau đó các bạn thêm vào đọan mã như sau:
Mã:
Public Sub Main()
Dim xlApp As Excel.Application
Dim wkbNeedOpen As Excel.Workbook
Set xlApp = New Excel.Application
On Error Resume Next
With xlApp
.Visible = True
.UserControl = True
Set wkbNeedOpen = [COLOR="Blue"].Workbooks.Open(App.Path & "\TapTinCanMo.xls")[/COLOR] 'Bạn phải điều chỉnh đoạn mã này cho phù hợp
wkbNeedOpen.RunAutoMacros xlAutoOpen
End With
If Err.Number <> 0 Then
MsgBox "Tập tin không tìm thấy."), vbInformation + vbOKOnly, "Thông báo"
End If
Set wkbNeedOpen = Nothing
Set xlApp = Nothing
End Sub
Trong đọan mã trên chúng ta cần chú ý:
_ Cách mà thủ tục Sub Main thao tác với Excel: đầu tiên mở Excel ra với câu lệnh
Mã:
Set xlApp = New Excel.Application
Mã:
.Visible = True
Mã:
.UserControl = True
_ Mở Workbook chúng ta cần
Mã:
Set wkbNeedOpen = .Workbooks.Open(App.Path & "\TapTinCanMo.xls")
Mã:
wkbNeedOpen.RunAutoMacros xlAutoOpen
_ Trong trường hợp trong file Excel của chúng ta cần thêm các Add-In khác thì chúng ta cũng phải mở tương tự như trên.
Và các lệnh cuối cùng trong thủ tục trên là giải phóng bộ nhớ.
Thông thường mở một Standard EXE, sau khi biên dịch và thực thi thì một form sẽ được hiện đầu tiên. Chúng ta cần phải chỉnh lại thủ tục Sub Main phải được thực hiện đầu tiên.
Bạn vào Properties của project
Trong Tab General, trong hộp thọai Startup Object: bạn chọn thủ tục Sub Main
Xong thì chọn OK
Sau đó bạn biên dịch thành file *.exe.
Đặt file thực thi này vào cùng thư mục với file Excel
Bạn muốn mở mà không cần phải chọn Enable Macro.
Ngòai ra bạn chú ý ở Tab Make, chọn cho phù hợp.
Ví dụ: xin xem tập tin đính kèm.
Chú ý: Bạn phải tham chiếu đến Excel như hình sau để tránh lỗi User-defined type not defined.
Lê Văn Duyệt
(Tôi post lại từ bài của CLB VEC)
File đính kèm
Lần chỉnh sửa cuối: