ハンガリアン記法

マイクロソフトのアプリケーション開発グループで開発された記法。アプリケーション ハンガリアンとシステム ハンガリアンがあり、おおくの場合「システム ハンガリアン」を指す。

アプリケーション ハンガリアンは、間違えたコードを間違えて見えるようにする記法

ExcelVBAとかの貧弱なIDEを使うときは(その変数の方が瞬時にわからないため)有用かと思います。が、Wikipediaに紹介されているような『たとえば、論理座標にRelative Positionのrp、絶対座標にAbsolute Positionのapというプレフィックス』を『relativePosition、absolutePosition』としてもハンガリアン記法というのか気になりました。

ExcelVBA

はじめて間もない頃はオブジェクト型への代入に戸惑っていました。

Dim foo as Object
Dim bar as String

foo = "foo" ' ←エラーになる
bar = "bar" '

foo = ActiveWorkbook.Worksheets(1) '
bar = ActiveWorkbook.Worksheets(1) ' ←エラーになる

foo がオブジェクト型であることを変数を見てわかるようにするためプレフィックスとして「obj」をつけることにしました。

Dim obj as Object
obj = "foo" ' オブジェクト型に Let は間違い
Set obj = ActiveWookbook.Worksheets(1)

次にWorkbookだと変数名でわかるようにするため、プレフィックスに「book」をつけることにしてみます。プレフィックスが重複してしまい混乱しそうなので「obj」はサフィックスにすることにしました。ほかに配列をあらわす「Ary」を使おうと思います。

Dim bookObj as Workbook ' ←こちらを採用
Dim objBook as Workbook ' 

参考文献

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣 p110.コードで伝える