Excelマクロを使うためにはVBAという言語を学ばなければいけません。
読み書きができなければいけないのです。
VBAは英語
マクロ(Excelに限らずWord、PowerPointにもあります)を使うには、VBA(Visual Basic Application)という言語を知っていなければいけません。
言葉の定義を整理すると、
・マクロ
プログラムを書いて、Excelに特定の操作をしてもらう機能。
・VBA
マクロという機能を使うための言語
となります。
日本人に仕事を依頼するとき、日本語を使う、アメリカ人に仕事を依頼するときに英語を使う
↓
Excelに仕事を依頼するとき、VBAを使う
という感じです。
アメリカ人に仕事を依頼するときに、日本語しか使えなければ依頼できません。
Excelに特定の操作を依頼するときには、VBAの知識が必要なのです。
マクロとVBAは、それほど明確に使い分けられているわけではありません。
セミナーでも、「マクロセミナー」、「VBAセミナー」、ときにはマクロVBAセミナーという使い方もされます。
(私は、「マクロセミナー」にしています)
VBAを使った場合、たとえば、次のようなプログラムを書きます。
**********************
Sub sheetmerge()
Dim w As Worksheet
For Each w In Worksheets
If w.Name < > “merge” Then
Dim Cmax As Long
Cmax = w.Range(“a” & Rows.count).End(xlUp).Row
Dim Cmax2 As Long
Cmax2 = Worksheets(“merge”).Range(“a” & Rows.count).End(xlUp).Row
w.Rows(“1:” & Cmax).Copy Worksheets(“merge”).Range(“a” & Cmax2 + 1)
End If
Next
End Sub
*********************
日本で開発されたものではないので当然英語です。
英語ができれば、VBAが読めるわけでもなく、英語ができなくてもVBAは読めます。
読み解くためのヒント
VBAを読み解くために、次のようなことを覚えておくと便利です。
1 SubとEnd Sub
多くのVBAは、SubとEnd Subではさまれています。
指示がSubで始まり、End Subで終わるのです。
2 マクロ(プログラム)名は自由に決められる
Subの後にマクロ(プログラム)名を書きます。
これは自由に決められます。
日本語でも、英語でも、ローマ字でも大丈夫です。
事例では、Sheetmergeとつけました。
シートを結合するという意味です。
これを
シート集計
や
シート結合
とつけてもかまいません。
私はアルファベットかローマ字表示でつけるようにしています。
3 変数を使う
プログラムでは変数というものを使います。
たとえば、1月から12月の処理をするときに、
1月分を○○して
2月分を○○して
・
・
・
12月分を○○して
というように12回プログラムを書くのはめんどくさいです。
そこで、
△月分を○○して
というプログラムだけ書き、△に1から12を入れるようにします。
こうすれば、プログラムを書く手間が減り、改善もしやすくなります。
この△が変数です。
実際には、アルファベット、ローマ字、日本語で書きます。
月だったら、
「m」、「month」、「月」などの変数を使うことが多いでしょう。
事例では、「w」という変数を使っています。
これは、ワークシートを表すものです。
私は、アルファベットで「w」という変数を使いますが、人によっては、「Ws」、「ワークシート」「hennsuu」などとつけることもあるでしょう。
この変数の使い方は、人によってかなりの差があります。
他人が書いたプログラムが読みにくいのは、この変数の違和感も原因の1つです。
4 文法がある
英語で、「これはペンです」というときには、「This is a pen」と書きます。
この書き方を守らないといけません。「pen」と書いて通じるときもあるでしょう。
VBAでは決められた文法(ルール)を絶対に守らなければいけません。
この文法を知っていないと、VBAを読めないですし、書けません。
1つずつ覚えるか、ネットで検索していくしかないのです。
5 サンドイッチして処理する
VBAでは、SubとEnd Subのように、特定の部分をサンドイッチ(はさみこむ)して、処理をすることも多いです。
事例では、次のようなものがあります。
・For EachとNext
For Each w In Worksheets
○○○
Next
すべてのワークシートに対して、○○○の処理を行います。
・IfとEnd If
If
○○○
End If
もし〜だったら、○○○の処理を行います。
以上のようなしくみをしっておけば、VBAを読みやすくなります。
「読む」と「書く」
文章でも、本でも、言語でも、「読む」と「書く」は相乗効果があります。
特に自分で「書く」というのは書かせません。
私もブログや本を書くようになってから、多くのことを学びました。
VBAもやはり自分で書いてこそ身に付くものです。
他人の書いたVBAや本をいくら読んでもなかなか身に付かないでしょう。
もし、「マクロを使ってみたい」という方は、今週土曜日のセミナーもご利用ください。
「ちょっと難しいかも・・・」と不安な方は、入門セミナーだけの受講もできます。
7/20(土)Excelマクロ入門セミナー
7/20(土)Excelマクロ初級セミナー
昨日は、熱海トライアスロン合宿3日目。
朝、熱海の宿を出て、バイク(自転車)で105km。
品川付近まで戻ってきました。
私は自宅が遠いので、そこから輪行(自転車をバッグに入れて電車)。
充実した3日間でした。
企画してくれた仲間、暑い中一緒にトレーニングできた仲間に感謝です(^。^)
■著書
『税理士のためのプログラミング -ChatGPTで知識ゼロから始める本-』
『すべてをがんばりすぎなくてもいい!顧問先の満足度を高める税理士業務の見極め方』
ひとり税理士のギモンに答える128問128答
【インボイス対応版】ひとり社長の経理の基本
「繁忙期」でもやりたいことを諦めない! 税理士のための業務効率化マニュアル
ひとり税理士の自宅仕事術
リモート経理完全マニュアル――小さな会社にお金を残す87のノウハウ
ひとり税理士のセーフティネットとリスクマネジメント
税理士のためのRPA入門~一歩踏み出せば変えられる!業務効率化の方法~
やってはいけないExcel――「やってはいけない」がわかると「Excelの正解」がわかる
AI時代のひとり税理士
新版 そのまま使える 経理&会計のためのExcel入門
フリーランスとひとり社長のための 経理をエクセルでトコトン楽にする本
新版 ひとり社長の経理の基本
『ひとり税理士の仕事術』
『フリーランスのための一生仕事に困らない本』
【監修】十人十色の「ひとり税理士」という生き方