2025.04.05
使えないと非効率的!社会人なら知っておきたい ChatGPTを使ったExcel・スプレッドシートの自動化
Excelのマクロをそのままスプレッドシートへ持っていこうとして、うまく動かず手が止まった経験はないでしょうか。VBAとGASはどちらも表計算の作業を自動化する仕組みですが、動く場所も言語のベースも別のものです。そのため「コピーして貼れば動く」という話にはなりません。
一方で、変換の見当をつける作業はChatGPTのような生成AIが得意とする領域です。処理の意図を言葉で説明できれば、書き換えの下書きは短時間で手に入ります。問題は、その下書きをどこまで信じてよいかの線引きです。
VBAとGASの違いを公式ドキュメントの数値で押さえたうえで、変換を任せる手順、引っかかる制限、変換後に確かめることを順に整理します。
目次
はじめに:VBAとGASの変換をChatGPTで進めるときの全体像
VBAとGASの変換は、「コードの翻訳」ではなく「動く場所の違いを踏まえた作り直し」です。VBAはExcelというデスクトップアプリの内側で動き、GASはGoogleのサーバー上で動きます。この前提が変わるため、書き換えの過程では必ず設計判断が挟まります。
本稿はChatGPTを使いながら、どのようにしてExcelとスプレッドシートの自動化を行うのかについて解説しています。Excelとスプレッドシートは社会人になると必須のビジネスツールですが、自動化できている人は少ないと思います。日々の業務の中で同じことを繰り返していたり、自動化できたりすることが沢山あり、これらを自動化できれば、時間が生まれてより他のタスクに時間を割けるようになるでしょう。
幸いにも現在は生成AIの進化が目覚ましく、プログラミングの知識が一切なくても自動化の入口に立てるようになりました。ただし入口に立てることと、業務に載せて回し続けられることは別の話です。前提の把握、手段の選択、変換の実行、検証と運用の4段階で捉えると迷いにくくなります。
この記事が少しでもお役立てできれば幸いです。
VBAとGASとは|言語のベースと動く場所の違い
VBAとGASは、どちらも表計算ソフトの操作を自動化するためのプログラミング言語です。共通点はそこまでで、言語のベース、動く場所、必要なライセンスのいずれも異なります。まずは両者の輪郭をそろえます。
VBAとは
VBAとは正式名称がVisual Basic for Applicationsで、Microsoft Officeのアプリケーションの機能を拡張できるプログラミング言語です。Officeのデスクトップ版に組み込まれているため、追加のライセンスなしで利用できます。
これを使うことにより、Excelのマクロ機能が使えます。実際、マクロ機能はVBAを使わずとも使用できますが、VBAを使った方がより柔軟で複雑なマクロ機能を使えるようになります。ExcelのVBAは、ブック・シート・セル範囲を階層構造のオブジェクトとして扱う設計です。
VBAはユーザーのデスクトップと同じ権限で動作します。ローカル操作に強く外部連携に弱い、という性格です。
マクロ機能とは
一般にマクロ機能とは、アプリケーションソフト上で操作手順を記録して、複数の手順をまとめて一度に自動実行できる機能です。特にExcelに関して言えば、何度も行うような作業(セルの大きさを揃える、セル内の文字の色を変える、セル内の文字のサイズを変えるなど)をまとめて一度に自動実行できます。
マクロ機能を柔軟に使えるようになり自動化ができれば、日々のExcel業務の負担を大幅に減らすことが可能です。なおスプレッドシート側にもマクロの記録機能があり、記録した操作はApps Scriptの関数として macros.gs に保存されます。実体はGASそのものです。
GASとは
GASとは正式名称がGoogle Apps Scriptで、Googleのサービス(Gmail、Googleスプレッドシートなど)と連携して、業務の自動化や拡張機能を実現できます。スプレッドシートにはマクロ機能と明確に呼ばれているものはなく、GASを書いて実行するだけでマクロのようなことを実現できるので、先のVBAより取っ付きやすいです。
スプレッドシートに限ったことではないですが、Googleサービスはインターネット環境で保存されるので、どのデバイスであっても同じスプレッドシートにアクセスできます。もちろん、GASもネット環境にさえいれば編集できます。ここはExcelとは大きく異なるスプレッドシートの利点です。
言語のベースはJavaScriptで、実行基盤はChromeやNode.jsと同じV8ランタイムです。let や const、アロー関数は使える一方、setTimeout、fetch、ES6のモジュール構文は利用できません。ブラウザ向けJavaScriptの知識がそのまま通用するわけではない点が落とし穴です。
参考:V8 ランタイムへの移行
VBAとGASを7つの軸で比べる
VBAとGASの違いは、言語の文法よりも「動く場所」に起因するものが大半です。公式ドキュメントで確認できる項目を軸に並べます。
| 比較軸 | VBA(Excel) | GAS(スプレッドシート) |
|---|---|---|
| 言語のベース | Visual Basic | JavaScript(V8ランタイム) |
| 動く場所 | 手元のPC上のExcel | Googleのサーバー |
| 実行時間の上限 | 明示された上限なし | 1回の実行あたり6分 |
| カスタム関数の上限 | 明示された上限なし | 1回の実行あたり30秒 |
| 定期実行 | Excelを開いている必要がある | 1分ごと〜月1回で設定可能 |
| 外部通信 | 標準では手段が乏しい | 1日20,000回(Workspaceは100,000回) |
| データの上限 | 1,048,576行×16,384列 | 1,000万セルまたは18,278列 |
参考:Excel の仕様と制限
業務の効率化を目指すなら、malna株式会社へ
VBA、GASの概要について解説いたしましたが、「実際に自社で活用できるのか?」「導入にあたって何が必要なのか?」と不安に感じる方も多いのではないでしょうか?
malna株式会社では、生成AIの専門家が、貴社の実現したい内容を基に、最適なAI導入のご提案とサポートを提供しております。
- AI導入・コンサルティングおよびIT・DX分野で累計40社以上を支援してきた知見をもとにご提案
- テクノロジー/マーケティング視点を持った専門家が直接支援
- AIの導入/定着まで一気通貫でご支援
まずは無料相談にて、社内導入の流れや貴社の現在のお悩み等、お気軽にご相談ください。
VBAとGASでできること|自動化が効く業務の型
VBAとGASでできることは、先に説明したようにマクロ機能で何ができるかということと同義です。以下ではマクロ機能で何ができるのかを詳しく説明します。
平たく言ってしまえば、マクロ機能はなんでもできます。ただ、なんでもできますと言っても実感が湧かないと思いますので、特にExcelやスプレッドシートでめんどくさい業務が改善される例を紹介します。どれも「人が繰り返している」「判断の余地が少ない」作業です。
例1:同じもの(または一致しないもの)を探す
複数のシートを突き合わせて差分を洗い出す作業は、自動化の効果が見えやすい型です。別々のシートに顧客データが入っているとします。一方は代官山店の顧客データで、もう一方は恵比寿店の顧客データとします。そこで、二つの店舗の共通顧客を見つけたいと思った時、手作業で逐一確認するのは大変ですよね。
顧客データが100名程度なら頑張ればできますが、1000名またはそれ以上では人間では不可能です。そこでマクロ機能を使えば、2店舗の共通顧客を割り出して新しいシートに書き出すことができます。VBAでもGASでも実現でき、変換の練習題材としても扱いやすい処理です。
例2:毎月の売上報告書を作成
決まった手順で決まった成果物を作る定型業務は、投資回収が読みやすい型です。毎月の売上データをコピー&ペーストして、ピボットテーブルを作成。そして、見やすいようにグラフも作成して、PDFで出力。そして上司にメールで送信。これもマクロ機能を使えば、ワンクリックで完了します。
さらに、手作業で行うコピー&ペーストはミスする可能性を伴いますが、マクロ機能であればそういったミスは起こりません。ただしGASへ移す場合はメール送信の上限に注意が必要です。無料のGoogleアカウントでは1日100件、Google Workspaceでは1日1,500件が受信者数の上限とされています。
例3:Webからのデータ取り込みとデータの整形
外部の情報を取り込んで整える作業は、VBAとGASで得意不得意が分かれる型です。例えば、Webから為替や株価を手動でコピーして、Excelやスプレッドシートに貼り付け、それを分析できるように整えてピボットテーブル等で分析する。このような業務も一々ブラウザとExcelを行き来したり、コピーミスがあったりと手作業では大変かつ集中力が必要です。
これも、マクロを使えばWebからの情報取得とデータの整形までをワンクリックで行うことができます。この用途はGASの方が素直に書けます。外部へのHTTPリクエストを送る仕組みが標準で用意されており、日次の上限も公式に明記されているためです。
関連記事:【保存版】中小企業が今すぐ始められるChatGPT活用ガイド:導入から運用までのポイントを完全解説
VBAをGASに変換する3つの方法
VBAをGASに変換する方法は、手作業での書き直し、Google公式のMacro Converterによる変換、生成AIを使う変換の3つに整理できます。どれか1つで完結せず、対象の規模とライセンス条件で使い分けるのが現実的です。
方法1:手作業で書き直す
手作業での書き直しは、対象が小さいときに最も速く終わる方法です。ループとセルの読み書きだけの数十行のマクロなら、処理の意図を読み取って書き直す方がツールの準備より短時間で済みます。
利点は、書き換えの過程で処理の意図が整理される点です。不要な処理を同時に落とせます。逆に数百行を超える規模や、作った人が不在で意図の分からないマクロには向きません。
方法2:Google公式のMacro Converterで変換する
Macro Converterは、VBAコードを含むExcelファイルをスプレッドシートとApps Scriptに変換するGoogle公式のアドオンです。対応状況をまとめた互換性レポートが得られる点が大きな価値になります。
ただし利用条件が限定されています。公式ドキュメントは、Google Workspace Enterprise PlusまたはGoogle Workspace for Education Plusのアカウントが必要であると明記しています。対応するファイル形式はExcel 97以降で、Excelファイル以外には使わないよう案内されています。
互換性レポートは、VBAのAPIを「完全に対応」「回避策を使えば対応」「調査が必要」の3段階に分類し、後者2つは変換前に手を打つよう推奨されています。また Adodb.connection、CreateObject、Shell.execute、OleObject のようにデータベース接続やローカルシステムへのアクセスを担うAPIは、Apps Scriptで容易に再現できないと明示されています。
方法3:ChatGPTなどの生成AIに変換させる
生成AIによる変換は、ライセンス条件に縛られず部分的な書き換えにも使える点が強みです。Macro Converterが使えないアカウントでも試せますし、「この20行だけGASに直したい」という粒度の依頼にも応えます。
一方で、生成AIは変換の正しさを保証しません。存在しないメソッドを提示することもあり、動作確認は依頼した側に残ります。生成AIは変換の下書きを作る道具であり、検証を省く道具ではありません。
3つの方法の使い分け
3つの方法は、対象の規模とアカウントの条件で選び分けます。判断の目安を表に整理します。
| 状況 | 向いている方法 | 理由 |
|---|---|---|
| 数十行の小さなマクロ | 手作業、または生成AI | ツールの準備コストの方が大きい |
| 数百行以上・作者不明 | Macro Converter | 移行不能箇所が一覧になる |
| Enterprise Plus未契約 | 生成AI+手作業 | 公式アドオンの利用条件を満たさない |
| 外部DB接続を含む | 設計から見直す | 公式が変換困難と明記している |
| 一部の処理だけ移したい | 生成AI | 粒度の細かい依頼に対応できる |
ChatGPTを使ったコードの書き方|変換を依頼するときの伝え方
ChatGPTに依頼する文章のことをプロンプトと言います。VBAでもGASでもプロンプトの書き方は大きく変わりませんが、変換を頼む場合は「元のコード」と「元の環境」の両方を渡す必要があります。
まず、VBA(またはGAS)を書いてください。と依頼してください。続いて、実現したいマクロの内容をできるだけ詳細に記述します。ここでの注意点は、どこにどのデータが入っていて、どこにどのデータを出力したいのかを詳しく書くことです。
具体的には「B列に顧客の名前、C列に顧客の住所、D列に顧客のメールアドレスが入っています。…。新しいシートのA1に出力してください」のように書きます。列、行、そしてシート名まできちんと書いてあげると、良いコードが得られやすいです。
列や行、シート名を書かないと、ChatGPTは一般的なシートに沿ってコードを出力するので、それを貼り付けてもうまく行かないことがほとんどです。また、プロンプト全般に言えることですが、それやこれなどの指示語は多用せず、極力具体化すると良いコードが得やすいです。
こうして、コードが得られたら下記に書くやり方に従って、コードを実行します。実際一度でうまく行くケースは稀で、何度もChatGPTと対話を重ねて要望にあったコードにしていきます。この際も、極力具体化して伝えることは必須です。
なお、ChatGPTの利用プランや、入力した内容の扱いに関する設定は変更されることがあります。業務データを扱う前に、提供元の公式ヘルプと自社の管理画面で現在の条件を確認してください。
関連記事:ChatGPTの料金プラン完全ガイド|無料版と有料版の違い・最適な選び方
VBA→GAS変換を依頼するプロンプトの型
VBAからGASへの変換を依頼するプロンプトは、5つの要素をそろえると精度が上がります。欠けると、AIが前提を補って的外れなコードを返します。
| 渡す要素 | 具体例 |
|---|---|
| 元のコード | VBAの全文(省略せずに貼る) |
| 処理の目的 | 2つのシートを突き合わせて重複行を書き出す |
| シート構成 | シート名、見出し行の位置、対象列の記号 |
| データ量 | 行数の目安(数百行か数万行か) |
| 出力先 | 新規シートに書き出す/既存シートを上書きする |
そのうえで「1セルずつ読み書きせず、範囲を一括で取得して配列で処理してから一括で書き戻す形にしてください」という条件を加えます。この一文の有無で実行時間が大きく変わります。さらに「変換できない処理があれば代替案とともに指摘してください」と添えると、移行不能な箇所を黙って作り替えられるリスクを下げられます。
GAS→VBA変換(逆方向)を依頼するときの違い
GASからVBAへの逆変換は、外部連携の置き換え先を先に決めておく必要があります。Gmail送信、Googleドライブ操作、外部へのHTTPリクエストといったGAS標準の機能は、VBAに同じ仕組みがありません。
そのため「メール送信はOutlookを経由する」といった代替手段を指定してから頼みます。もう1つの違いは実行の主体で、VBAはExcelが開いていることが前提です。定期実行が処理の要なら、逆変換は設計の見直しから始める判断が妥当です。
VBAの使い方
VBAのコードは、Excelの「開発」タブから開くVisual Basic Editorに貼り付けて実行します。既定では表示されていないため、最初に設定を行います。
ステップ1:Excel上に開発タブを表示させる
Windows版Excelでは、Microsoftの公式手順として「[ファイル]タブで、[オプション]>[リボンのユーザー設定]に移動します。[リボンのユーザー設定]および[メイン タブ]の下の[開発]チェック ボックスをオンにします」と案内されています。
MacOSではExcelを表示していると画面の一番上に左から“Appleマーク”、“Excel”と並んでいます。その“Excel”をクリックして、“環境設定”をクリックしてください。するとポップアップ画面が表示されます。その中の“リボンとツールバー”をクリックします。右側の“リボンのカスタマイズ”を下にスクロールすれば、”開発”があるのでチェックボックスにチェックを入れてください。これで最初の画面に戻れば、“開発”が表示されているはずです。なおMac版のメニュー名はバージョンによって異なるため、見つからない場合はリボンのカスタマイズに関する項目を探してください。
参考:[開発]タブを表示する
ステップ2:コードの記入
「開発」をクリックすれば、左側に「Visual Basic」があります。それをクリックすると、新しいポップアップ画面が表示されます。ポップ画面の名前は「Microsoft Visual Basic」です。
青枠の中にExcelのシートが並んでいます。そのうちマクロ機能を使いたいシートを右クリックします。そして、挿入をクリックし、標準モジュールをクリックすると、コードを入力できる画面が表示されるので、そこにChatGPTが出力したコードをペーストすれば完了です。最後に赤枠で囲まれた再生ボタンを押せばコードが実行されます。
このとき、注意点が2つあります。
- マクロ機能で実行した操作については戻るボタンで戻ることができない不可逆的な操作です。
- マクロ機能を使うと、Excelの保存形式が変わります。普通は.xlsxですがマクロを使用すると.xlsmに変わります。保存する際に注意画面が出るので、それに従えば大丈夫です。
GASの使い方
GASのコードは、スプレッドシートの「拡張機能」メニューからApps Scriptエディタを開いて貼り付けます。VBAのような事前設定は不要です。
マクロ機能を実行したいスプレッドシートを開きます。画面上部に左から「ファイル」「編集」「表示」「挿入」と続いて、「拡張機能」があります。その拡張機能の中の「Apps Script」をクリックすると、新しいタブが開きます。こちらはVBAのような細かい操作をすることなくコード入力画面になっています。
すでに書かれているコードをすべて消して、ChatGPTの出力結果をペーストすれば完了です。GASではコードの保存が必須です。保存した後にコードを実行してください。
最後に一つ大きな注意点があります。コードを実行する際に、Googleのログイン等を求められる場合があります。その中に、途中でセキュリティ的に安全ではない可能性がありますと警告が出ます。その際、画面上の目立つボタンをクリックしてしまうとコードが実行できないので、画面左下の小さく書かれている「安全ではないことを承認します」というような内容のボタンをクリックしてください。
この確認画面は、スクリプトが要求する権限を承認させる仕組みです。シートだけを扱うはずのスクリプトがメールやドライブ全体の権限を求める場合は、コードを見直す合図です。
変換で引っかかる5つの壁と回避策
VBAからGASへの変換でつまずく箇所は、文法の違いよりもプラットフォームの制約に集中します。公式ドキュメントで確認できる5つの壁と回避策を整理します。
壁1:1セルずつ読み書きするコードは極端に遅くなる
1セルずつ読み書きするコードは、GASでは実用に耐えない速度になります。Googleの公式ベストプラクティスは、ループの中で個別のセルへ書き込む処理が約70秒かかる例に対し、配列にまとめてから一括で書き戻すと1秒で完了する例を示しています。
原因は、シートへの命令1回ごとにサーバーとの通信が発生する点です。回避策は、getValues() で範囲を一度に読み、配列で計算し、setValues() で一度に書き戻す形へ組み替えることです。VBAでは1セルずつでも実用速度が出ていたため、直訳すると詰まります。
壁2:実行時間の上限に当たる
GASには実行時間の上限があり、長時間処理をそのまま持ち込めません。公式の割り当て表では、スクリプトの実行時間は1回あたり6分、カスタム関数の実行時間は1回あたり30秒と定められています。
VBAで数十分かかっていた月次処理を単純に移すと、6分に収まらず途中で止まります。回避策は、壁1の一括処理で実行時間を短縮する方法と、処理を分割してどこまで終わったかを保存し次の実行で続ける方法の2つです。
壁3:UserFormやActiveXは移せない
VBAの画面部品や外部オブジェクト連携は、GASに対応する仕組みがありません。入力フォームも同じで、VBAのUserFormで作った入力画面は自動変換されず、シート自体を入力欄として使う、Googleフォームからの送信を受け取る、といった置き換えが必要になります。移せない処理は「作り直す前提」で工数を見積もるのが安全です。
壁4:ローカルファイルの操作とパス指定
ローカルのファイルパスを前提としたコードは、GASでは動きません。GASはGoogleのサーバー上で実行されるため、手元のPCのドライブや共有フォルダを参照する処理には対応先がないからです。
Microsoftの公式資料も、VBAはExcelと同じ権限でデスクトップへのフルアクセスが提供される一方、クラウド側のスクリプトはブックにのみアクセスでき、ホストしているマシンにはアクセスできないと説明しています。回避策は、ファイルの置き場所をGoogleドライブへ移すことです。
壁5:トリガーと定期実行の考え方が違う
定期実行の仕組みは、VBAとGASで別の設計です。VBAはExcelが開いている前提でしか動きませんが、GASはインストール可能なトリガーで1分ごとから月1回までの間隔で無人実行できます。
この違いは移行の動機にもなります。ただし実行はトリガーを作成したユーザーの権限で行われるため、担当者の異動時に引き継げるかを移行前に確認しておきましょう。
変換後の検証と、業務に載せるまでの手順
変換後のコードは、元の処理と同じ結果を返すことを確認できて初めて業務に載せられます。Macro Converterの公式ドキュメントも、変換したApps Scriptを実行して元のExcelファイルとの出力を比較し、onOpen() や onEdit() のようなトリガーもテストする手順を示しています。
生成AIを使った場合は互換性レポートすら出ないため、確認の設計を自分で組む必要があります。
検証の4ステップ
検証は、対象を小さく固定してから広げる順序で進めます。実データで一発勝負をすると、失敗の原因が分からなくなります。
- コピーしたファイルで実行する。元データには一切触れない状態から始める
- 数十行程度の小さなデータで、VBAの結果とGASの結果を並べて突き合わせる
- 空欄、全角と半角の混在、日付の表記ゆれを混ぜて挙動を確かめる
- 本番相当の行数で実行し、6分の上限に収まるかを測る
特に3番目は落としやすい工程です。GASはJavaScriptベースで、数値と文字列の扱いがVBAと異なる場面があります。見た目が同じでも型が違う値が混ざると、集計結果が静かにずれます。
コード例を扱うときの前提
コード例を参考にする場合は、公式ドキュメントに記載のあるメソッドかを確認してから使ってください。本稿で触れた getValues() と setValues() は、Apps ScriptのSpreadsheetサービスのリファレンスに記載された範囲操作のメソッドです。
ただし、本稿の記述は実際のデータで動作を検証したものではありません。シート名や列の位置は環境ごとに異なるため、必ず自分の環境のコピーで試してから判断してください。
参考:Spreadsheet サービスの Range リファレンス
変換の判断に迷ったら、malnaにご相談ください
自社のマクロはどこまで移せるのか、どの処理を作り直すべきかの見立てが難しいと感じた方もいるのではないでしょうか。
malna株式会社では、業務の棚卸しから自動化の設計、運用の定着までを一貫して支援しています。移行できる処理と作り直しが必要な処理の切り分けもご提案します。まずはお問い合わせからご相談ください。
メリット|ChatGPTを介して変換を進める利点
ChatGPTを介して変換を進める利点は、着手までの時間が短くなる点に集約されます。学習してから始めるのではなく、試しながら理解を進められます。
プログラミングの知識が不要
ChatGPTにコードを書いてもらっているため、プログラミングの知識が一切不要です。新しく勉強することなくプログラミングが使えます。変換の場面でも同じで、VBAとJavaScriptの文法対応表を覚える必要はありません。
もっとも、まったく読めない状態では検証ができません。「この行は何をしているのか」をChatGPTに説明させながら進めると、内容を確かめる力は付いていきます。
チャット形式で対話しながら逐一進められる
コードを実行してみて納得のいかないところがあれば、ChatGPTに言えば改良したコードを改めて出力してくれます。エラーメッセージをそのまま貼って原因を尋ねる進め方も有効です。
対話で進められる点は変換作業で特に効きます。まず動く形にする、次に速度を上げる、最後に例外データへ対応する、と段階を分けて詰められるためです。
変換の当たりをつける時間が短くなる
変換の可否を判断するまでの時間が短くなることも実務では大きな利点です。数百行のVBAを人が読み解くには時間がかかりますが、移行できない処理を挙げさせれば論点の一覧は短時間で手に入ります。
関連記事:カスタムGPT(GPTs)とは?活用事例・設定方法を解説!
注意点|そのまま業務に載せる前に確認すること
生成AIで作ったコードを業務に載せる前の確認点は、正確性、情報の取り扱い、プラットフォーム側の制限の3方向に分かれます。
生成されたコードが自分のニーズに100%マッチしているとは限らない
これについてはメリットとも被りますが、ChatGPTが出力したコードが正しいものとは限らないので、自分でどのような操作が行われたのか確認しなければなりません。
厄介なのは、エラーが出ずに間違った結果を返す場合です。集計範囲が1行ずれているだけの誤りは、数字を見ても判別できません。元の処理と結果を突き合わせる工程を省かないことが唯一の防ぎ方です。
情報の流出を防ぐ必要がある
先ほど、プロンプトはできるだけ具体的に書いた方が良いと書きました。しかし、具体的に書きすぎるあまりデータの内容までプロンプトに含めてしまうと、最悪の場合情報漏洩につながってしまう可能性があります。
変換の依頼では危険が二重になります。渡すのはコードだけのつもりでも、VBAには接続先のサーバー名、共有フォルダのパス、取引先の名称が書かれていることが珍しくありません。コードを貼る前に、固有名詞と接続情報をダミーに置き換える一手間を入れてください。
関連記事:ChatGPTのモデル別の違いは?無料版から有料版まで利用シーン別に徹底解説
プラットフォーム側の制限で動かないことがある
コードが正しくても、プラットフォーム側の制限で動かないことがあります。6分の実行時間、30秒のカスタム関数、1日あたりのメール送信数や外部通信回数は、書き方では回避できない枠です。
Excel側で続ける場合も別の制限が関わります。クラウド側の自動化手段であるOffice Scriptsは、企業向けまたは教育機関向けのライセンスが必要とされ、対応環境もExcel on the web、Windows版(バージョン2210以降)、Mac版に限られます。Power Automate経由の実行は1ユーザーあたり1日1,600回が上限です。
Excel側ではマクロが既定でブロックされる
Excelでマクロを使い続ける場合、ファイルの入手経路によってマクロが既定でブロックされます。Microsoftはインターネットから取得したファイル内のマクロをブロックする方向へ既定動作を変更しており、対象はWindows上のAccess、Excel、PowerPoint、Project、Publisher、Visio、Wordです。適用は更新チャネルごとに段階的で、最新チャネルはバージョン2206から、半期エンタープライズチャネルはバージョン2208から始まっています。Mac版・モバイル版・Office on the webは対象外です。
該当ファイルを開くとセキュリティリスクのバナーが表示され、従来の「コンテンツの有効化」ボタンは出てきません。解除にはプロパティで「ブロック解除」にチェックを入れるか、信頼できる場所に保存する対応が必要です。メール添付でマクロ付きブックを配る運用は、この変更を前提に見直す必要があります。
参考:インターネットからのマクロは、Office で既定でブロックされます
よくある質問
VBAとGASの変換について、実務で繰り返し出てくる質問を4つ取り上げます。
ChatGPTだけでVBAをGASに完全変換できますか
完全な変換は保証されません。ChatGPTは変換の下書きを短時間で作れますが、実行結果の正しさは確認していません。UserFormや外部データベース接続のようにGASに対応する仕組みがない処理は、変換ではなく作り直しが必要になります。
Google公式のMacro Converterは誰でも使えますか
使えません。公式ドキュメントは、利用にGoogle Workspace Enterprise PlusまたはGoogle Workspace for Education Plusのアカウントが必要と明記しています。対応形式はExcel 97以降です。
GASの実行時間の上限はどれくらいですか
Apps Scriptの公式割り当て表では、スクリプトの実行時間は1回あたり6分、カスタム関数の実行時間は1回あたり30秒です。トリガーによる実行の合計時間は1日90分で、Google Workspaceアカウントでは1日6時間まで拡大されます。
変換後のコードは何から確認すればよいですか
元データのコピーで実行し、変換前と変換後の結果を突き合わせることから始めてください。小さなデータで一致を確認し、空欄や表記ゆれを含む例外データで挙動を確かめ、最後に本番相当の行数で実行時間を測る順序が安全です。
まとめ
VBAとGASの変換は、ChatGPTを使えば着手までの時間を大幅に短縮できる一方、プラットフォームの制限と検証工程は人が引き受ける作業です。適切にChatGPTを使い、マクロ機能を自由自在に使えるようになれば業務を効率化できることは間違いありません。最初は取っつきづらいかもしれませんが、慣れれば、毎日使うようになると思います。
変換の方法は手作業、Macro Converter、生成AIの3つで、規模とライセンス条件で使い分けます。GASには1回6分の上限があり、1セルずつの処理は組み替えが必要です。UserFormやローカルファイル操作は移せないため、作り直す前提で見積もります。
業務自動化をさらに加速したいなら、malna株式会社へ
ChatGPTを活用して、VBA、GASの機能を活かす具体的な方法について解説しましたが、AIは他にも様々なところで活用することができ、業務の効率化を図ることができます。
malna株式会社では、生成AIの専門家が、貴社の実現したい内容を基に、最適なAI導入のご提案とご支援を行っております。
- 累計40社以上のAI導入・IT・DX支援で蓄積したノウハウを共有
- テクノロジー/マーケティング視点を持った専門家が直接支援
- AIの導入/定着まで一気通貫でご支援
記事の内容を自社の業務に当てはめる段階へ進みたい方は、お問い合わせからご連絡ください。社内導入の流れや現在のお悩みをお伺いします。
AIを使える人材が社内にいない場合
変換の進め方はわかった。でも、社内で広げられる人がいない。
こう感じた方もいるのではないでしょうか。変換はAIが手伝えても、移せない処理を見極めて社内の手順に落とし込む役割は残ります。個人の工夫で終わらせず、チームで使える形に整える人がいるかどうかで効果の範囲が変わります。malnaでは、AI活用の実務経験を持つ人材をご紹介するAIタレント名鑑を運営しています。採用ではなく業務委託として、週1日から相談いただけます。
無料相談はこちら 記事一覧はこちら- malnaのマーケティングについて
-
弊社ではメディアやSNSなど総合的な支援が可能です。
媒体ごとに違うパートナーが入ることもなくスピーディな意思決定が可能です。
ご不明点や不安な点等ございましたらお気軽にお問い合わせください。 - サービス資料はこちら 詳しく見る



