VBAがブラウザ版Excelで動かないときは、どこへ移す?よく使う20の処理をOffice Scripts・GASで確かめた
ブラウザ版のExcel(Excel for the web)でVBAのマクロが動かないのは、ブラウザ版がVBAの作成にも実行にも対応していないためです。よく使う20の処理のうち、そのまま書き直せたのはOffice Scriptsで7、GASで12で、多くはシートの中で完結する処理でした。PCのフォルダ・印刷・Outlookを触る処理は、どちらにもそのままは移せません。マクロの守りが手元のExcelで18の処理を動かし、残りは公式のリファレンスで判定しています。(2026年10月時点)
読み解きから直す・置き換えるまでの流れと費用はExcelマクロの引き継ぎのページにまとめています。
要点
- ブラウザ版のExcelではVBAのマクロは動かず、作ることも直すこともできません。
- よく使う20の処理のうち、そのまま書き直せるのはOffice Scriptsで7、GASで12でした。
- PCのフォルダ・印刷・Outlookを触る処理は、Office ScriptsにもGASにもそのままは移せません。
- 手元のExcelでは、VBAの18の処理がすべて動き、COMからの書き換えでもセルの変更のイベントが起きました。
- Office Scriptsは1回120秒・1人1日1,600回、GASは1回6分が上限なので、移す前に処理の時間を測ります。
目次
ブラウザ版のExcelで、VBAのマクロは動きますか?
動きません。Microsoftのサポートページによると、Excel for the webではVBAのマクロを作れず、実行と編集もできません。全体の進め方はExcelマクロの引き継ぎにまとめています。
マクロ付きのブックは、開いて編集できます。マクロはブックに残り、開いても警告は出ません。ブラウザで開いてボタンを押しても何も起きないのは、このためです。iPhone・iPad版のExcelもVBAに対応していません。
ブラウザで自動化するなら、移し先はOffice ScriptsかGASです。マクロの守りがよく使う20の処理で判定した結果を、次の表にまとめました。
| 環境 | VBAのマクロ | 20の処理(○/△/×) | 使える条件 |
|---|---|---|---|
| デスクトップ版Excel | 動く | 20/0/0 | Windows・Mac |
| ブラウザ版Excel | 動かない | 0/0/20 | — |
| Office Scripts | — | 7/5/8 | 法人・教育機関向けのMicrosoft 365 |
| GAS | — | 12/7/1 | Googleのアカウント |
○はそのまま書き直せる、△は条件つきか別の仕組みと組めばできる、×はできない、です。
シートの中で完結する処理は、Office ScriptsとGASに移せますか?
ほとんど移せます。読み書き・並べ替え・抽出・集計・シートのコピーは、Office ScriptsとGASの両方に同じ働きのAPIがあります。分かれたのは、セルで使う自作の関数とピボットの更新です。
| 処理 | VBA(手元) | Office Scripts | GAS | 判定の根拠 |
|---|---|---|---|---|
| 1〜3 読み書き・並べ替え・抽出 | ○ | ○ | ○ | Range・AutoFilter/Range・createFilter |
| 4 得意先ごとに集計 | ○ | ○ | ○ | 配列を読んで数える |
| 5 シートの追加・コピー | ○ | ○ | ○ | Worksheet.copy/Sheet.copyTo |
| 6 ピボットの更新 | ○ | ○ | △ | refreshがある/更新のメソッドがない |
| 7 自作の関数をセルで使う | ○ | × | ○ | セルから呼べない/30秒まで |
| 8 シートのボタンで実行 | ○ | ○ | ○ | 家庭向けは不可/メニュー |
| 9 メッセージ・入力欄 | ○ | △ | ○ | 実行の最初の入力だけ/alert・prompt |
| 10 入力フォーム | ○ | × | △ | 画面を作れない/HTMLで作り直す |
VBAは、Microsoft 365のExcel(16.0、64bit)で18の処理を実行し、18とも動きました。使ったのは架空の受注200行のブックです。MsgBoxは押すまで止まり、このPCにはOutlookの設定がないので、この2つは実行していません。
手順はvba_env_probe.pyにあります。Office ScriptsとGASは実行しておらず、判定はリファレンスによるものです。
開いたとき・セルを変えたとき・決まった時刻に動く処理は、どうなりますか?
Office Scriptsには、ブックを開いたときやセルを変えたときに動く仕組みがありません。Microsoftの比較のページによると、スクリプトが動くのは2つの場合だけです。人が手で始めたときと、Power Automateが呼んだときです。決まった時刻の実行は、Power Automateのフローに任せます。
GASは、開いたとき(onOpen)とセルを変えたとき(onEdit)の単純トリガーと、時刻のトリガーを持っています。ただし単純トリガーは30秒までで、Gmailで送るような認可の要る処理は使えません。
手元の実験では違いも出ました。VBAのWorksheet_Changeは、外のプログラム(COM)からセルを書き換えても動きました。GASのonEditは、人がセルを変えたときに動き、スクリプトやAPIからの書き換えでは動きません。別の処理の書き込みをきっかけにしていたVBAは、移すと止まる場合があります。
PCのフォルダ・印刷・Outlookを触る処理は、どこへ移せますか?
そのままは、どちらにも移せません。Office Scriptsはブックの中だけを扱い、ブックのあるPCには触れません。GASが扱うのはGoogleドライブで、社内のフォルダやプリンターではありません。
| 処理 | VBA(手元) | Office Scripts | GAS |
|---|---|---|---|
| 14 別のブックを読む | ○ | △ Power Automateでつなぐ | △ スプレッドシートなら |
| 15・16 フォルダの一覧・CSVの読み込み | ○ | × | △ ドライブに置けば |
| 17 PDFに書き出す | ○ | × | △ ドライブに保存 |
| 18 印刷する | ○ | × | × |
| 19 Outlookで送る | ○ | △ Power Automateから | △ Gmailから送る |
| 20 WebのAPIを呼ぶ | ○ | △ Excelから動かすときだけ | ○ |
印刷とPCのフォルダを使う処理が多いなら、VBAのまま直して使うか、Webアプリと自動処理に置き換えます。直すか移すかの比べ方はExcelマクロの移行先の比較に書きました。新しいOutlookでは、VBAのメール送信そのものが動きません。新しいOutlookでマクロのメールが止まる理由も見てください。
Office ScriptsとGASには、どんな上限がありますか?
Office Scriptsは、Power Automateから動かすと1人1日1,600回までです。同期の操作は120秒で切れ、ブックとのやり取りは1回5MBまでです。GASは1回の実行が6分までです。トリガーの合計は、1日に無料のアカウントで90分、Google Workspaceで6時間までです。
6分かかる処理なら、GASのトリガーで1日に回せるのは90÷6で15回、Workspaceでも60回です。VBAで1回に数十分かかる集計は、分けないと移せません。移す前に、今のマクロが1回に何秒かかるかを測っておきます。
Pythonへ書き換える場合に何が変わるかは、VBAをPythonに書き換える記事で、行数と実行時間を比べています。
このサイトで相談するには?
ブラウザで使えないマクロも、マクロの守りで、どの処理をどこへ移せるかを一緒に見ます。何をどう頼むか決まっていなくても大丈夫です。御社のやり方に合わせて、進め方を一緒に考えます。
準備は要りません。無料で相談するからお送りください。返信は最短当日です。
よくある質問
- ブラウザ版のExcelで、マクロ付きのブックを開くと壊れますか?
- いいえ、壊れません。開いて編集でき、マクロはブックに残ります。ただしマクロの実行・編集・削除はデスクトップ版のExcelでしかできません。
- Office Scriptsは、どのMicrosoft 365でも使えますか?
- いいえ。BusinessやE3などの法人・教育機関向けのライセンスとOneDrive for Businessが要ります。家庭向けはプレビューで、シートのボタンは使えません。
- VBAをGASに自動で変換する方法はありますか?
- はい、GoogleのMacro Converterがあります。Google WorkspaceのEnterprise PlusかEducation Plusが要り、対応しない処理は回避策の案内だけです。
- PCを触る処理だけVBAに残すことはできますか?
- はい、できます。共同で使うシートの処理をOffice ScriptsかGASに移し、フォルダや印刷を扱う処理はデスクトップ版のExcelのVBAに残す分け方です。
この記事の実験・計算の条件
20の処理×4つの環境。VBAは架空の受注200行のブックで18の処理を Microsoft 365 の Excel(16.0、64bit)で実行。ほかの環境はリファレンスで判定。
出典
- Microsoft サポート「Work with VBA macros in Excel for the web」(2026年10月16日確認)
- Microsoft Learn「Differences between Office Scripts and VBA macros」(2023年4月)(2026年10月16日確認)
- Microsoft Learn「Platform limits, requirements, and error messages for Office Scripts」(2026年10月16日確認)
- Microsoft Learn「External API call support in Office Scripts」(2026年1月)・「Get user input for scripts」・「Run Office Scripts in Excel from buttons」(2026年10月16日確認)
- Microsoft Learn「Cross-reference Excel files with Power Automate」(2025年12月)(2026年10月16日確認)
- Office Scripts API リファレンス(ExcelScript.PageLayout・PivotTable・Worksheet・Range)(2026年10月16日確認)
- Google for Developers「Quotas for Google Services」(2026年9月3日更新)(2026年10月16日確認)
- Google for Developers「Simple Triggers」・「Custom Functions in Google Sheets」(2026年9月3日更新)(2026年10月16日確認)
- Google for Developers「Macro Converter overview」(2026年9月3日更新)(2026年10月16日確認)
- Google for Developers Apps Script リファレンス(SpreadsheetApp・Ui・Range・Blob・MailApp・UrlFetchApp)(2026年10月16日確認)