和風スパゲティのレシピ

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

キャメルケースとパスカルケースの違い

変数・関数などの名づけ方の種類(ルール)である、
キャメルケースとパスカルケースの違いを説明します。

同じところ

どちらも「単語の区切りをわかりやすくするためのルール」であり、
どちらも「各単語の頭文字を大文字にする」ことで単語の区切りを表現します。

違うところ

先頭の単語の頭文字を大文字にするかどうかが違います。

  • camelCaseと、先頭の単語は小文字で始めるのがキャメルケース
  • PascalCaseと、先頭の単語も大文字で始めるのがパスカルケース

です。

どちらも、2単語目以降は頭文字を大文字にします。


なお、前者をローワーキャメルケース(lowerCamelCase)、
後者をアッパーキャメルケース(UpperCamelCase)と呼ぶこともあり、
この場合、キャメルケースはこの両方を指します。


単にキャメルケースといった場合はどちらを指しているか考える必要がありますが、
パスカルケースが一緒に出てきた場合は、キャメルケースはほぼ間違いなく、
狭義のローワーキャメルケースを指すと思います。

使い分け

とりあえず、開発チームとかでルールがある場合はそれに従います。

なければ、書いているプログラミング言語の文化を踏まえつつ、
自分なりに使い分ければOKです。

  • クラス・構造体など、親っぽいもの、大きい気がするものはPascalCase
  • 関数・変数など、子っぽいもの、小さい気がするものはcamelCase

みたいに使い分けるのが比較的メジャーなようです。


ExcelVBAの文化はというと、
みんなみようみまねで好き勝手やるのが文化みたいな言語ですが、
クラスがあまり登場しない言語であるため、↑よりちょっとスケールを小さくして、

  • 関数はPascalCase
  • 変数はcamelCase

  • Public変数・関数はPascalCase
  • Private変数・関数はcamelCase

などで使い分けている人が多いように思います。


とりあえず「統一感がある」のが大事ですので、
「よくわからんまま混在」みたいになってなければOKだと思います。


ちなみに、もう一つのメジャーな単語区切りケースとして、

  • snake_caseと、各単語をアンダーバーで区切るスネークケース
  • (SNAKE_CASEと、各単語を大文字にしたアッパースネークケース)

があります。

第3の記法として、「定数」などを見分けたいときに登場することがありますので、
余裕がある方はこちらも覚えてしまってください。

おまけ:マイルール

私の命名規則はどうしているかというと、そもそも日本語変数をメインに使っているため、そんなに厳格に決めていません。

半角スペースがないと単語の区切りが分からないような言語と違って、
助詞てにをわを省略しなければ、漢字と漢字の間はひらがなが区切ってくれますので。


という冗談はさておき、「ws集計表」のように、
英語接頭詞+日本語名での命名は多用します。


↓こんな感じで選択肢から入力できると楽ですからね。

ハンガリアン入力候補


この英字を接頭する命名(アプリケーションハンガリン記法と呼びます)を用いた上で、

  • 変数・クラスのメソッド/プロパティはcamelケース
  • クラス・Public関数・定数はPascalケース

と使い分けることが多いです。


2単語目の頭文字が英語ではない日本語変数で、
camelケースがキャメルケースなのかは知りませんけど(笑)


なお、英語変数を使う場面はどういうルールでやっているかというと、
それはほとんど「他の人が英語で書いたコードの修正や追加」する場面です。

その時は、その人のルールを読み取って、それに合わせるように書いています。