和風スパゲティのレシピ

日本語でコーディングするExcelVBA

変数名に接頭する「my」の意味

変数にmyRngとかmyNumってよく見ますよね。

myRng.SpecialCells(xlCellTypeVisible).Value = myNum

みたいなやつ。

この「my」はどういう意味かというと、
そのまま「自分で作った」とか「自分で使う」という意味です。


変数ですから、当然と言えば当然ですね。


この変数名には役割があり、例えば冒頭のコードでは、

myRng.SpecialCells(xlCellTypeVisible).Value = myNum
  • 「my」があるものは自分で作ったもの、
  • それ以外がMicrosoftが作ったもの

と読み分けやすくしています。


初めて見るプロパティやメソッドでも、「my」がつくことで、
どれが変数でどれが構文かすぐにわかる。

ということですね。




さてここで↓のコードを見てください
 

セル範囲.SpecialCells(xlCellTypeVisible).Value = 入力値

 
どれが変数でどれが構文か、信じられないほど明確ですよね?



変数が私のものであることを示すのにmyなんていらないんですよ。

私の言葉を使えばそれは私のものなんですから。



私がこのブログを立ち上げるにあたった浅い歴史を紐解くと、
私は初心者の時、どれが構文でどれが変数かを見分けるのに非常に苦労しました。


コードを読んでいくときに、遡ってDimをわざわざ探したり、
いちいち構文を説明しているテキストと読み比べたり。


xlCellTypeVisibleが定数なんて分かりませんからね。
このDimも探しに行っちゃうわけですよ。


みなさんもそんな経験ありませんかね?


そして見かけたこんなコード↓

セル範囲.SpecialCells(xlCellTypeVisible).Value = 入力値

に、本当に感動したことを覚えています。



その時はまさかこんなにVBAを勉強し、
解説サイトまで立ち上げるとは思ってもいませんでした。


でも思い返せばあの時の感動が、
このサイトの始まりだったように思います。



実際に書くコードの変数名に日本語を使うかどうかはさておき、
SpecialCellsを初見の人に説明するなら、これがベストなコードだと思います。


日本語っていうのはただ書いただけで「my」の意味を持ちます。

このメリットを享受できるのは、母国語が2バイト文字の民族だけです。
英語を母国語とする方々はおろか、欧州の方々にもできないことです。


そんなサンプルコードをネットの海に垂れ流すために、
今日も私はブログを書きます(`・ω・´)


www.limecode.jp