変数名の命名ルール として ハンガリアンをうまく使おう

Pocket

変数名の命名ルール として ハンガリアンをうまく使おう
変数名の命名ルールとして ハンガリアンをうまく使おう

序文

はい。

皆さんこんにちは。にこにこプログラマーのKaBAです。

今日も一日、お役立ち情報をお届けします。

何かの際に皆さんのお役に立てたら幸いです。

今日は、変数名の付け方のルールについてお話しします。

皆さんは、変数名を付けるとき、どのようにされていますか?

アルファベットで、ローマ字ですか?

それともアルファベットで英単語ですか?すごいですね。KaBAは中学か高校くらいの英語しかできないので、尊敬です。(^-^)

VBAは変数名やサブルーチン名に日本語を使用することができます。

しかし、コード補完機能を使う際に、日本語だといちいち「半角/全角」キーを押してから、日本語を入力し、CTRL+スペースキーを押して補完する、という、大変めんどくさい方法を取るしかないため、おっくうになり、やがてこの方法は使わなくなりがちです。

しかし、この日本語で変数名をつけ、かつ、コード補完を簡単に行う方法があります。

それが「ハンガリアン命名ルール」です。

以降の章で、「ハンガリアン」について詳しく紹介していきます。

ハンガリアンとは

ハンガリアン」とは、プロのプログラマーの業界で有名な、コーディングルール(プログラムを書く際の書き方のルール)です。

皆さん、プログラミングされる際、変数の「」を意識されますよね?

「型」とは、Integerとか、StringとかRangeなど、変数に入れることのデータの種類のことです。

しかし、変数名を適当につけていると、その変数の型がわからず、数値や文字列セル範囲など、どの値を入れたらよいか、一瞬では見分けられません。

そこで、

  • 変数名の接頭辞(先頭の文字)に型名を入れ込んでおいて、変数名を見ただけでどの型の変数かわかるようにしよう!

というアイデアを出した人がいました。

例えば、以下のようなコードになります。

変数の型と、変数名の先頭の3文字か4文字に注目してください。

変数名の先頭を見れば、どの型か一目で判別できますね!

ハンガリアンを利用し、コード補完を便利にする

ここでハンガリアン日本語の変数名に使うとどのような感じになるのでしょうか。

以下、ハンガリアンを使った日本語の変数名のコードを紹介します。

注意して頂きたいのは、これらの変数をコード補完する際は、strgintlngrngと英数字を入力してから、CTRL+スペースを押せばよいということです。

(strgだけは、strとすると補完候補がたくさん出過ぎるので、strgとします)

いちいち「半角/全角」キーを押下して、日本語を入力する必要がありません。

rng」まで打ち込んでCTRL+スペースを押し、コード補完させた時の様子は以下の通りです。

ハンガリアンを使った日本語偏す名のコード補完
ハンガリアンを使った日本語偏す名のコード補完

後は、目的の変数名を選択して「TAB」を押下するだけですね。(^-^)

まとめ

皆さん、お疲れ様でした。

ここまで読んでいただいて、ありがとうございました。

ハンガリアンはもともと、C言語やC++C#などで使用される変数名の書き方の規則(コーディーングルール)の一つでした。

そして、ハンガリアンはVBAでも使用可能です。

また、ハンガリアンと日本語の変数名を使うと、

  • コード補完しやすい
  • 型が何なのかすぐわかる
  • 変数名が日本語なので、意味が分かりやすい

などのメリットがありました。

皆さんも、日本語VBAや普通のVBAでも、ハンガリアンをうまく使われてみてくだい。

それではー またー (^_^)

 

The following two tabs change content below.
KaBA@フリーランス修行中

KaBA@フリーランス修行中

こんにちは!IT業界で勤めて17年くらい務めています。プログラミング大好きやろーです。 自分も独学でC言語を覚えIT会社に就職しました。その後紆余曲折を経て、VB6.0、VBA、Perl、C#、HTML、CSS、JavaScript、PHPなどを覚えていきました。全部C言語の独学時の経験がベースとなって、学習曲線が良いカーブを描いていました。 情報工学科を出ていなくても、独学でエンジニアは育つことができると思います! このブログで皆さんがプログラミングに興味を持たれるのを心待ちにしています! 頑張って覚えられてください!よろしくお願いします。 趣味は読書で、小宮一慶さんや松下幸之助さんなど著名人の本を読んでいる他、赤川次郎の三毛猫ホームズシリーズや司馬遼太郎の三国志などが好きです。