- Tham gia
- 30/5/06
- Bài viết
- 1,630
- Được thích
- 17,442
- Nghề nghiệp
- Bác sĩ
Excel VBA tương tác với các phần mềm khác trong bộ Microsoft Office như thế nào
.Bài dịch của Workman
Nếu bạn đang sử dụng Excel, tôi đoán bạn cũng đang sử dụng các phần mềm khác thuộc bộ Microsoft Office. Ngoài việc gần như ai cũng dùng Word, tôi đoán bạn cũng rất quen thuộc với Power Point và Access
Trong chương này tôi sẽ trình bày một vài ví dụ đơn giản để minh họa cho việc Excel VBA tương tác với các phần mềm khác trong bộ Microsoft Office như thế nào.
1. Khởi động một chương trình khác trong Excel
Khởi động một chương trình khác từ Excel là một việc làm rất hữu ích. Ví dụ, bạn có thể muốn chạy một chương trình Microsoft Office khác hoặc ngay cả chạy các câu lệnh DOS từ macro VBA của Excel.
Sử dụng hàm Shell
Hàm shell giúp cho việc chạy một chương trình khác từ Excel trở nên rất đơn giản. ví dụ sau khởi động chương trình Calculator (máy tính), có tập tin là CALC.EXE.
Sub startcalculator()
Dim Program As String
Dim TaskID as Double
On Error Resume Next
Program = "CALC.EXE"
taskid = Shell(Program, 1)
If Err <> 0 Then
If Err <> 0 Then MsgBox "Cant start " & Program
End If
End Sub
Hình 23-1 thể hiện chương trình máy tính của Windows sau khi chạy đoạn mã trên.
Hàm Shell trả lại số thứ tự của chương trình được chạy. bạn có thể sử dụng số này để kích hoạt lại chương trình. Tham số thứ 2 của hàm Shell xác định chương trình này được hiển thị như thế nào (một là mã để xác định một cửa sổ Windows và hiện lên trên màn hình). Bạn có thể tham khảo các tham số khác trong phần Help.
Nếu hàm Shell không cần thiết, nó sẽ báo lỗi. do đó, đoạn mã trên tôi sử dụng câu lệnh On Error để hiển thị khi không thể tìm thấy chương trình cần chạy hoặc có thể chạy được nhưng vì lý do gì đó bị trục trặc.
Thế nếu chương trình Calculator đang chạy thì sao? StartCalculator đơn giản là mở thêm một cửa số khác. Phần lớn các trường hợp bạn sẽ mở một chương trình đang chạy sẵn. đoạn mã dưới đây sẽ giải quyết vấn đề này.
Public taskid
Sub StartCalculator2()
Dim Program As String
Dim taskid As Double
Program = "CALC.EXE"
AppActivate "Calculator"
On Error Resume Next
If Err <> 0 Then
Err = 0
taskid = Shell(Program, 1)
If Err <> 0 Then MsgBox "Cant start " & Program
End If
End Sub
kích hoạt một chương trình Microsoft Office
nếu một chương trình bạn muốn khởi động thuộc nhóm Microsoft, bạn có thể sử dụng ActivateMicrosoftApp. Ví dụ đoạn mã sau khởi động Word
Sub startword()
Application.ActivateMicrosoftApp xlMicrosoftWord
End Sub
Nếu Word đang chạy từ trước, Word sẽ được kích hoạt. Các hàm khác cho phương thức này:
xlMicrosoftPowerPoint (PowerPoint)
xlMicrosoftMail (Mail)
xlMicrosoftAccess (Access)
xlMicrosoftFoxPro (FoxPro)
xlMicrosoftAccessProject (AccessProject)
xlMicrosoftSchedulePlus (SchedulePlus)