GoogleSpreadsheetとExcelのマクロの違いは?機能や使い方について

この記事を読んでいるということはGoogleSpreadSheetにはマクロ機能が備わっていることはご存知だと思いますが、Excelのマクロ機能とはなにが違うのか。そして使い方について調べていることかと思います。

Excelは企業や個人で当たり前のように使われてきましたが、近年、Googleの台頭とともにGoogleが提供する様々な機能を業務で使用する企業、個人が増えてきました。筆者もそのうちの1人で、業務ではもっぱらGoogle様様です。表計算ソフトのGoogleSpreadSheetはかなり重宝しています。

そこでこの記事ではGoogleSpreadSheetとExcelのマクロの違いや機能、使い方について紹介していきます。Excelの使い方についてはご存知の方も多いと思うのでGoogleSpreadSheetを重点的に解説します。

GoogleSpreadSheetとExcelのマクロの違いは?

まずはじめに断っておきますがExcelのほうが良い、いやいやGoogleSpreadSheetのほうが良い、といったことをこの記事では伝えたいわけではありません。企業や個人にあった使い方があるでしょうし、機能面では全く同じというわけではないので臨機応変に使用するのが望ましいと考えています。その点を踏まえてご覧いただけると幸いです。また、必要のない箇所は読み飛ばしてもらって構いません。ご自身が必要だと思う箇所をご覧ください。

Excelのマクロについて

そもそもExcelのマクロと聞いてVBAを思い浮かべる方は多いと思いますが、マクロとVBAは明確には異なります。マクロとは簡単に言うと、毎日行っている作業を自動化する機能です。自動化をするためにはマクロに記録させることが必要になってきますが、この記録は複雑なコードによって動くようになります。このコードの言語がVBAです。

VBAを極めれば条件分岐やループ処理ができたり、より複雑な処理が実行できるようになります。VBAについては別の記事にお任せしますが、VBAは覚えておくことをおすすめします。

ExcelのマクロではVBAのコードを書かなくても自動化が行えます。ボタンを押せば記録ができるので煩わしいコードを見る必要も一切ありません。マクロ記録中に表にフィルターをかけて抽出したり、ソートをかけたりするだけ。その操作をマクロが覚えてくれているので、あとはいつでも実行できるようにボタンを設置するだけです。

GoogleSpreadSheetのマクロについて

一方でGoogleSpreadSheetのマクロはというと、こちらはGoogle Apps Script(通称GAS)が言語となります。GASはJavaScriptをベースにしたプログラミング言語なのでJavaScript経験者なら労せずしてGASの習得が可能です。ただマクロに関して言うと、Excelと同様、言語は知らなくても機能は使えます。GoogleSpreadSheetのマクロ機能はこちらもExcel同様でほぼ同じ機能となっています。

GoogleSpreadSheetのマクロ以外の利便性

GoogleのSpreadSheetにマクロ機能が搭載されてからというもの、ビジネスマンの間ではSpreadSheetを使う人が増えていると筆者のまわりを見ていると感じます。無料で利用できるという点も導入のハードルの低さになっているのでしょう。

GoogleSpreadSheetは他のGoogleアプリと連携することが可能なので、機能を連携させたい方やGoogleを日頃使用している方にとっては利用しやすいようです。

最近ではフリマアプリが人気ですよね。このフリマアプリと上手く連携して購入情報をSpreadSheetに落とし込んだり、自動送信メールを送る仕組みを作ることもできます。

マクロだけでここまでのことはできませんが、マクロを実行するプログラミング言語であるGASを使えば、思い通りのことはできるのではないでしょうか。

GoogleSpreadSheetのマクロの使い方

ここではGoogleSpreadSheetのマクロの使い方について画像を用いて紹介していきます。まずはマクロの記録の方法についての解説です。

マクロの記録方法

SpreadSheetを開きます。

今回はマクロが実際に動くかどうかテストするためにA列に適当に文字を入力しました。これをマクロで昇順で並び替えるようにします。「ツール」>「マクロ」>「マクロを記録」を押します。

すると画面下部に以下のウィンドウが表示されます。

これが表示されている間に実行したい処理を行います。今回はA列の文字を昇順に並び替える処理を組みます。「データ」>「列Aを基準にA→Zにシートを並べ替え」で昇順にソートができます。処理が終わったら保存を押します。

保存すると、また別のウィンドウが出てきます。名前の入力を求められるので任意の名前を入力します。今回は「マクロのテスト」とします。また、ショートカットキーの番号も入力しておくと便利です。入力が終われば保存を押します。

これでマクロの記録ができました。簡単ですね。では実際にマクロが動くのかどうか見てみたいと思います。記録したマクロを実行してみましょう。

マクロの実行方法

マクロがきちんと記録できているのかを確認するために、さきほどマクロを記録したときに昇順に並び替えをしたA列に追加でランダムに文字を入力していきます。

入力が終わったら、「ツール」>「マクロ」>「マクロのテスト(任意で設定した名前)」を押します。このとき、ショートカットキーも使えるので覚えておくと便利です。

すると、以下のような画面が出てきます。これは初めてマクロを実行するときに出てきます。SpreadSheet単位で承認が必要なので、新たにSpreadSheetを作成してマクロを実行させようとすると承認を求められます。許可するため「続行」を押します。

「続行」を押すとアカウントを選択するよう求められるので、SpreadSheetを開いているアカウントを選択します。複数のアカウントにログインしている状態でも今開いているアカウントを選択します。

すると以下の画面が出てくるので、「許可」を押します。

「許可」を押すと、SpreadSheetの画面に戻りますがまだマクロは実行されていません。再度、「ツール」>「マクロ」>「マクロのテスト(任意で設定した名前)」を押します。

これでマクロが実行されました。さきほどA列に不規則に入力した文字がきちんと並び替わっていますね。

今回はA列の文字を並び替えるというとても簡単なマクロを実行しました。他にも表を作成し、複数列並び替えができたり、欲しいデータだけを抽出することも可能です。マクロ自体も複数作成できるので、用途に合わせて使い分けが可能です。

マクロを記録して実行までできましたね。慣れてくると他になにかできないかとチャレンジしたくなると思います。では次は記録したマクロのコードを見て、編集してみましょう。編集といってもいきなり難しいことから始めてしまうと挫折してしまいます。なので、少しだけいじってみる程度でも大丈夫です。

記録したマクロのコードを編集する

それでは実際にコードを触っていきましょう。記録したマクロのコードを編集するにはSpreadSheetの「ツール」>「スクリプトエディタ」を押します。

このとき、初めてスクリプトエディタを開く場合は承認作業が必要になると思うので、許可して承認してください。スクリプトエディタが開けばOKです。すると以下のようなコードが書かれた画面が出てきます。

マクロを記録するときの状況によって多少コード内容が違ってくると思いますが、ここで解説した内容を実践している場合はだいたい同じコードになっているはずです。

コードの内容を1つ1つ説明すると長くなるので、ここでは割愛します。

マクロを記録したら上記のようなコードがスクリプトエディタに記録されます。ですが、このコードはあまり綺麗とは言えません。マクロを複数記録したり、複雑なマクロを記録する場合、人間が読むときにわかりにくいコードになってしまう恐れがあるので、人間が読みやすいように綺麗に整えてあげましょう。

「私はプログラマーじゃないし、わからないよ!」という方はやらなくてもいいと思いますが、業務の効率化をしていきたいのであれば、ゆくゆくはコードを触る日が来ると思うので、少しずつでも慣れていくと良いですよ。

ということで、上記のA列を昇順にソートするマクロを記録したコードを綺麗にスッキリ整えてみます。

こんな感じでスッキリと1行に収めてみました。ぜひご自身でスクリプトエディタに打ち込んでみてください。これで記録したマクロのコードを編集できましたね!ではコードを書いたら保存をして実行してみましょう。

スクリプトエディタからコードを実行する

編集したコードがきちんと動くか確かめます。さきほど書いたコードを「control + S」か画面上のフロッピーディスクマークを押して保存してください。

保存ができたら実行する関数を選択します。関数は「function ~~~」と書かれたところです。記録したマクロは始めから「function myFunction」と入力されていましたが、コードを編集したときにもう1つの関数を作成しましたね。ここでは「function code_sukkiri」にしています。編集時に作成したコードを選択して実行してみましょう。関数の選択はここでできます。

編集時に作成した関数を選択し、▶の実行ボタンを押すと編集したほうのコードでスプレッドシートが実行されます。実行できているか確認するためにスプレッドシートのA列に新たに追記するか、ランダムに並べ替えをしてみてください。その後、スクリプトエディタに戻り▶の実行ボタンで実行してみましょう。スプレッドシートのA列は昇順に並べ替えができていれば上手く機能している証拠です。

もしエラーが出るようであれば、コードが間違っている可能性があります。修正をして再度実行してください。

編集したコード(関数)をスプレッドシートにインポートする

さきほどスクリプトエディタ上で編集したコードはスクリプトエディタから実行しました。これをスプレッドシートから実行できるように設定します。そのためには関数をインポートします。スプレッドシートの「ツール」>「マクロ」>「インポート」を選択します。

するとインポートのポップアップ画面が表示され、関数の選択ができるようになります。

関数が複数ある場合は追加したい関数を選択し、追加します。追加をしたら、スプレッドシートから自分で編集したコードが実行できるか確認してみましょう。「ツール」>「マクロ」>「code_sukkiri(任意で設定した関数名)」を押します。

エラーが出ず実行できていればOKです。これでスクリプトエディタで編集したコードをスプレッドシートにインポートし、マクロの実行ができるようになりました!ですが、同じ処理をするマクロは2つもいりませんよね。不要なマクロを削除しましょう。

マクロを削除する

不要なマクロは削除して管理しやすいようにしましょう。ということで、マクロを削除していきます。最初に記録したマクロを削除していきます。

いつもどおり、「ツール」>「マクロ」と進めていきますが、ここで「マクロを管理」を選択してください。すると以下の画面が表示されるので「削除」→「更新」を押します。

これで不要なマクロが削除できました。しかし、この方法だとマクロは削除できてもスクリプトエディタには削除したはずの関数のコードは残ったままです。

スクリプトエディタにコードは残しておきたい場合はそのままで大丈夫ですが、コードも不要という場合はスクリプトエディタ上からコードを削除しください。

まとめ

以上がスプレッドシートのマクロの使い方でした。「マクロ」と聞くだけで難しそうというイメージを持たれていた方もこれなら簡単にできそうですよね?毎日の単純作業はマクロに任せてしまいましょう。マクロを使いこなせるようになると空いた時間で他の業務に取りかかることができるので、まだマクロを使ったことがない方は今すぐにもで導入してみると良いですよ!

ただし、マクロだけだとできることには制限があります。スクリプトエディタでコードを編集したように、コードを書けるようになればもっと複雑なことや毎日、毎週、毎月繰り返し行っていた単純な作業も自動で効率化ができるようになります。

スプレッドシートから開いたスクリプトエディタに書かれたコードはGoogle Apps Script(GAS)と呼ばれるプログラミング言語です。プログラマーでなくても比較的扱いやすい言語なので、業務を効率化するためにもスキルとして習得しておくとご自身のためにも、そして社内でも重宝されるようになるでしょう。GASはGoogleのサービスや他のサービスとも組み合わせることが可能なので、アイディア次第では無限大にサービスや業務効率化の可能性が広がりますよ。

GoogleSpreadSheetとExcelのどちらを選ぶかは環境にもよると思います。筆者の個人的な意見としてはGoogleは他のアプリと連携しやすいので使い勝手が良いと感じていますが、Excelのほうが機能的に優れている点もあるでしょう。

今後、導入予定の方は用途によってGoogleSpreadSheetを使うかExcelを使うか判断されると良いでしょう。この記事が少しでもお役に立てれば幸いです。