和風スパゲティのレシピ

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

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

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

同じところ

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

違うところ

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

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

です。

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


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


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

使い分け

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

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

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

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


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

  • 関数はPascalCase
  • 変数はcamelCase

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

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


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

おまけ:私の場合

私のルールはというと、そもそも日本語変数使いなので、
そんなに厳格に決めていません。

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


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


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

ハンガリアン入力候補


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

  • 変数・Private関数はcamelCase(先頭を小文字)
  • クラス・Public関数・定数はPascalCase(先頭を大文字)
  • ただし、行と列を表す単語は常に大文字のRとC

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

行列用語を常にRCにしているのは、Cells(○○R○○, △△C△△)などのように、RとCが浮き出て見えると視認しやすいからです。


すごくどうでもいいことですが、2単語目の頭文字が大体漢字な日本語変数において、
ws集計表をcamelCaseと呼んでいいのかはよくわかりません(笑)


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

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