2024年7月3日

【Google Workspace】Macro Converterを使ってExcelマクロを変換してみた


Content
こんにちは。Google Workspace研究開発チームです。

多くの企業でExcelが深く根付いている中、Google Workspace導入を検討する際に、
Excelとスプレッドシートとの互換性可否は懸念事項の一つとなります。

そこで今回は、Excelとスプレッドシートで互換性のないExcelマクロについて、
Macro Converterを使用してExcelマクロで使われているVBAのコードから
スプレッドシートで機能するGoogle Apps Scriptに変換する手順についてご紹介します。

マクロとは

マクロとは、「アプリ操作を自動化する機能」のことです。
Excelマクロでは、Visual Basic for Applications(以下、VBA)と呼ばれる言語を使用し、
Excelの各機能を自動化することができます。
対して、スプレッドシートでは、Google Apps Script(以下、GAS)と呼ばれる言語を使用し、
スプレッドシートの各機能を自動化することができます。
Google ドライブにExcelファイルをアップロードするだけでは上記の異なるマクロは変換されないため、
Macro Converterを使用して変換する必要があります。

Macro Converterとは

前項で説明したとおり、異なるマクロ言語を自動で変換してくれる拡張機能が「Macro Converter」です。
Macro Converterを使用し、VBAで書かれたコードを含むExcelファイルを簡単にスプレッドシートで
機能するGASに変換することができます。
ただし、この拡張機能を使用するためには、Enterprise PlusまたはGoogle Workspace for Education Plus アカウントが必要になります。

マクロ変換手順

それでは、実際にMacro Converterを使用してマクロ変換した際の手順をご紹介します。

事前準備

マクロ機能が有効になっているExcelファイルを準備します。
今回は、シート作成のマクロ機能を使用します。
「シート作成」ボタンを押すと、まず、リストシートとテンプレートシートが読み込まれます。
次に、リストシートの2行目から6行目までの値がテンプレートシートをコピーした
新しいシートに繰り返して入力されます。
最後に新しいシート名を入力された値に変更してプログラムが終了します。

VBAコード

Macro Converterのインストール

Google Workspace Marketplaceより、Macro Converterを開き、インストールをクリックします。

インストールが完了すると、次のような画面が表示されます。
Google ドライブのサイドバーにMacro Converterが追加されます。

Google ドライブにファイルアップロード

Google ドライブを開き、変換対象のExcelファイルをアップロードします。

Macro Converterの操作

Google ドライブのサイドバーにMacro Converterのアイコンが追加されていることを確認します。

「Add files and folders」を選択し、Google ドライブにアップロードした変換対象のExcelファイルを追加します。

ファイルが追加されない場合は、「その他の操作」から「更新」を選択します。

ファイルの追加を確認後、「Convert」を選択します。

新しいウィンドウが開き、変換結果が表示されます。
変換に成功した場合は次のような画面が表示され、「View results」を選択します。

Macro Converterに追加したExcelファイルがスプレッドシートに変換されています。

変換されたスプレッドシートを開き、[拡張機能] – [Apps Script]を選択すると、
マクロから変換されたGASを確認することができます。

変換後のGAS

VBAで日本語表記されていたシート名が文字化けしていることが分かります。
このままでは実行エラーとなるため、文字化け部分を修正します。

修正後のGAS

ボタンにマクロ機能を追加

スプレッドシートに変換されたとき、スプレッドシート上の「シート作成」ボタンのマクロが
解除されてしまうため、手動で再設定する必要があります。
スプレッドシート上の「シート作成」ボタンにマクロを追加します。
ボタン右上の「︙」から「スクリプトを割り当て」を選択します。

関数名を入力し、「確定」を選択します。

マクロ実行

「シート作成」ボタンを選択すると、GASが実行され、変換前のマクロと同じ実行結果となりました。

Macro Converterで変換に失敗した場合

最後に、Macro Converterでの変換に失敗した事例をご紹介します。

VBAコード

関数名を日本語で書いたコードを変換すると、次のようにエラーが出ました。

エラー内容を確認するため、互換性レポートを生成します。
Macro Converterの「Generate report」を選択します。

新しいウィンドウが開き、結果が表示されます。
「View Report」を選択します。

レポート(赤枠)を確認すると、2行目でParse Errorになっています。

エラー原因は「シート作成」関数の関数名にハイフンが使用されていることでした。

変換エラーを起こさないように、関数名は英語で表記するなど工夫が必要になります。

まとめ

以上が、Macro Converterを使用してExcelマクロで使われているVBAのコードをスプレッドシートで
機能するGASに変換する手順です。
変換にあたって、マクロの再設定や関数名の表記など多少の工夫は必要ですが、簡単に変換することができます。
マクロ変換検証の際に、本記事が皆様のお役に立てれば幸いです。

2024年7月3日 【Google Workspace】Macro Converterを使ってExcelマクロを変換してみた

Category Google Workspace

ご意見・ご相談・料金のお見積もりなど、
お気軽にお問い合わせください。

お問い合わせはこちら