マクロとVBA。VBAを読み解くためのヒント

Excelマクロを使うためにはVBAという言語を学ばなければいけません。
読み書きができなければいけないのです。
Macro

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日間でした。
企画してくれた仲間、暑い中一緒にトレーニングできた仲間に感謝です(^。^)




■スポンサードリンク


■ブログEX-ITの購読 →feedlyを使って無料で読む
→Twtterで読む
Facebookで読む

1日1新 Instagram
井ノ上陽一のVALU
■著書
ひとり税理士のIT仕事術―ITに強くなれば、ひとり税理士の真価を発揮できる!!
フリーランスとひとり社長のための 経理をエクセルでトコトン楽にする本
新版 ひとり社長の経理の基本
毎日定時で帰っても給料が上がる時間のつかい方をお金のプロに聞いてみた!
『ひとり税理士の仕事術』
『フリーランスのための一生仕事に困らない本』
『社長!「経理」がわからないと、あなたの会社潰れますよ』
『そのまま使える経理&会計のためのExcel入門』