AccessVBAでExcelを操作する

スポンサーリンク

AccessからExcelを操作すると便利なことがたくさん

Accessはすごくたくさんの機能がありますが、テーブルの構造を変更したり、格納されたデータを少し入れ替えたりする場合Excelを利用する方が融通が利く場合があります。

AccessのVBAを使用してExcelを操作できると色々な操作が自動化できるようになります。
今回はAccessのVBA でExcelを起動する方法と基本的なワークシートの操作についてご紹介します。

AccessからExcelを操作する手順

まず、CreateObject(“Excel.Application”)を用いて、Excelをオブジェクト型変数に格納しVBAで操作できるようにします。
その後はExcelVBAで使用するコードをほぼそのまま使用することができます。

プロパティを指定する際、Excelを格納した変数を頭に記入しないとExcelVBAの操作であることが認識されないので注意が必要です。
つい忘れがちになるので、Excelの操作ステップが多いならWithステートメントを使用してコードを省略した方がわかりやすくなります。

スポンサーリンク

Excelを操作するAccessVBAのサンプルコード

今回紹介するAccessVBAコードは①新しくExcelファイルを新規作成し、セルA1に「aaaa」と入力してデスクトップに保存するものと、②既存のExcelファイルを起動してセルA1に「aaaa」と入力して上書き保存するコードになります。

いずれの場合もExcelの操作の場合はWithステートメントを使用して、コードを理解しやすくしています。

①Excelファイルの新規作成と保存

Sub AccessVBAでExcelファイルの新規作成と保存()

Dim ExApp As Object
Set ExApp = CreateObject(“Excel.Application”)
ExApp.Visible = True
Dim DesktopPath As String, FilePath As String, WSH As Variant
Set WSH = CreateObject(“Wscript.Shell”)
DesktopPath = WSH.SpecialFolders(“Desktop”)
FilePath = DesktopPath & “\作成したExcelファイル.xlsx”

ExApp.Workbooks.Add
With ExApp.Workbooks(ExApp.Workbooks.Count)
.Sheets(1).Cells(1, 1) = “aaaaa”
.SaveAs FileName:=FilePath
.Close
End With
ExApp.Quit

Set ExApp = Nothing
Set WSH = Nothing

End Sub

②既存Excelファイルの起動と上書き保存

Sub Accessで既存のExcelファイル起動と編集()

Dim ExApp As Object
Set ExApp = CreateObject(“Excel.Application”)
ExApp.Visible = True
Dim DesktopPath As String, FilePath As String, WSH As Variant
Set WSH = CreateObject(“Wscript.Shell”)
DesktopPath = WSH.SpecialFolders(“Desktop”)
FilePath = DesktopPath & “\元Excelファイル.xlsx”

ExApp.Workbooks.Open FileName:=FilePath
With ExApp.Workbooks(ExApp.Workbooks.Count)
.Sheets(1).Cells(1, 1) = “aaaaa”
.Save
.Close
End With
ExApp.Quit

Set ExApp = Nothing
Set WSH = Nothing

End Sub

コメント