Excelで作成したマクロをGoogleスプレッドシートでも使いたいと考えたことはありませんか。
社内ではExcelを使っていたものの、共有しやすさからGoogleスプレッドシートへ移行するケースは少なくありません。その際、「VBAもそのまま動くだろう」と思って移行すると、思わぬところで作業が止まってしまうことがあります。
実は、GoogleスプレッドシートにはExcelのVBAとは異なる仕組みが採用されています。そのため、Excelで問題なく動いていたマクロでも、そのまま利用することはできません。
この記事では、ExcelのVBAマクロがGoogleスプレッドシートで使えるのかを分かりやすく解説し、両者の違いや、Googleスプレッドシートで自動化する方法について紹介します。
✅ ExcelのVBAマクロはGoogleスプレッドシートで使える?
ExcelからGoogleスプレッドシートへ移行するとき、多くの人が最初に疑問に思うのが「マクロはそのまま動くのか」という点です。
ここを勘違いしたまま移行すると、自動化していた業務がすべて手作業になるケースもあります。
また、「マクロ」という言葉は同じでも、中身はまったく別物です。
違いを理解せずにGoogleスプレッドシートへ移行すると、予定していた運用ができなくなることも珍しくありません。
まずは最も重要な結論から確認していきましょう。
・ExcelのVBAはGoogleスプレッドシートでは動かない
結論から言うと、Excelで作成したVBAマクロはGoogleスプレッドシートでは実行できません。
例えば、次のようなVBAコードを作成していたとしても、
Sub Sample()
Range("A1").Value = "完了"
End Sub
Googleスプレッドシートへアップロードしても、このコードは認識されません。
ExcelにはVBA(Visual Basic for Applications)が搭載されていますが、Googleスプレッドシートは別のプログラム言語を採用しているためです。
つまり、Excelファイルを開くことはできても、VBAまで互換性があるわけではありません。
・GoogleスプレッドシートはApps Scriptを使用する
Googleスプレッドシートでは、Google Apps Script(GAS)という仕組みで自動化を行います。
Apps ScriptはJavaScriptをベースにしたプログラミング言語で、ブラウザ上で動作します。
例えば、
- セルへ値を入力する
- シートを追加する
- メールを送信する
- Google Driveを操作する
など、多くの処理を自動化できます。
つまり、
- Excel → VBA
- Googleスプレッドシート → Google Apps Script
というように、自動化の仕組み自体が異なっています。
・マクロという言葉だけでは同じ意味ではない
初心者が混乱しやすいのが、「Googleスプレッドシートにもマクロがある」という点です。
確かにGoogleスプレッドシートにはマクロ機能があります。
しかし、このマクロはExcelのVBAとは異なります。
Googleスプレッドシートで操作を記録すると、自動的にApps Scriptが生成されます。
つまり、
- Excelのマクロ=VBAコード
- Googleスプレッドシートのマクロ=Apps Script
という違いがあります。
名前は同じでも、実際には別の仕組みと考えた方が理解しやすいでしょう。
Googleスプレッドシートへ移行を考えている方は、VBA以外にも「Excelの代わりとして実務で使えるのか」が気になるのではないでしょうか。対応機能や向いている用途については、【GoogleスプレッドシートはExcelの代わりになる?】違い・できること・向いている人を解説の記事で詳しく解説しています。
✅ ExcelとGoogleスプレッドシートの自動化の違い
「どちらも自動化できるなら同じでは?」と思われるかもしれません。
しかし、実際に業務で利用すると、それぞれ得意分野が大きく異なります。
この違いを知らずにツールを選ぶと、「思っていたことができない」という状況になりかねません。
ここでは、自動化という視点から両者の特徴を比較していきます。
・ExcelはWindowsでの業務自動化が得意
Excel VBAは、Windows上で動作するOffice製品との連携に非常に優れています。
例えば、
- Excelファイルを大量に処理する
- CSVをまとめる
- フォルダ内のファイルを操作する
- PDFを自動作成する
- Outlookでメール送信する
など、パソコン内の業務自動化を得意としています。
そのため、社内業務の効率化では現在でもVBAが広く利用されています。
・Googleスプレッドシートはクラウド連携が得意
一方、Googleスプレッドシートはクラウドサービスとの連携が非常に強力です。
例えば、
- Gmail
- Googleカレンダー
- Google Drive
- Googleフォーム
- Googleドキュメント
など、Googleサービス同士を簡単に連携できます。
また、ブラウザさえあれば利用できるため、複数人でリアルタイムに編集できることも大きなメリットです。
Excelとは得意分野が異なるため、「どちらが優れている」というより、「用途に応じて使い分ける」ことが重要になります。
・互換性があるのはデータであってプログラムではない
Excelファイル(.xlsx)はGoogleスプレッドシートで開けます。
表や数式も、多くの場合はそのまま利用できます。
しかし、
- VBA
- ActiveX
- フォームコントロール
- 一部の関数
- 外部参照
などは互換性がありません。
つまり、
データは共有できても、自動化プログラムは共有できない
という点を理解しておくことが大切です。
Excel VBAはパソコン上での自動化、Googleスプレッドシートはクラウド上での自動化を得意としています。クラウド時代の業務自動化全体を理解したい方は、Excel×クラウド自動化の全体像を徹底解説|これからの業務効率化を理解する基礎知識もあわせてご覧ください。
Googleスプレッドシートがなぜ複数人で同時編集できるのかは、クラウドという仕組みを理解すると分かりやすくなります。基礎から知りたい方は、【クラウドとは】初心者にもわかりやすく解説|仕組み・種類・メリット・実務活用までの記事も参考にしてください。
✅ ExcelのVBAマクロをGoogleスプレッドシートへ移行する方法
Excel VBAをGoogleスプレッドシートへ移行するときは、ファイルをアップロードするだけでは不十分です。
見た目やセルの値が引き継がれても、マクロによる処理までは移行されません。
ここを見落とすと、移行後にボタンが動かない、集計が実行されないといった問題が起こります。
特に、長年使ってきたExcelファイルほど、見えない部分でVBAに依存していることがあります。
単純な処理であれば置き換えやすい一方、複雑な処理は設計から見直す必要があります。
そのため、まずは現在のマクロが何をしているのかを整理することが重要です。
・VBAコードをそのまま変換することはできない
Excel VBAとGoogle Apps Scriptは、記述方法や操作対象が異なります。
そのため、VBAコードをコピーしてApps Scriptの編集画面へ貼り付けても動作しません。
例えば、Excel VBAでは次のようにセルへ値を入力します。
Worksheets("集計").Range("A1").Value = "処理完了"
Google Apps Scriptでは、考え方を次のように書き換えます。
function writeMessage() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('集計');
sheet.getRange('A1').setValue('処理完了');
}
同じ「A1セルへ文字を入力する処理」でも、使用する命令やオブジェクトの指定方法が異なります。
したがって、VBAからGoogleスプレッドシートへ移行する場合は、コードの変換というよりも、処理内容をApps Scriptで作り直すと考える方が実務的です。
・現在のマクロ処理を一覧化する
移行作業では、最初にVBAが担当している処理を洗い出します。
例えば、次のように整理します。
- ボタンを押すと集計処理を開始する
- 複数シートのデータを1枚にまとめる
- 条件に一致する行だけ抽出する
- 集計結果を別ファイルへ保存する
- 完了後にメッセージを表示する
処理を一覧化すると、Googleスプレッドシートでも必要な機能と、移行後は不要になる機能を分けやすくなります。
すべてのVBAをそのまま再現しようとすると、移行作業が必要以上に複雑になります。
まずは、「本当に必要な処理なのか」「関数や標準機能で代用できないか」を確認しましょう。
・Googleスプレッドシートの標準機能で代用できるか確認する
Excel VBAで自動化していた処理でも、Googleスプレッドシートでは標準機能だけで対応できる場合があります。
例えば、次のような処理です。
- 条件に合うデータの抽出
- 複数範囲の集計
- 並べ替え
- 重複削除
- 入力規則の設定
- フィルターによる絞り込み
QUERY関数やFILTER関数、ARRAYFORMULA関数などを使えば、スクリプトを書かずに処理できることもあります。
コードを減らせれば、保守や修正の負担も小さくなります。
移行時には、VBAをすべてApps Scriptへ書き換えるのではなく、標準機能、関数、Apps Scriptの順に検討すると効率的です。
VBAは移行できませんが、Excelファイル自体はGoogleスプレッドシートへ変換して利用できます。変換方法や注意点については、【Excel】ファイルをGoogleスプレッドシートで開く方法|変換手順と互換性の注意点で詳しく紹介しています。
✅ Excel VBAとGoogle Apps Scriptはどちらを使うべき?
ExcelとGoogleスプレッドシートのどちらを選ぶかは、単純な機能比較だけでは決められません。
実務では、利用人数、ファイルの保存場所、既存の仕組み、担当者のスキルなども影響します。
便利そうだからという理由だけで移行すると、かえって作業時間が増えることがあります。
一方で、共有や同時編集が中心の業務では、Googleスプレッドシートの方が扱いやすい場合もあります。
大切なのは、現在の業務で何を優先するかを明確にすることです。
ここでは、判断しやすいように、それぞれが向いているケースを整理します。
・Excel VBAを使い続けた方がよいケース
次のような業務では、Excel VBAを維持した方がよい場合があります。
- 大量のExcelファイルを一括処理している
- パソコン内のフォルダやファイルを操作している
- OutlookやWordと連携している
- 複雑な帳票や印刷処理がある
- 社内端末がWindowsとExcelで統一されている
特に、ローカルフォルダ内のファイルを読み込んだり、複数のブックを開いて加工したりする処理は、Excel VBAの得意分野です。
すでに安定して動作している業務システムを無理にGoogleスプレッドシートへ移行すると、開発や検証に大きな負担がかかる可能性があります。
現在の仕組みに大きな問題がない場合は、無理に移行しないことも立派な判断です。
・Googleスプレッドシートへ移行しやすいケース
次のような業務では、Googleスプレッドシートが向いています。
- 複数人で同じデータを編集する
- 外出先や自宅からアクセスする
- Googleフォームの回答を自動集計する
- GmailやGoogle Driveと連携する
- ファイルの最新版を一元管理したい
Excelファイルをメールで送り合っていると、「どのファイルが最新なのか分からない」という問題が起こりやすくなります。
Googleスプレッドシートでは、同じファイルを複数人で共有できるため、ファイルの重複を減らせます。
また、編集履歴も確認できるため、共同作業を中心とした運用に向いています。
・一部だけGoogleスプレッドシートへ移行する方法もある
ExcelとGoogleスプレッドシートは、必ずしもどちらか一方に統一する必要はありません。
例えば、次のような使い分けも可能です。
- 日々の入力はGoogleスプレッドシートで行う
- 入力データをExcel形式でダウンロードする
- 複雑な集計や帳票作成はExcel VBAで行う
- 完成した結果だけGoogle Driveで共有する
この方法であれば、Googleスプレッドシートの共有性と、Excel VBAの処理能力を両方活用できます。
全面移行よりも、一部の業務から段階的に切り替える方が、現場の混乱を抑えやすくなります。
「どちらを選べばよいか迷っている」という方は、自動化だけでなく、価格・共有・機能なども含めて比較すると判断しやすくなります。詳しくは【ExcelとGoogleスプレッドシートの違い】どっちを使うべき?特徴・メリット・デメリットを徹底比較の記事をご覧ください。
チームで共同編集する機会が多い場合は、共有機能の違いも重要な判断材料になります。共有作業を重視した比較は、【GoogleスプレッドシートとExcel】共有作業はどっちが便利?違いと選び方を徹底比較の記事で詳しく解説しています。
✅ ExcelからGoogleスプレッドシートへ移行するときの注意点
ExcelファイルがGoogleスプレッドシートで開けたとしても、すべてが正しく移行できたとは限りません。
見た目が崩れていなくても、数式や処理結果が変わっている可能性があります。
特に、業務で使うファイルは、わずかな計算結果の違いが大きな問題につながります。
移行直後に問題が見つからず、数週間後に誤集計へ気づくケースもあります。
そのため、変換後は必ず元のExcelファイルと比較する必要があります。
マクロ以外の互換性も含めて、慎重に確認しましょう。
・数式や書式が正しく変換されたか確認する
ExcelとGoogleスプレッドシートでは、利用できる関数や書式に違いがあります。
変換後は、次の項目を確認します。
- 数式にエラーが出ていないか
- 集計結果がExcelと一致しているか
- 日付や時刻の表示が変わっていないか
- 条件付き書式が正しく反映されているか
- 印刷範囲や改ページが崩れていないか
特に、複雑な数式、外部参照、名前付き範囲を使用しているファイルは注意が必要です。
・マクロ付きファイルは元データを残しておく
マクロ付きExcelファイルをGoogleスプレッドシートへ変換するときは、元のファイルを削除しないようにしましょう。
移行後に不具合が見つかった場合、元のVBAコードや設定を確認する必要があります。
安全に移行するためには、次のような流れがおすすめです。
- 元のExcelファイルをバックアップする
- コピーしたファイルで変換を試す
- 数式やデータを比較する
- 必要な処理をApps Scriptで作成する
- 一定期間、Excelと並行運用する
いきなり本番環境を切り替えるのではなく、検証期間を設けることで移行トラブルを減らせます。
ExcelファイルをGoogleスプレッドシートへ変換するときは、ファイル形式(拡張子)の違いを理解しておくことも大切です。詳しくは【Excel】ファイル形式(拡張子)とは|初心者でも理解できる基本と違い・選び方を徹底解説をご覧ください。
✅ まとめ:Excel VBAとGoogleスプレッドシートの違いを理解して使い分けよう
- ExcelのVBAマクロはGoogleスプレッドシートではそのまま実行できない
- GoogleスプレッドシートではGoogle Apps Scriptを使って自動化する
- VBAからApps Scriptへ移行する場合は処理を作り直す必要がある
- 単純な処理は関数や標準機能で代用できることもある
- ファイル操作や帳票作成はExcel VBAが向いている
- 共同編集やGoogleサービスとの連携はGoogleスプレッドシートが向いている
- 全面移行だけでなく、ExcelとGoogleスプレッドシートを併用する方法もある
- 移行前には元のExcelファイルをバックアップし、数式や集計結果を確認する
Excel VBAとGoogle Apps Scriptは、どちらも業務を自動化できる便利な仕組みですが、得意な処理や利用環境が異なります。
現在の業務でExcel VBAが安定して動いている場合は、無理にすべてを移行する必要はありません。一方、複数人での共有やクラウド上での作業が増えている場合は、Googleスプレッドシートへの部分的な移行を検討する価値があります。
まずは小規模なファイルや単純な処理から試し、自社や自分の作業に合った使い分けを見つけることが、失敗しない移行につながります。