外部ソースからデータをワークシートに取得するにはさまざまな方法があります
インターネット、テキスト ファイル、またはその他の Excel からデータを取得することもできます。
したがって、データベース接続が必要です (変数 varConn 以下のマクロ内)および SQLクエリ (変数 varSQL ) レポート用のデータベースからのデータの取得を自動化します。以下の例では、 SQLクエリ MS Access の小さなデータベースからデータを受け取ります。
クリック データベースをロードする
MS Access ファイルは次のようになります。
実行するマクロを書いてみましょう SQLクエリ 。
メニューを開く サービス - マクロ - エディター Visual Basic 、 新しいモジュールを挿入します (メニュー Insert - Module )そこにマクロ テキストをコピーします。
Sub SQLQuery_1() 'moonexcel.com.ua Dim varConn As String Dim varSQL As String Range("A1").CurrentRegion.ClearContents varConn = "ODBC;Driver={Microsoft Access Driver (*.mdb, *.accdb)}" varSQL = "SELECT Month, Product, City FROM Sumproduct" With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("A1")) .CommandText = varSQL .Refresh BackgroundQuery:=False End With End Sub
[保存] をクリックして、Excel に戻ります。メニューから選ぶ 表示 - マクロ (Alt+F8) マクロの名前 " SQLQuery_1 "。ダイアログボックスが表示されるので、それを押します データベース... 、Access ファイルを探してクリックします。
これで、マクロ クエリが列を取得したことがわかります。
同様に、データベースからのように通常の Excel ファイルからデータを取得できます。このためには、マクロのコードを少し書き直し、接続ドライバーを Access から Excel に変更する必要があります。
テーブルをエクスポートします
Sub SQLQuery_2() 'moonexcel.com.ua Dim varConn As String Dim varSQL As String Range("A1").CurrentRegion.ClearContents varConn = "ODBC;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}" varSQL = "SELECT Month, Product, City FROM Sumproduct" With ActiveSheet.QueryTables.Add(Connection:=varConn, Destination:=Range("A1")) .CommandText = varSQL .Refresh BackgroundQuery:=False End With End Sub
Excel ファイルを選択できるウィンドウが表示されます (