本記事では、マクロからSQL Serverに接続する方法についてご説明します。
マクロからSQL Serverに接続する方法
マクロからSQL Serverに接続するには、次の流れの通りにコードを書いていきます。
このSQL Serverに接続するための接続情報は、SQL Serverに接続するための「鍵」みたいなものなので必ずコードに記述する必要があります。
このインスタンスは、マクロがSQL Serverに接続するために必要です。
SQL Serverに接続するには、ConnectionオブジェクトのOpenメソッドを使います。
コードの例
Excelのマクロのコード(例)
Excelのマクロのコード(例)は次の通りです。
' Dim DBName As String, connDB As String Dim objConnection As ADODB.Connection 'DBの名前 DBName = "workDB" 'データベース接続情報を取得 connDB = "Provider=SQLNCLI11.1;" connDB = connDB & "Data Source=(LocalDB)\MSSQLLocalDB;" connDB = connDB & "Initial Catalog=" & DBName & ";" connDB = connDB & "Trusted_Connection=yes;" 'ADODB.Connectionオブジェクトのインスタンスを生成する Set objConnection = New ADODB.Connection 'SQL Serverに接続する objConnection.Open connDB
コードの解説
最初に見て頂きたいのは18行目です。
ConnectionオブジェクトのOpenメソッドを使ってSQL Serverに接続しています。
なお、SQL Serverへの接続情報の取得は、9行目から12行目で行っています。(変数connDBに格納)
取得したSQL Serverへの接続情報をOpenメソッドの引数に指定し、SQL Serverに接続しています。
【注意】参照設定が必要です
一つ注意点があるのですが、先ほどのコードを動かすには参照設定が必要です。
参照設定の一覧(下の画像を参考)から次の項目(ライブラリ)にチェックを付けて「OK」ボタンをクリックします。
- Microsoft ActiveX Data Objects 2.8 Library(msado28.tlb)
なぜ必要かというと、先ほどのコードの3行目の「ADODB.Connection」というオブジェクトが、「msado28.tlb」というファイルを参照するからです。
Dim objConnection As ADODB.Connection
この参照設定をしないと下の画像のエラーが出ますので必ず行う必要があります。
ここでは「msado28.tlb」とは何者かについては記事の本題から逸れてしまうので詳細は割愛しますが、マクロで「ADODB.Connection」というオブジェクトを使う場合は参照設定しないと動かない、程度に思って頂ければと思います。
【動画】マクロからSQL Serverに接続する参考動画
ツイート内の動画では、ExcelのマクロからSQL Serverに接続して参照・更新系の処理を行っています。
先日SQL Serverをインストールしたので次にVBAからSQL Serverにアクセスして参照・更新処理ができるか確認してみました😄なんだかおかしなことやってますが💦
参照・追加・更新・削除の確認ができたのでこれでVBAとSQL Serverの連携が必要な処理を盛り込むことができます😁#Excel #vba#SQLServer pic.twitter.com/uqvLIu2fR3
— まさ@Excel、VBA、マクロ(経験年数16年) (@masamasa9785) February 24, 2021
参照・更新処理を行うのに今回ご説明した、マクロからSQL Serverに接続するコードの処理が行われてSQL Serverに接続しています。
最後に
本記事ではマクロからSQL Serverに接続する方法についてご説明しました。
以下の3つの処理を実装することで、マクロからSQL Serverに接続することができます。
- ①SQL Serverへの接続情報取得
- ②Connectionオブジェクトのインスタンスの生成
- ③ ①の情報を参照してSQL Serverに接続
コードを実装する際は、先ほどお見せしたコードの例を参考にしてみてくださいね。
プログラミングのスキルを習得するなら
プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。
プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。