PR

AccessとGoogleスプレッドシートを連携!初心者でもできるVBA活用ガイド

Access
スポンサーリンク

こんにちは、なかぜんです!

「Accessに蓄積したデータを、外出先でもスマホで確認できたら便利なのに…」そんな風に思ったことはありませんか?

実は、AccessとGoogleスプレッドシートをVBAで連携させると、クラウド経由で情報を共有したり、バックアップに使ったりすることができるんです。

この記事では、Access初心者でもできるように、ステップごとの解説とコード付きでご紹介します。「業務で使ってみたい!」という方にもきっと役立つ内容になっていますよ。

スポンサーリンク

AccessとGoogleスプレッドシートを連携するメリット

  • データをクラウドで確認・共有できる
  • バックアップや分析に使える
  • Excelと同じ感覚でデータ管理が可能

連携の基本手順

ステップ1:Googleスプレッドシートの準備

  1. Googleアカウントでログイン
  2. 新しいスプレッドシートを作成
  3. メニュー「拡張機能」→「Apps Script」を開く
  4. 次のコードを貼り付けて保存(あとで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として公開

  1. 「デプロイ」→「新しいデプロイ」
  2. 「種類」→「ウェブアプリ」
  3. 「実行するユーザー」→「自分」
  4. 「アクセスできるユーザー」→「全員(匿名ユーザーを含む)」に設定
  5. 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を連携して双方向通信を行えば、さらに自動化の幅が広がります

少しずつスキルを磨いて、業務の効率アップを目指しましょう!

では、また次の記事でお会いしましょう! なかぜんでした。

\楽天ポイント4倍セール!/
楽天市場
\商品券4%還元!/
Yahooショッピング