本記事では、ExcelのマクロからMicrosoft Accessに接続する方法についてご説明します。
ExcelのマクロからMicrosoft Accessに接続する方法
ExcelのマクロからMicrosoft Accessに接続するには、次の流れの通りにコードを書いていきます。
このMicrosoft Accessに接続するための接続情報は、Microsoft Accessに接続するための「鍵」みたいなものなので必ずコードに記述する必要があります。
Microsoft Accessに接続するには、ConnectionオブジェクトのOpenメソッドを使います。
コードの例
Excelのマクロのコード(例)
Excelのマクロのコード(例)は次の通りです。
Dim strFileName As String Dim adoCON As New ADODB.Connection 'カレントディレクトリのデータベースパスを取得 strFileName = ActiveWorkbook.Path & "\work.accdb" 'データベース接続情報の取得 adoCON.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=" & strFileName & "" 'データベースに接続する adoCON.Open
コードの解説
最初に見て頂きたいのは13行目です。
ConnectionオブジェクトのOpenメソッドを使ってMicrosoft Accessに接続しています。
なお、Microsoft Accessへの接続情報の取得は、9、10行目で行っています。(adoCON.ConnectionStringに格納)
取得したMicrosoft Accessへの接続情報をOpenメソッドの引数に指定し、Microsoft Accessに接続しています。
【注意】参照設定が必要です
一つ注意点があるのですが、先ほどのコードを動かすには参照設定が必要です。
参照設定の一覧(下の画像を参考)から次の項目(ライブラリ)にチェックを付けて「OK」ボタンをクリックします。
- Microsoft ActiveX Data Objects 2.8 Library(msado28.tlb)
なぜ必要かというと、先ほどのコードの2行目の「ADODB.Connection」というオブジェクトが、「msado28.tlb」というファイルを参照するからです。
Dim adoCON As New ADODB.Connection
この参照設定をしないと下の画像のエラーが出ますので必ず行う必要があります。
ここでは「msado28.tlb」とは何者かについては記事の本題から逸れてしまうので詳細は割愛しますが、Excelのマクロで「ADODB.Connection」というオブジェクトを使う場合は参照設定しないと動かない、程度に思って頂ければと思います。
【動画】ExcelのマクロからMicrosoft Accessに接続する参考動画
ツイート内の動画では、ExcelのマクロからMicrosoft Accessに接続して参照・更新系の処理を行っています。
ExcelVBAからAccessのDBにアクセスして参照・更新処理ができるか確認してみました😀
以前ExcelVBAとSQL Serverとの連携を確認してみたときと似たようなこと(https://t.co/yi0FE4XM9W)を今回やってみました😄#Excel#VBA#Access pic.twitter.com/TZHe7I8PNg
— まさ@Excel、VBA、マクロ(経験年数16年) (@masamasa9785) March 15, 2021
参照・更新処理を行うのに今回ご説明した、ExcelのマクロからMicrosoft Accessに接続するコードの処理が行われてMicrosoft Accessに接続しています。
最後に
本記事ではExcelのマクロからMicrosoft Accessに接続する方法についてご説明しました。
以下の2つの処理を実装することで、ExcelのマクロからMicrosoft Accessに接続することができます。
- ①Microsoft Accessへの接続情報取得
- ② ①の情報を参照してMicrosoft Accessに接続
コードを実装する際は、先ほどお見せしたコードの例を参考にしてみてくださいね。
プログラミングのスキルを習得するなら
プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。
プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。