2021.05.15Excelセミナーレポート 5月15日「ExcelマクロVBAセミナー初級編」開催レポート こんにちは、サブ講師の鹿島です。本日は約1ヵ月ぶりの「ExcelマクロVBAセミナー初級編」開催でした。 本日は直前の日程変更ご希望もあり8名様での開催でした。 新しく作成したショートカット一覧壁紙を設定したPCでお出迎え。 さて、受講者さまからとあるご質問をいただきました。「VBEの改行記号( _)の後ろにコメントって書けますか?」 とっても良い質問ですね。 答えは、「書けません(コンパイルエラーが出ます)」となりますが、このご質問をいただいて、VBAを書き始めた時に自分が少し勘違いして覚えていたことや疑問に思ったこともあったなぁ、と思い出しましたので、本日はご紹介したいと思います。 ※どれも記述をする上で大きな問題ではないので、調べるほどでもなく、何となく別の方法で解決したからいいや、と流せるようなものばかりです。 VBEの記号の話と初心者の勘違い(実体験) ◆VBEで文を改行する「 _」(スペース アンダーバー) VBEでは、それぞれのコード(命令文)は1行で書きます。 一文を長くつなげてしまうと可読性が落ちてしまいますので改行記号を使って、適宜改行します。 この改行記号ですが、私は当初「 _(スペース アンダーバー)で改行できる」→「改行しても良い」というニュアンスで覚えてしまっていました。 VBEでは1行書く毎に、予約語(For、If、Cellsなど)の先頭が大文字になったり、=や/などの演算子の間にスペースが入ったりします。「 _」で改行した文章を書いているときに、「あれ?ここは大文字にならないのかな?」と思いました。(その後のコードを完成させて確定させるともちろん大文字になります) 先ほどの「改行しても良い」というちょっと間違ったニュアンスがこのような疑問を起こさせたのですね。 「 _(スペース アンダーバー)は、次の行と強制的につなげる記号」→「 _でつないだ文を1行分とする」 こう理解すると、行の途中でカーソルを動かしても、予約語が大文字にならないし、行の途中にコメントを書くこともできない、ということがすんなりと腹落ちするのではないでしょうか? ◆改行記号の逆、1行に複数の命令文を書く記号「:」(コロン) 先ほど「それぞれのコード(命令文)は1行で書きます」とご紹介しましたが「:」を使えば、1行に複数を書くこともできます。 ですが、こちらは個人的にはあまりおすすめしません。やっぱり1行ずつの処理の方が見やすくメンテナンスがしやすいかと思います。 私がほぼ唯一(?)「:」をつかって処理を書くのは、このように複数シートを使って、それぞれ変数に入れるときです。何となく、すっきりして見やすいと思いませんか?(主観です) ◆ (半角スペース)も記号です。プロシージャのタイトルを書く時の決まりで、・1文字目に数字は使えません・使える記号は「_」(アンダーバー)のみですというものがあります。 なんとなく、記号というと,.!"#$&などなどを想像してしまってついうっかり「 」(スペース)をタイトルに使おうとしてエラー(字が赤く)なってしまった経験はないでしょうか? スペースを削除するか、「_」に変えればよいだけのことなので、大した事ではないのですが、スペースも記号なのです。 今日は、私の勘違い談コラムをご紹介しました。意外と受講者さまからも、このような小さな「なんで?」をセミナー中にご質問いただくことも多くあります。 調べるほどでもなく、わざわざ改めて人に質問するほどでもない疑問、あらためて説明しよう(書こう)とすると質問しづらいことなどは、マクロを書いていると出てきたりするものです。 そういうことを、マクロを実際に書きながら講師に気軽に質問できるというのはやはり対面のセミナーだからこその醍醐味ですね。 次回のマクロセミナーは、6月5日(土) !手厚いサポート付きでお待ちしております!! 合わせて読みたい [関連記事]