ACCESS VBAでExcelを開く方法

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

以下、解説します。

最初に、

で「excel_object」というオブジェクト変数を定義しています。
As Objectとしてオブジェクト型変数で宣言しました。

次に、作成したオブジェクト変数に対して「Set」で「Excel.application」というオブジェクトを代入します。

Excel.applicationはExcelアプリケーション本体を表すオブジェクトですので、これを設定しています。

さらに、.Visibleプロパティに「True」を設定して、Excelを可視化します。

そのうえで、「.workbooks.Open」メソッドを利用し、ファイルパスを指定してExcelファイルを開くという流れです。

上記は単純に既存のExcelを開くだけですが、応用すれば起動したExcelのセルに値を入れたり、新規のシートを追加することも可能です。

以上、VBAでExcelを開く方法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。