Googleスプレッドシートで、実際にマクロを使ってみたい!マクロで本格的な自動化をしてみたい!そう思った事はありませんか?
今回はそんな方のために、マクロの使い方について「具体的な事例付き」で紹介する実践編になります!
この記事を読むことで、「マクロとは何か」「どうやって使うのか」を知り、「マクロ制作を実践してみる」ことでGoogleスプレッドシートでマクロを使いこなせるようになります!
マクロとは
マクロとは、データの集計や分析をしたり、ある条件でソートをかけたりと本来手作業でやっていたことを自動化できる機能のことです。
通常であれば、こうした操作を自動化するには、プログラミング言語を使用して自動化のプログラムを組んで実行します。しかしGoogleのスプレッドシートでは、「マクロ」という拡張機能を使うことで、プログラミング言語なしで簡単に自動化することができます。
実際のやり方としては、スプレッドシートに対して文字入力などの操作を通常の操作のように行い、その一連の操作をマクロに記録(録画するような感じ)することで、次からは記録したそのマクロを実行することで、全く同じ操作を自動で実行できるようになります。
そのため、プログラミング言語を全く知らない人でも、簡単に自動化を実現することができるのです。
GASやVBAとの違い
GoogleスプレッドシートやExcelを使っていると、マクロ以外にも、「GAS」や「VBA」という単語を耳にしたことがあるのではないでしょうか。
結論、マクロは自動化の機能であることに対して、GASとVBAは、マクロの命令文を書くための言語です。
VBA (Visual Basic for Applications)は、Excel、Wordなどで使われるマクロ言語です。例えば、Excelでマクロを使う場合に、そのマクロの内容を書くために使われるプログラミング言語になります。
GAS (Google Apps Script)は、Googleスプレッドシート、Googleドキュメントなどで使用されるマクロ言語です。例えば、Googleスプレッドシートでマクロを使う場合に、そのマクロの内容を書くために使われるプログラミング言語になります。
本来であれば、GASやVBAという言語でマクロの機能を書かなくてはいけませんが、Googleスプレッドシートでは、GAS(VBA)を記述することなく、マクロを作ることができます。
それでは、実際にマクロを使って演習してみましょう。
Googleスプレッドシートでマクロを使ってみる
まずはデータを準備する(年齢別人口統計データを用意)
今回は、総務省の出している、年齢別人口(都道府県別)【総計】のデータを用いて、データ分析を行うためのマクロを作っていきます。
※下記リンクより、ダウンロードできます。
出典:総務省:年齢別人口(都道府県別)【総計】
https://www.soumu.go.jp/main_content/000829116.xlsx
データをスプレッドシートに貼り付けて(変換して)、準備完了です。
実際に次の項目から、①「19歳未満の人口の合計」を求める絶対参照でのマクロの作成方法、②「2つの年代を合わせた人口合計」を求める相対参照でのマクロの作成方法について解説していきます。
絶対参照・相対参照についてはこの後詳しく解説します。
①絶対参照でのマクロを作成する
それでは、早速マクロを記録していきましょう。まずは「絶対参照」でマクロを作成していきます。実際に手を動かして動作などを確認してみてください。
マクロの記録開始
マクロは、「スプレッドシーのメニューバー>拡張機能>マクロ>マクロを記録」をから記録を開始することができます。
このボタンを押した後、スプレッドシートに対して行った操作の内容が保存されます。
記録方法の選択
マクロを記録を押したら、下図のウィンドウが表示されると思います。これが表示されていれば、無事記録が開始されています。
この状態で、文字の入力や、並び替え、グラフの作成など、通常やっている自動化したい操作を行います。
一連の操作を行った後に、「保存」を押すことで、マクロが保存されます。
絶対参照、相対参照とは?
「絶対参照を使用」「相対参照を使用」のどちらにすればいいのか?と思った方もいるのではないでしょうか。絶対参照と相対参照には、マクロを「記録するとき」と「実行するとき」に選択しているセルがとても深く関係します。
例えば、A1を選択している状態で、A1の値をB1にコピーするという操作をマクロに記録します。絶対参照で記録している場合、どこのセルを選択している状態でも、マクロ実行によりA1の値がB1にコピーされます。
一方、相対参照で記録している場合、B1を選択している状態で、マクロ実行をするとB1の値がC1にコピーされます。このように、絶対参照は、セルが固定されているのに対して、相対参照は記録時に選択しているセルとの位置関係で操作が保存されます。
絶対参照で、マクロを記録
まずは、絶対参照でマクロを記録していきます。
C列に新しく列を追加し、C列に19歳未満の人口の合計を、男女別、都道府県別で出力するマクロを記録します。
まず、C列を挿入し、F4:I4でSUM関数を使って、合計値を出します。
今回は、全都道府県出せるように、関数をほかの県等にも適用します。
加えて、C3に「0~19歳」と入力しておきます。
以上の操作を保存するため、絶対参照として保存し、名前を付けてマクロを保存します。
これで絶対参照でのマクロの記録は完了です。
一度、作成したC列(0~19歳の列)を削除した上で、適当にセルを選択し、先ほど作成したマクロを実行してみましょう。すると、同様にC列に0~19歳の列が作成されたかと思います!
どのセルにカーソルが当たっていても、同様の位置を参照して必ず指定した位置にデータを挿入してくれるのが「絶対参照」になります。スプレッドシートのセルの位置が固定されているテンプレートなどで使うと非常に効力を発揮します。
絶対参照でのマクロの作り方、動作がわかったところで、次は相対参照でマクロを作成していきます。
相対参照でのマクロを記録する
選択した、0~4歳と5~9歳の合計など「連続する2つの年代の合計の数」を、新規に列を追加して計算するマクロを記録します。
例えば、0~4歳を選択した状態でマクロを実行すれば、0~4歳の列の左に新規の列を追加し、0~9歳の合計を出力します。5~9歳を選択した状態で行えば、その一つ左の列に5~14歳の合計を出力します。
相対参照でマクロを記録開始する
F2セルを選択した状態で、マクロを記録をします。記録を開始する前に、画面下部で、「相対参照を使用」を選択してください。
セルの位置に注意してマクロを記録する
今回は、下記の順で操作をしていきます。
- F列を選択し、左に1列挿入
- F4セル(新規に作成した行のセル)に「=SUM(G4:H4)」(0歳~4歳と5歳~9歳の合計/列)を入力
- F4セルより、下の行に複製(セルの右下をつまんでドラッグ&ドロップ)
- F3セルに「人」を入力(ヘッダー単位の入力)
- F2セルに「=G2&”と”&H2」を入力(ヘッダータイトルの作成)
以上を操作を行ったら、以下のようなシートが出来上がると思います。
操作を一通り実施したら、保存していきます。
お疲れ様でした。すべてのマクロの記録が完了しました。保存が完了したら、マクロを実行してみましょう。
相対参照で作成したマクロを実行する
ここまでに記録したマクロを実行していきます。F列(0歳~4歳と5歳~9歳)を削除して、0歳~4歳の列にカーソルを合わせて、先ほど作成したマクロを実行してみてください
初めて実行する際は、承認が必要になります。承認方法がわからない場合は、下記の記事をご確認ください。
実際にF列に同様の値が入力されていれば完璧です!
次に、H2セル(10歳~14歳)を選択した状態で、相対参照で作成した「2列分の年齢範囲で合計値を出力する」を実行します。すると、新たにH列に10~19歳までの人口の合計の人数が表示された列が作成されるかと思います。
このように、相対参照では、同様の操作を別の位置でも実施する場合、非常に効力を発揮します。
先ほどの「絶対参照」と「相対参照」、使い分けを意識しながら、今後のマクロ制作をしていただければと思います!
まとめ
今回は実践編として、マクロを使ったGoogleスプレッドシートの作業自動化について解説してきましたが、いかがだったでしょうか?演習として、2つほどマクロの事例を解説いたしました。
プログラミングができなくても、マクロを実装できると様々な業務の稼働削減に繋がります。事務作業などで日ごろ頻繁に使う操作は、マクロに登録してみてはいかがでしょうか。
今回の記事をしっかり読み直して、マクロの基礎的な作り方を復習していただければ幸いです!
コメント