ACCESS VBAでExcelを開く方法
ACCESSは非常に便利なデータベースソフトですが、ACCESSだけですべてを完結させるのが常に正しいわけではありません。
Excelの方が得意なことも多くありますし、何よりExcelは利用者が多い点がメリットです。
そのため、ACCESSからExcelを開くという処理が必要になるシーンがあります。
今回は、ACCESS VBAでExcelを開く方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
ACCESSからExcelを開くための準備
ACCESSからExcelを開くには、OLEオートメーションという機能を利用します。
OLEとは、Object Linling and Embeddingの略称で、ACCESSから、外部のアプリケーションを操作するための機能です。
まずはACCESSからExcelを操作するために、ライブラリの登録が必要です。
ACCESSを起動し、ALT+F11キーでVisual Basic Editor(VBE)を起動しましょう。
その後、メニューから「ツール」→「参照設定」を選択します。
参照設定の画面で、「Microsoft Excel XX.X Object Library」を選択してチェックを付けます。
XX.Xはバージョンです。複数あれば最も数値の大きいもの(最新のもの)を選択しましょう。
これで準備は完了です。
ACCESSからExcelを開くプログラム
では、実際にACCESSからExcelを開くプログラムを記述しましょう。
参照設定と同じく、VBEの画面でプロシージャを作成します。
今回は、サンプルとしてC:\access\test_access.xlsxというファイルを開くプロシージャを作成しました。
Public Sub excel_open()
'変数の定義
Dim excel_object As Object
'変数にオブジェクトを代入
Set excel_object = CreateObject("Excel.application")
'Excelを表示
excel_object.Visible = True
'指定のExcelファイルを開く
excel_object.workbooks.Open "C:\access\test_access.xlsx"
'変数の開放
Set excel_object = Nothing
End Sub
以下、解説します。
最初に、
'変数の定義
Dim excel_object As Object
で「excel_object」というオブジェクト変数を定義しています。
As Objectとしてオブジェクト型変数で宣言しました。
次に、作成したオブジェクト変数に対して「Set」で「Excel.application」というオブジェクトを代入します。
'変数にオブジェクトを代入
Set excel_object = CreateObject("Excel.application")
Excel.applicationはExcelアプリケーション本体を表すオブジェクトですので、これを設定しています。
さらに、.Visibleプロパティに「True」を設定して、Excelを可視化します。
'Excelを表示
excel_object.Visible = True
そのうえで、「.workbooks.Open」メソッドを利用し、ファイルパスを指定してExcelファイルを開くという流れです。
'指定のExcelファイルを開く
excel_object.workbooks.Open "C:\access\test_access.xlsx"
上記は単純に既存のExcelを開くだけですが、応用すれば起動したExcelのセルに値を入れたり、新規のシートを追加することも可能です。
以上、VBAでExcelを開く方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。