マクロといえばExcelに搭載された機能が有名ですが、実はGoogleスプレッドシートでも利用できるのをご存じでしょうか。マクロを活用することで、書類作成やデータ収集、メール送信といった幅広い作業を自動化できるため、業務効率化や生産性向上につながります。
ただし、GoogleスプレッドシートとExcelでは、マクロの仕様がやや異なります。動作環境や対応する言語、設定可能なトリガーなど、さまざまな観点からGoogleスプレッドシートのほうが使いやすいと感じる場合は、この機会にExcelから乗り換えるのも方法の一つです。
本記事では、Googleスプレッドシートにおけるマクロの仕組みや特徴、使い方を解説します。
Googleスプレッドシートのマクロとは作業を自動実行するための機能
マクロとは、指定したタイミングで特定の作業を自動的に処理する機能です。書類作成やデータの集計、メールの送信など、条件次第でさまざまな処理を実行できます。マクロを実行するにはプログラミング言語による指示が必要です。
Excelに搭載されているマクロ機能が有名ですが、Googleスプレッドシートにも同機能が搭載されています。ただし、GoogleスプレッドシートとExcelでは、動作環境や対応するプログラミング言語など、仕様や使い方がやや異なります。そのため、Googleスプレッドシートでマクロを利用するなら、独自の知識を押さえておくことが大切です。
GoogleスプレッドシートとExcelのマクロの4つの違い
GoogleスプレッドシートとExcelでは、同じマクロでも次のような点に違いがあります。
Googleスプレッドシート | Excel | |
---|---|---|
動作環境 | クラウド上で稼働 | 原則ローカル環境で稼働 |
プログラミング言語 | Google Apps Script | VBA |
トリガー | イベントと日時の指定が可能 | イベントのみ指定可能 |
Web上のデータ収集 | 取得できるデータ量に制限なし | 取得できるデータ量に制限あり |
ここでは、5つの観点から両者の違いを解説します。
動作環境
常にクラウド上で稼働するGoogleスプレッドシートのマクロに対し、Excelはローカル環境でしか機能を活用できません。Googleスプレッドシートでは、インターネット環境でマクロによる自動処理を実行し、そのまま複数人でシートを共同編集できるため、より利便性が高いといえます。
Excelには「Excel Online」というクラウド上で利用できるサービスもありますが、マクロ機能は実装されていません。有料プランにあるOfficeスクリプトの機能を実装することで、クラウド上のExcelでもマクロを設定できるものの、無料で使用できるGoogleスプレッドシートに対して費用がかかるのが難点です。
プログラミング言語
マクロはプログラミング言語を記述して実行しますが、GoogleスプレッドシートとExcelでは対応する言語が異なります。Excelのプログラミング言語はVBA(Visual Basic for Applications)です。
Googleスプレッドシートの場合はGoogle Apps Scriptがそれにあたります。Google Apps Scriptは、一般的なプログラミングでもよく使用されるJavaScriptがベースになっているため、VBAに馴染めないがゆえにマクロを利用できなかった方でも、比較的手軽に導入しやすいのが利点です。
トリガー
トリガーとは、マクロを実行する際のキーとなる条件です。例えば、「特定のユーザーがソフトウェアを起動した際に○○の処理を行う」という形でトリガーを設定しておくと、自動的にマクロを実行できます。
Googleスプレッドシートの場合は、特定のイベントと時間を条件に設定できますが、Excelではイベントのみが対象で、時間の指定はできません。Googleスプレッドシートのほうが、より細かく条件を指定できるのがポイントです。
Web上のデータ収集
GoogleスプレッドシートやExcelでは、特定の関数を使ってマクロを設定すると、Web上から自動的にデータを収集できます。GoogleスプレッドシートはIMPORTHTML関数、ExcelはWEBSERVICE関数を使用します。
ただし、両者で取得できるデータ量に違いがある点には注意が必要です。Googleスプレッドシートであれば、制限なくデータを収集できますが、一方のExcelは、取得できるデータ量に制限があります。そのため、無制限でデータを取り込めるGoogleスプレッドシートのほうが、活用範囲が広いといえるでしょう。
Googleスプレッドシートにおけるマクロの4つの活用例
Googleスプレッドシートのマクロは、情報整理や書類作成など、さまざまな場面で活用できます。代表的な活用シーンを押さえましょう。
情報整理
Googleスプレッドシート内の情報をスムーズに整理できるのは、マクロが持つメリットの一つです。情報を分割したり、複数のセルを統合したりする際に便利です。
例えば、顧客情報を管理する際に、顧客の姓と名を分割できます。部署と役職のセル同士をまとめることも可能です。さらにマクロでは、複数のデータを売上や日付ごとに並べ替えられるため、情報整理の効率性が高まります。
書類作成
契約書や請求書、納品書といった定型書類であれば、マクロによる自動作成が可能です。事前に設定した手順に沿って、機械が自動的に書類を作成してくれます。また、一覧形式の表(顧客管理表など)をもとに、取引先や製品ごとの書類を作成できるため、柔軟性にも優れています。
書類作成後の印刷まで対応しているのはマクロの大きなメリットです。印刷の向きや部数、用紙サイズなど、本来は手作業で処理しなければならない設定を、マクロならボタン一つで実行できます。
Webスクレイピング
商品名や価格など、Web上から膨大な量のデータを取得する際は多くの手間や時間がかかります。その点、マクロなら効率良くWebスクレイピング(Web上からのデータ収集)を行えるのが特徴です。
Webスクレイピングを実施する際は、WebサイトのURLや取得する情報の種別、そしてスケジュールを設定します。すると、「○月○日○時にAというサイトからBという情報を取得する」という処理が自動的に実行される仕組みです。先ほど紹介した情報整理のマクロと組み合わせると、データ収集からデータベース構築までの流れを自動化できるため、データ活用時の工数を大幅に削減できます。
メール配信
メールマガジンや営業メールなど、フォーマットが定められているメールなら、マクロを使って一括送信できます。メールの内容が定型化されていれば、タイトルや本文の自動作成も可能です。
「○○様へ」など、ある程度パーソナライズ化されたメールでも、マクロを設定しておけば、配信先リストから自動的に氏名を抽出できます。効率良くメール配信を行えるだけでなく、ヒューマンエラーを避けられるのも利点です。
Googleスプレッドシートにおけるマクロの使い方3ステップ
Googleスプレッドシートにおけるマクロの設定手順は次の通りです。
- マクロの記録
- マクロの実行
- マクロの編集
手順ごとに具体的な進め方やポイントを解説します。
1. マクロの記録
今回は、特定のセルのテキストを太字にし、色を変更するという処理をマクロで実行してみます。まずは新規でスプレッドシートを開き、任意のタイトルを設定しましょう。A1セルに任意のテキストを入力します。
[拡張機能 > マクロ > マクロを記録]の順にクリックします。
すると、これ以降の操作がGoogle Apps Script上に記録される仕組みです。記録が開始されると、[新しいマクロを記録しています]の表記とともに、絶対参照と相対参照の選択ボタンが表示されます。今回は絶対参照でマクロを記録します。
- 絶対参照:マクロ適用時、記録時と同様のセルを使用する
- 相対参照:マクロ適用時、記録時に選択したセルを使用する
次に、A1セルのテキストを太字にし、その後テキストカラーを変更しましょう。今回は赤のテキストカラーを選びます。
操作完了後、バーのなかにある[保存]をクリックします。
新しく作成したマクロの名前を決めてください。
また、任意のショートカットキーを登録すると、簡単な操作でマクロを実行できて便利です。
2. マクロの実行
作成したマクロを実行するため、A1セルの書式をリセットします。太字とテキストカラーの設定をもとに戻してください。
その状態で[拡張機能 > マクロ > (作成したマクロ名)]をクリックします。
マクロを初めて実行する際は承認が必要です。Googleアカウントのログイン画面が表示されるので、マクロを記録したときと同じアカウントを選択します。
[許可]をクリックしてください。
承認が完了すれば、先ほどと同じ[拡張機能 > マクロ > (作成したマクロ名)]という流れで進めましょう。するとA1セルにマクロが適用され、自動的に太字・赤文字の処理が実行されます。
3. マクロの編集
既存のマクロを編集する際は、[拡張機能 > マクロ > マクロを管理]をクリックします。
管理画面が表示されて名称やショートカットキーを変更できます。
プログラミングコードを書き換える場合、三点リーダをクリックして[スクリプトを編集]を選択します。
Google Apps Scriptの画面が開き、プログラミングコードを変更することでマクロの内容を編集できます。
例えば、次のような形で対象のセルや書式設定を変更できます。
- 対象のセルをA1からB2に変更:
「spreadsheet.getRange('A1')」→「spreadsheet.getRange('B2')」</style="font-weight:> - 太字から斜体に変更:
「setFontWeight('bold')」→「setFontWeight('italic')」 - フォントカラーを赤から青に変更:
「setFontColor('#ff0000')」→「setFontColor('#0000ff')」
マクロが複雑になるほど、一から設定を再構築するよりも、プログラミングコードを編集したほうが作業スピードが速まります。
Googleスプレッドシートでマクロを使用する際の2つの注意点
Googleスプレッドシートのマクロを使用するにあたり、いくつか注意すべきポイントが存在します。ここでは2つのポイントに分けて要点を解説します。
Google Apps Scriptが開かない場合がある
Google Apps Scriptを開こうとしても、Bad Requestエラーが表示される場合、Webブラウザのデフォルトアカウントと、Googleスプレッドシートを作成したGoogleアカウントが異なるのが主な原因です。両方のGoogleアカウントを同一にそろえることで正常にアプリケーションが開きます。
例えば、Google ChromeのGoogleアカウントが、デフォルトで「abc@gmail.com」になっているとします。一方、別の「def@gmail.com」のGoogleアカウントでGoogleスプレッドシートを作成した場合、デフォルトのアカウントと種別が異なるので、上手くGoogle Apps Scriptを開けません。そのため、デフォルトのアカウントを変更するか、デフォルトと同じアカウントでGoogleスプレッドシートを作成するか、いずれかの手段をとる必要があります。
プログラミングコード変更時のコメントや履歴が残らない
Google Apps Scriptを利用する際に注意すべきなのは、データの復元が困難なことです。Google Apps Scriptは、プログラミングコードを変更する際、コメントや履歴が残らない仕様です。また、記述ミスなどでエラーが発生し、強制的にアプリケーションが終了することもあります。
より厳格にプログラミングコードを管理するには、Google Chromeの拡張機能「Google Apps Script GitHubアシスタント」を導入するのがおすすめです。これによりプロジェクトごとの作業履歴を残せます。エラー対策としては、エラー発生時の動作を記述できるtry catch構文を活用するのが効果的です。
マクロを有効活用するならGoogle Workspaceがおすすめ
Google Workspaceとは、GoogleスプレッドシートやGoogleドライブ、Gmailなど、幅広いコミュニケーションツールが搭載されたグループウェアです。有料版のさまざまなGoogleサービスを一括利用・一元管理できます。
なかでもGoogleスプレッドシートのマクロを使用する際は、Googleドライブの容量が拡張されるのが大きなメリットです。無料版であればユーザー1人あたり15GBまでしかファイルを保存できませんが、Google Workspaceなら、最低でも30GB、最大5TBまで拡張できます。そのため、保存できるGoogleスプレッドシートの量が増えます。
また、Google Meetに参加できるユーザー数が拡張されたり、セキュリティ機能が増えたりと、ほかにもさまざまな恩恵を得られます。複数のサービスを組み合わせて社内コミュニケーションを円滑にしたい方は、Google Workspaceの導入を検討してみてはいかがでしょうか。
Googleスプレッドシートのマクロを活用して作業を自動化しよう
Googleスプレッドシートのマクロを活用すれば、情報整理や資料作成、Webスクレイピングなど、さまざまな業務の効率化を図れます。Googleスプレッドシート内で特定の作業を行えば、その手順や内容を機械が読み取ってくれるため、面倒な設定作業も必要ありません。効率良く幅広い作業を自動化できるのがマクロの利点です。
マクロをより有効活用するなら、Google Workspaceの導入を検討してみてはいかがでしょうか。Google Workspaceは、Googleドライブの容量拡張やセキュリティ機能の追加など、さまざまなメリットがあります。こちらの資料でGoogle Workspaceの特徴を詳しく紹介しているので、ぜひ参考にしてください。
- カテゴリ:
- Google Workspace
- キーワード:
- スプレッドシート マクロ