「プログラミングやるなら何がいいでしょうか?」と聞かれることは多いです。
そんなとき、私は、Excelマクロ(VBA)をすすめています。
仕事に直結し、わかりやすく、はじめやすく、日ごろから慣れたExcelを使うからです。
他のプログラミング言語GoogleスプレッドシートのGASと比較してみます。
※自宅にて iPhoneX
Excelマクロ(VBA)とGoogleスプレッドシート(GAS)の違い
Excelは、ご存知のとおり、Microsoftが提供しているもので、広く普及しています。
有料ではあれ、PCに入っていることも多いです。
このExcelをプログラミングで動かすのがExcelマクロ(VBA)。
※VBAとは言語(英語、日本語、フランス語などのようなもの)で、マクロとは機能のことをいいますが、厳密に使い分けされていないことも多く、私は、「Excelマクロ」と呼んでいます。開催しているセミナー名もExcelマクロプログラミング入門セミナーです。
Excelさえあれば、無料で使うことができ、手軽にはじめることができます。
私が1997年にはじめて就職した職場、総務省統計局でもExcelがあり、仕事を早く終わらせたい、ミスをなくしたいという一心からこのExcelマクロをみつけ、覚えました。
以来、20年近く私のパートナーです。
雇われない雇わない生き方をできているのもこのマクロのおかげといえます。
確実に人はいらなくなりますから。
一方、GoogleのExcelといわれているGoogleスプレッドシート。
ネット上で無料で使えます。
Excelと違うところは多いのですが、それはまた次の機会に。
このGoogleスプレッドシートでもプログラミングはできます。
GAS(Google App Script)といわれるものです。
ネット上、ブラウザで無料というのが大きな利点で、他のGoogleサービス(Gmail、ドキュメント、フォームなど)やネットサービスとも連携できます。
当ブログの人気記事であるこの記事もGASを使ったものです。
ただ、
・プログラミング言語のわかりやすさ
・プログラミングのはじめやすさ
・ExcelがGoogleスプレッドシートより使われている
ことから、ExcelマクロをGASよりすすめています。
とはいえ、異なる言語を勉強することは、いい鍛錬になるので、Excelマクロをはじめるにしても、ぜひ両方の最初の一歩をやってみましょう。
それぞれ解説します。
Excelマクロ(VBA)のはじめ方と最初の一歩
Windows版のExcelを前提に解説します。
VBE(Excelマクロを書くソフト)を開く
Excelを開き、Alt+F11(AltキーとF11キーを同時押し)で、このような画面になります。
これが、Excelマクロを書くソフト、VBE(VisualBasicEditor)です。
(VBAは、VisualBasicAplicationの略)
もう一度、Alt+F11を押すと、Excelに戻ります。
Alt+F11は、ExcelとVBAを切り替える操作なのです。
VBEのオプションを設定
最初の一歩をやるとはいえ、設定を変えておきましょう。
VBEでAlt→T→O(Alt、T、Oと1つずつ押す)で、[ツール]の[オプション]を開き、次のようにチェックをして、Enterキーを押します。
Excelマクロを書く場所を準備する
その後、Alt→I→Mでこういった画面にします。
「Option Explicit」は、先ほどのオプションを変更した影響です。
ここにプログラムを書いていきます。
上下の空白行は、好みで変えて大丈夫です。
Subを書く
Excelマクロでは、多くの場合、
Sub マクロ名()
End Sub
が1つのプログラムの区切りです。
このSubとEnd Subの間に実行してほしいことを書きます。
マクロ名は、任意のもので大丈夫です。
(一部使えないものもあります。)
ここでは、testという名前にします。
その準備をしましょう。
「Sub」と最初を大文字にしなくても大丈夫です。
Excelマクロではある程度は、自動で修正してくれます。
(GASはそれほど修正してくれません)
すべて小文字で、「sub test」(subとtestの間には半角スペースを入れる)と打ち、
Enterキーで改行すれば、このようにしかるべきところが大文字になるのです。
PC、IT、プログラミングは、どこまで人がやり、どこからをやってくれるかを見極めるのがポイントになります。
そしてAIやロボットも。
プログラム(Excelマクロ)を書く
実行してほしい操作は、「セルA1に100を入力する」というものにします。
こういう状態にするわけです。
「セルA1に100を入力する」をそれぞれのプログラミング言語に合わせて訳しなければいけません。
Excelマクロの場合は、
Range(”a1″).Value =100
です。
(セルA1はa1でもA1でもかまいません)
プログラムではこの訳が大事なのですが、丸暗記する必要はなく、今ならネットで検索すれば事足りますし、自分がすでにつくったプログラムを流用することもできます。
Range(”a1″).Value =100を打つ場合も、すべて小文字で打って大丈夫です。
Enterキーを押せば、しかるべきところが大文字に変わります。
この大文字に変わったことで、プログラミングが正しかったということにもなるのです。
Excelマクロの実行
ここまでできたら、プログラムを実行してみましょう。
実行はF5です。
(SubとEnd Subの間で押しましょう)
実行後、Excelに切り替えると、このようにセルA1に100が入っています。
これが最初の一歩です。
〇〇=△△のパターンで、
・シートのセルの値を別のシートのセルA25に入れる
・シート「データ」のセルの値を別のファイルのシート「請求書」セルA25に入れる
・これらの操作を100回繰り返す
なんてことができます。
プログラミングを書けば、あとは実行するだけです。
マクロファイルの保存
このファイルを保存するには通常の「Excelブック(xlsx)」ではなく、Excelマクロ有効ブック(Xlsm)」で保存します。
Googleスプレッドシート(GAS)のはじめ方の一歩
一方、GoogleスプレッドシートでのGASを解説していきます。
スクリプトエディタを開く
まず、Googleスプレッドシートを開き、Alt+Shit+T→E(AltとShiftとTを同時押しし、その後にEを押す)でスクリプトエディタを開きましょう。
※Googleスプレッドシートはこちらからアクセスできます。
https://www.google.com/intl/ja_jp/sheets/about/
Googleアカウントが必要です。
スクリプトエディタはこのような画面です。
Excelマクロで、
Sub マクロ名()
End Sub
というものに値する、
function myFunction() {
}
は、もう書かれています。
ここはGASが便利なところです。
この{と}の間に実行してほしいことを書いていきます。
funcitonとは関数、myFunctionは関数名で、任意のものです。
こういった{も1つとして欠けてはいけません。
そもそも何かを依頼するとはそういうことです。
人が人に依頼するときは曖昧すぎます。
小学生よりも、人に仕事を指示・依頼する経営者、幹部職にこそプログラミングが必要だと思うのです。
プログラムを書く
では、「セルA1に100を入力する」を書いてみましょう。
これがGAS(スクリプトエディタ)ではどう訳すべきかを知っていなければいけません。
ここでは、
SpreadsheetApp.getActiveSpreadsheet().getRange('A1').setValue('100');
と書きましょう。
SpreadsheetAppは、Googleスプレッドシート
getActiveSpreadsheet()は、アクティブな(今開いている)シート
getRange(‘A1’)はセルA1
setValue(‘100’)は100という値を入れる
という意味です。
最後の、「;」も必須でこれがないとプログラムは動きません。
GASの
SpreadsheetApp.getActiveSpreadsheet().getRange(‘A1’).setValue(‘100’);
と
Excelマクロの
Range(“A1”).Value =100
を比べると、Excelマクロが圧倒的にシンプルです。
ただ、Excelマクロでは、本来
Application.ActiveWorkbook.ActiveSheet.Range(“A1”).Value =100
と書きます。
SpreadsheetApp.getActiveSpreadsheet().getRange(‘A1’).setValue(‘100’);
と
Application.ActiveWorkbook.ActiveSheet.Range(“A1”).Value =100
だと似たようなものです。
Excelはブック(ファイル)→シート→セルという構成ですので、本来は、どのブックのどのシートのどのセルかを指定しなければいけません。
しかし、Excelマクロでは上位のものを省略できます。
Range(“A1”).Value =100
だと、アクティブなブックのアクティブなシートのセルA1を指すのです。
(これは、他のシートやブックを指定するときに間違えやすいところでもあります)
プログラム(スクリプト)を実行
では、プログラム(スクリプト)を実行します。
実行はCtrl+Rです。
実行すると、こういうエラーが出ます。
保存しておきましょう。
(先に保存しても大丈夫です。)
保存して実行すると、またまた警告が。
[許可を確認]をクリックしましょう。
新しいスクリプトを書くと毎回出ますがしかたありません。
Googleスプレッドシートはちょくちょく変更されるので、なくなる可能性もあるでしょうが。
次の画面では「このアプリは確認されていません」というエラーができます。
左下の[詳細]をクリックし、[〇〇(安全ではないページ)に移動]をクリックしましょう。
ここでGoogleアカウントを選択し、
[許可]をクリックしましょう。
これで、実行できます。
セルA1に無事100が入りました。
警告が出て落ち着かないかもしれませんが、ぜひ試してみていただければ。
昨日は、大分の妻の実家から東京へ。
15時過ぎに戻ってきました。
このタイミングで戻ってくれば飛行機も普通の値段です。
【昨日の1日1新】
※詳細は→「1日1新」
大分 トキハ砂遊び場
ジャガビー ゆず明太子
大分空港ラウンジ
【昨日の娘日記】
大分空港に行く前に、百貨店の砂場コーナーへ
白い砂を喜んでいました。
ちょっと目に入ったりしましたが。
空港まではぐっすり。機内は大暴れでした。
歩きたがるのがネックです。
■著書
『税理士のためのプログラミング -ChatGPTで知識ゼロから始める本-』
『すべてをがんばりすぎなくてもいい!顧問先の満足度を高める税理士業務の見極め方』
ひとり税理士のギモンに答える128問128答
【インボイス対応版】ひとり社長の経理の基本
「繁忙期」でもやりたいことを諦めない! 税理士のための業務効率化マニュアル
ひとり税理士の自宅仕事術
リモート経理完全マニュアル――小さな会社にお金を残す87のノウハウ
ひとり税理士のセーフティネットとリスクマネジメント
税理士のためのRPA入門~一歩踏み出せば変えられる!業務効率化の方法~
やってはいけないExcel――「やってはいけない」がわかると「Excelの正解」がわかる
AI時代のひとり税理士
新版 そのまま使える 経理&会計のためのExcel入門
フリーランスとひとり社長のための 経理をエクセルでトコトン楽にする本
新版 ひとり社長の経理の基本
『ひとり税理士の仕事術』
『フリーランスのための一生仕事に困らない本』
【監修】十人十色の「ひとり税理士」という生き方