今回は、ExcelなどのAccessとは別のアプリケーションを操作できるようにするOLEオートメーション(Object Linking and Embedding オートメーション)について紹介します。Accessを操作していて、Excelも一緒にVBAで操作したいケースはよくあるので、とても利用価値の高い機能です。なお、操作できるアプリケーションはOLEオートメーション機能がサポートしているアプリに限られます。
Sub Test1()
Dim MyExcel As New Excel.Application
Dim MyBook As Workbook
Dim i As Long, j As Long
MyExcel.Visible = True
Set MyBook = MyExcel.Workbooks.Add
For i = 1 to 5
For j = 1 to 5
MyBook.ActiveSheet.Cells(i,j).Value _
= "test(" & i & "," & j & ")"
Next j
Next i
MsgBox "Excelを開きました"
MyExcel.Quit
Set MyBook = Nothing
Set MyExcel = Nothing
End Sub
Sub Test2()
Dim MyExcel As New Excel.Application
Dim MyBook As WorkBook
Dim MyVar As Variant, v As Variant
Dim MyStr As String, i As Long
MyExcel.Visible = False
Set MyBook = MyExcel.Workbooks.Open(CurrentProject.Path & "¥sample")
MyVar = MyBook.ActiveSheet.UsedRange
For Each v In MyVar
i = i + 1
If i Mod 5 <> 0 Then
MyStr = MyStr & v & Space(2)
Else
MyStr = MyStr & v & vbCrLf
End If
Next v
MsgBox.MyStr
MyExcel.Quit
Set MyBook = Nothing
Set MyExcel = Nothing
End Sub
コメント