こんにちは、なかぜんです!
「Accessに蓄積したデータを、外出先でもスマホで確認できたら便利なのに…」そんな風に思ったことはありませんか?
実は、AccessとGoogleスプレッドシートをVBAで連携させると、クラウド経由で情報を共有したり、バックアップに使ったりすることができるんです。
この記事では、Access初心者でもできるように、ステップごとの解説とコード付きでご紹介します。「業務で使ってみたい!」という方にもきっと役立つ内容になっていますよ。
AccessとGoogleスプレッドシートを連携するメリット
- データをクラウドで確認・共有できる
- バックアップや分析に使える
- Excelと同じ感覚でデータ管理が可能
連携の基本手順
ステップ1:Googleスプレッドシートの準備
- Googleアカウントでログイン
- 新しいスプレッドシートを作成
- メニュー「拡張機能」→「Apps Script」を開く
- 次のコードを貼り付けて保存(あとでAccessから呼び出すAPIになります)
// Google Apps Script
function doPost(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = JSON.parse(e.postData.contents);
sheet.appendRow([data.ID, data.名前, data.日付]);
return ContentService.createTextOutput("OK");
}
補足:このコードは、AccessからPOSTされたJSONデータを1行ずつ追加していくAPIの役割をします。
ステップ2:Apps ScriptをWeb APIとして公開
- 「デプロイ」→「新しいデプロイ」
- 「種類」→「ウェブアプリ」
- 「実行するユーザー」→「自分」
- 「アクセスできるユーザー」→「全員(匿名ユーザーを含む)」に設定
- URLをメモ(Accessから使います)
Access側のVBAコード
次は、AccessからGoogleスプレッドシートにデータを送信するVBAコードです。
Sub ExportToGoogleSheet()
Dim http As Object
Dim json As String
Dim url As String
url = "https://script.google.com/macros/s/AKfycbxxxxxx/exec" '←自分のURLに書き換えてください
' データ準備(例:ID、名前、日付)
json = "{""ID"":1,""名前"":""なかぜん"",""日付"":""" & Format(Date, "yyyy-mm-dd") & """}"
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "POST", url, False
http.setRequestHeader "Content-Type", "application/json"
http.Send json
If http.Status = 200 Then
MsgBox "送信成功:" & http.responseText
Else
MsgBox "送信失敗:" & http.Status
End If
End Sub
ポイント解説: このコードは、AccessのVBAでGoogle Apps ScriptのAPIにPOSTリクエストを送るものです。データをJSON形式に整形し、XMLHTTPで通信しています。
よくあるエラーと注意点
- URLが間違っている:Google Apps ScriptのURLを正確に貼りましょう。
- JSON形式ミス:キーや文字列にダブルクォートを忘れずに。
- ファイアウォール制限:社内ネットワークでPOST通信が制限されていることがあります。
中級者向け:複数レコードを一括送信するには?
単一データだけでなく、複数レコードを一括で送ることも可能です。
' 複数行を配列にして送信する例(応用)
Dim jsonData As String
jsonData = "["
jsonData = jsonData & "{""ID"":1,""名前"":""A"",""日付"":""2025-05-01""},"
jsonData = jsonData & "{""ID"":2,""名前"":""B"",""日付"":""2025-05-02""}"
jsonData = jsonData & "]"
Google Apps Script側もそれに応じて繰り返し処理に変更する必要があります。
まとめ:AccessとGoogleスプレッドシート連携で広がる可能性
今回は、AccessとGoogleスプレッドシートをVBAで連携する基本的な方法をご紹介しました。
- Apps Scriptで受け皿を用意
- AccessのVBAでPOST送信
- JSON形式を使って柔軟なデータ転送
「社内データをクラウド共有したい」「レポートをGoogleスプレッドシートに自動転送したい」など、業務効率化に大きく役立つテクニックです。
次のステップへ
・Google Sheets側からAccessにデータを読み込む方法もあります(GET通信)
・AccessとGASを連携して双方向通信を行えば、さらに自動化の幅が広がります
少しずつスキルを磨いて、業務の効率アップを目指しましょう!
では、また次の記事でお会いしましょう! なかぜんでした。
