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

Pocket

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

序文

はい。

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

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

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

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

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

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

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

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

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

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

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

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

ハンガリアンとは

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

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

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

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

そこで、

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

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

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

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

    Dim strgMoji1 As String
    Dim intSmallSuuchi2 As Integer
    Dim lngSuuchi3 As Long
    Dim bolRonrichi4 As Boolean
    Dim rngRange5 As Range

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

システムハンガリアン記法は時代遅れ?

==== 2019/5/5 追記 ====

なお、ハンガリアンにはアプリケーションハンガリアンと、システムハンガリアンの2種類があります。

システムハンガリアンとは、今回解説している、データの型(int、lng、bol、strgなど)を変数名の頭につけるハンガリアン記法です。

アプリケーションハンガリアンとは、変数の持つ実際の意味(cat、dog、animal、taiyaki)などを変数名の頭につけるハンガリアン記法です。

本来、シモニーの考案したハンガリアン記法とは、変数の意味や使用目的から接頭辞を決定することであり、型では区別できない情報を変数名に付与することで、紛らわしい変数の意味を明白にし混同をさけるためのものであった。たとえば、論理座標とデバイス座標、X軸とY軸、ドルと円などで、これらは単純に型による安全性に頼ることはできない。

↑にもあるように、型によるハンガリアン記法(システムハンガリアン記法)は、少し時代遅れの使い方のようです。

どちらの記法を使用するかは、皆さんの自由ですので、ぜひ、使いやすい記法をご使用ください。

ぶれいす(@bleis)さん!ご指摘、ありがとうございました!(^_^)/

=======================

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

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

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

Private Sub code()
    Dim strg文字列 As String
    Dim int小さい数値 As Integer
    Dim lng普通の数値 As Long
    Dim bol論理値 As Boolean
    Dim rngセル範囲1 As Range
    Dim rngセル範囲2 As Range
End Sub

注意して頂きたいのは、これらの変数をコード補完する際は、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言語の独学時の経験がベースとなって、学習曲線が良いカーブを描いていました。 情報工学科を出ていなくても、独学でエンジニアは育つことができると思います! このブログで皆さんがプログラミングに興味を持たれるのを心待ちにしています! 頑張って覚えられてください!よろしくお願いします。 趣味は読書で、小宮一慶さんや松下幸之助さんなど著名人の本を読んでいる他、赤川次郎さんの三毛猫ホームズシリーズ司馬遼太郎吉川英治さんの三国志などが好きです。