【ExcelVBA】マクロからSQL Serverに接続するには

本記事では、マクロからSQL Serverに接続する方法についてご説明します。

マクロからSQL Serverに接続する方法

マクロからSQL Serverに接続するには、次の流れの通りにコードを書いていきます。

STEP.1
SQL Serverへの接続情報取得
SQL Serverに接続するための接続情報を取得します。
このSQL Serverに接続するための接続情報は、SQL Serverに接続するための「鍵」みたいなものなので必ずコードに記述する必要があります。
STEP.2
Connectionオブジェクトのインスタンスの生成
Connectionオブジェクトのインスタンスを生成します。
このインスタンスは、マクロがSQL Serverに接続するために必要です。
STEP.3
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」ボタンをクリックします。

  1. 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に接続するコードの処理が行われてSQL Serverに接続しています。

最後に

本記事ではマクロからSQL Serverに接続する方法についてご説明しました。

以下の3つの処理を実装することで、マクロからSQL Serverに接続することができます。

  • ①SQL Serverへの接続情報取得
  • ②Connectionオブジェクトのインスタンスの生成
  • ③ ①の情報を参照してSQL Serverに接続

コードを実装する際は、先ほどお見せしたコードの例を参考にしてみてくださいね。

プログラミングのスキルを習得するなら

プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。

プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。

→ TechAcademyの「1週間 無料体験」はこちら