はじめに
Excelは単体でも強力なツールですが、実務では「他のデータベースやクラウドサービスと連携したい」というニーズが高まっています。
特に多いのが次のケースです。
- AccessとExcelを連携させて、データを自動で取得・更新したい
- Googleスプレッドシートにあるデータを取り込みたい
- Excelで作成した集計結果をクラウドに共有したい
こうした作業も、VBA(Visual Basic for Applications) を使えば可能です。
この記事では、初心者向けに Access連携とGoogleスプレッドシート連携の基礎 を解説します。
ExcelとAccessの連携(基本編)
1. AccessデータをExcelに取り込む
AccessのテーブルをExcelに直接読み込むことができます。
サンプルコード
Sub ImportFromAccess()
Dim cn As Object
Dim rs As Object
Dim sql As String
Dim row As Long
' 接続文字列(パスを環境に合わせて変更)
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Database\sample.accdb;"
' SQL文
sql = "SELECT * FROM 売上データ"
Set rs = cn.Execute(sql)
row = 2
' フィールド名を出力
For i = 0 To rs.Fields.Count - 1
Cells(1, i + 1).Value = rs.Fields(i).Name
Next i
' データを出力
Do Until rs.EOF
For i = 0 To rs.Fields.Count - 1
Cells(row, i + 1).Value = rs.Fields(i).Value
Next i
rs.MoveNext
row = row + 1
Loop
rs.Close
cn.Close
End Sub
ポイント
ADODB.Connectionを使ってAccessに接続- SQLでデータを指定し、Excelに転記
2. ExcelからAccessへデータを追加する
売上入力やマスタ更新をExcelから行い、そのままAccessに反映することも可能です。
サンプルコード
Sub ExportToAccess()
Dim cn As Object
Dim sql As String
Dim name As String
Dim amount As Long
name = Range("A2").Value
amount = Range("B2").Value
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Database\sample.accdb;"
sql = "INSERT INTO 売上データ (顧客名, 金額) " & _
"VALUES('" & name & "', " & amount & ")"
cn.Execute sql
cn.Close
MsgBox "Accessにデータを登録しました!"
End Sub
ExcelとGoogleスプレッドシートの連携(基本編)
Googleスプレッドシートはクラウド上で共有できるため、リモートワークやチーム作業で人気です。
VBAから直接操作する場合は、Google Sheets API を利用します。
1. Google Sheets APIの準備
- Google Cloud Consoleでプロジェクトを作成
- Google Sheets APIを有効化
- APIキーまたはOAuth認証情報を取得
- VBAで利用するために「WinHttp」や「MSXML2.XMLHTTP」を使用
2. データを取得するサンプルコード
以下はシートからデータを取得する例です。
Sub GetGoogleSheetData()
Dim http As Object
Dim JSON As Object
Dim URL As String
' APIキーとシートIDを設定
URL = "https://sheets.googleapis.com/v4/spreadsheets/{シートID}/values/Sheet1!A1:D10?key={APIキー}"
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", URL, False
http.Send
' 結果を確認(JSON形式で返る)
MsgBox http.responseText
End Sub
3. データを書き込むサンプルコード
Google Sheets APIに対して POST リクエストを送ることで、Excelのデータをシートに書き込むことも可能です。
ただし、OAuth認証 が必要になるため、少し難易度が上がります。
実務での活用例
- Accessとの連携
→ 顧客データベースをAccessに集約し、Excelから入力・集計を行う。 - Googleスプレッドシートとの連携
→ 出張先や在宅勤務中でも、Excelからクラウドに自動アップロード。
→ チーム全員が同じシートを閲覧・編集可能。 - ハイブリッド運用
→ Accessで基幹データを管理し、必要な部分をGoogleスプレッドシートで共有。
まとめ
- ExcelはVBAを使えば、AccessやGoogleスプレッドシートと連携できる
- Access連携:ADODBでデータの取り込み・書き込み
- Google Sheets連携:APIを利用してクラウドデータを操作
- 実務に応用すれば、手作業が減り、データ共有・更新がスムーズに
これらの連携を覚えると、Excelの可能性は一気に広がります。
ぜひまずはサンプルコードを試し、業務に活かしてみてください。


コメント