VBA マクロを Apps Script に変換する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
始める前に
ファイルを変換する前に、VBA コード内の互換性のない API を更新することをおすすめします。ステータスが「Supported exactly」のファイルについては、ステップ 1: ファイルを変換するに進んでください。
互換性のない VBA API を変更する
ステータスが [回避策でサポート] または [調査が必要] のファイルについては、Apps Script で変換後に回避策と修正を適用できますが、ファイルを変換する前に、まず使い慣れた VBA コードを変更することをおすすめします。
互換性レポートで「回避策でサポート」または「調査が必要」とマークされている API ごとに、次のことをおすすめします。
- API によって実行される関数が VBA マクロの正常な動作に不可欠でない場合は、VBA コードから削除します。その場合は、サポートされている VBA API を使用して同様の動作を実装するようにコードを変更します。
- ステータスが [回避策でサポート] の API の場合、サポートされている VBA API に切り替えることができない場合は、VBA API をそのままにします。Apps Script に変換した後、変換された Apps Script コードのコメントに、この API の既知の回避策が推奨されます。
- 問題が 実装されていない言語構造に起因する場合は、それらの構造を使用しないようにコードを書き直してください。
ステータスが [Needs investigation] の API については、コードに次の API が含まれているかどうかを確認します。
Adodb.connection
CreateObject
: この API は、データベースやエンタープライズ リソース プランニング ソフトウェアへの接続によく使用されます。
Shell.execute
OleObject
「はい」の場合は、これらの API が属するファイルを変換せずに、他のオプションを検討することをおすすめします。これらの API は、データベースへの接続やローカル リソースへのアクセスなど、マクロの重要なオペレーションを実行する傾向があるため、一般的に Apps Script は適切なソリューションではありません。
ステップ 1: ファイルを変換する
- パソコンで Google ドライブを開きます。
- 右側のパネルで、マクロ コンバータ アドオン
をクリックします。サイドパネルが表示されていない場合は、右下の「サイドパネルを表示」アイコン chevron_left をクリックします。
- [ファイルとフォルダを追加] をクリックします。Macro Converter は Excel ファイルのみを認識します。
- 変換するファイルまたはフォルダを選択して、[選択] をクリックします。一度に選択するファイル数は 2,000 個未満にしてください。
- 変換後のファイルの保存先を変更するには、[変換後の保存先フォルダを変更] edit をクリックして、目的のフォルダを選択します。それ以外の場合は、ファイルはマイドライブ フォルダに保存されます。
- [変換] をクリックします。
- 変換が完了したら、[結果を表示] をクリックします。
ステップ 2: 変換したファイルをテストする
Apps Script コードを実行する
ファイルを変換したら、Apps Script 関数をテストします。変換したファイルを、Excel ファイルで通常使用するデータでテストします。可能であれば、変換後のスプレッドシート ファイルの出力と元の Excel ファイルの出力を比較します。
トリガーをテストする
ファイルに onOpen()
、onEdit()
、onClick()
などのトリガーが含まれている場合は、トリガーもテストします。一部の VBA トリガーは自動的に変換されないため、Apps Script で対応する必要があります。一般的な問題に対処するをご覧ください。
ReadMe ファイルを確認する
変換されたファイルとともに ReadMe ファイルが生成された場合は、ReadMe ファイルに記載されている変換の問題を確認します。
- テストしていないケースで問題が発生する可能性がある場合は、推奨される変更をコードに適用します。
- 考えられるすべてのシナリオをテストし、すべてが意図したとおりに動作する場合は、変更を行う必要はないでしょう。
ステップ 3: エラーを修正する
ファイルのテスト中にエラーが発生した場合は、変換されたコードのエラーを修正するをご覧ください。
コードがエラーなしで実行されたが、結果が期待どおりではない場合は、ファイルの ReadMe ファイルを開きます。各セクションを確認して、問題の原因を特定し、推奨される修正を適用します。
エラーを修正したら、ファイルを再度テストして、すべてが意図したとおりに動作することを確認します。
関連記事
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-08-31 UTC。
[null,null,["最終更新日 2025-08-31 UTC。"],[[["\u003cp\u003eThe Macro Converter add-on helps you convert your VBA macros to Apps Script, allowing them to run in Google Sheets.\u003c/p\u003e\n"],["\u003cp\u003eBefore converting, review the compatibility report and modify or remove incompatible VBA APIs for better conversion results.\u003c/p\u003e\n"],["\u003cp\u003eThe conversion process involves adding files to the add-on, initiating the conversion, and then testing the converted Apps Script functions and triggers in Google Sheets.\u003c/p\u003e\n"],["\u003cp\u003eIf errors occur or the results are unexpected, consult the generated ReadMe files and the troubleshooting documentation to fix issues and ensure proper functionality.\u003c/p\u003e\n"],["\u003cp\u003eAfter successful conversion and testing, your macros will be operational within Google Sheets, leveraging the capabilities of Apps Script.\u003c/p\u003e\n"]]],[],null,["# Convert VBA macros to Apps Script\n\nBefore you begin\n----------------\n\nYou might want to update incompatible APIs in your VBA code before you convert\nyour files. For files that have the status *Supported exactly* , you can proceed\nto [Step 1: Convert your files](/apps-script/guides/macro-converter/convert-files#step_1_convert_your_files).\n\n### Modify incompatible VBA APIs\n\nFor files that have the status *Supported with workaround* or *Needs\ninvestigation*, you can apply your workarounds and fixes after the conversion\nin Apps Script, but we recommend that you modify the VBA code that you're\nfamiliar with first, before you convert your files.\n\nFor each API marked as *Supported with workaround* or *Needs investigation* in\nthe compatibility report, we recommend the following:\n\n- If the function performed by the API isn't critical to your VBA macro working properly, remove it from your VBA code. If it is, change your code to implement a similar behavior with [supported VBA APIs](/apps-script/guides/macro-converter/compatible-vba-apis).\n- For APIs with the status *Supported with workaround*, if you can't switch to supported VBA APIs, leave your VBA APIs as is. After you convert to Apps Script, a known workaround for this API is recommended in the comments of the converted Apps Script code.\n- If the issue is coming from an [unimplemented language construct](/apps-script/guides/macro-converter/fix-conversion-errors#unimplemented_language_constructs), rewrite your code to avoid using those constructs.\n- For APIs with the status *Needs investigation*, check if your code contains\n any of the following APIs:\n\n - `Adodb.connection`\n - `CreateObject`: This API is often used to connect to database and enterprise resource planning software.\n - `Shell.execute`\n - `OleObject`\n\n If yes, we recommend that you don't convert the files these APIs belong to\n and investigate other options. These APIs tend to perform critical operations\n for a macro, like connecting to a database or accessing a local resource, and\n Apps Script is generally not a good solution.\n\nStep 1: Convert your files\n--------------------------\n\n1. On your computer, open [Google Drive](https://drive.google.com/drive/my-drive).\n2. On the right side panel, click the Macro Converter add-on . If you don't see the side panel, at the bottom right, click Show side panel chevron_left.\n3. Click **Add files and folders**. The Macro Converter only recognizes Excel files.\n4. Choose the files or folders you want to convert and click **Select**. Select fewer than 2,000 files at a time.\n5. To change where your converted files are saved, click Change destination folder edit, and select the folder you want. Otherwise, the files are saved in your MyDrive folder.\n6. Click **Convert**.\n7. When the conversion completes, click **View results**.\n\nStep 2: Test your converted files\n---------------------------------\n\n### Run your Apps Script code\n\nAfter you convert your files, test the Apps Script functions. Test the converted\nfiles with the data you normally use with your Excel files. If possible, compare\nthe output of your converted Sheets files with the output of your original Excel\nfiles.\n\n### Test your triggers\n\nIf your files contain triggers like `onOpen()`, `onEdit()`, or `onClick()`, test\nyour triggers, too. Some VBA triggers won't convert automatically and need to be\naddressed in Apps Script. See [Address common issues](/apps-script/guides/macro-converter/address-conversion-issues).\n\n### Review ReadMe files\n\nIf a ReadMe file was generated with your converted file, review the conversion\nissues listed within the ReadMe file.\n\n- If the issues might be problematic for cases you haven't tested, apply the recommended changes to your code.\n- If you've tested all possible scenarios and everything works as intended, you probably don't need to make changes.\n\nStep 3: Fix errors\n------------------\n\nIf you run into errors while testing your files, see [Fix errors in your\nconverted code](/apps-script/guides/macro-converter/fix-conversion-errors).\n\nIf the code runs without errors, but the result isn't what you expected, open\nthe file's ReadMe file. Review each section to help determine what's causing the\nissue and apply the recommended fix.\n\nAfter you fix errors, test the file again to make sure everything works as\nintended.\n\nRelated articles\n----------------\n\n- [Macro Converter add-on overview](/apps-script/guides/macro-converter/overview)\n- [Determine if VBA macros are compatible](/apps-script/guides/macro-converter/compatibility-report)\n- [Fix errors in your converted code](/apps-script/guides/macro-converter/fix-conversion-errors)\n- [Address common issues](/apps-script/guides/macro-converter/address-conversion-issues)\n- [Watch Macro Converter tutorials](/apps-script/guides/macro-converter/tutorials)\n- [List of compatible VBA APIs](/apps-script/guides/macro-converter/compatible-vba-apis)"]]