VBAでケバブ・スネーク・パスカル・キャメル変換

vba

開発の現場では、Excelに定義したクラスやテーブル等の設計内容に基づいて、VBAで自動的にソースコードやSQL文等の成果物を生成したい場合があります。この処理を実装する場合、Excel上の項目名を、成果物の項目で使用されている命名規則に合わせて変換する機能が必要となります。
ここでは、命名規則に合わせて項目名を変換するためのサンプルを説明します。

概要

  • ケバブケースから、スネークケース、パスカルケース、キャメルケース間で識別名を変換するサンプルです。
  • 例えば、スネークケースからケバブケースに変換する場合は、Snake2Kebab関数を使用します。
  • 各変換関数は「命名規則に基づいて文字列を複数の単語に分割する関数」(XXX2Words関数)、「分割された単語を命名規則に基づいて変換する関数」(Words2XXX関数)という2つの関数を組み合わせて変換しています。
  • どちらの関数も、単語分割の区切り文字として半角空白を使用しています。例えば、”snakeToKebab”をケバブに変換する場合、Snake2Kebab関数では、Snake2Words関数とWords2Kebab関数を実行しています。
    Snake2Words関数で単語の区切りに空白を挿入して”snake To Kebab”を生成します。Words2Kebabでは、半角空白を”-“に置換(かつ小文字化)して”snake-to-kebab”を生成します。
  • 拡張性を持たせるために、このような作りになっています。もっと特定用途のために単純に実現することもできると思います。例えば、ケバブケースからスネークケースに変換するような場合、Replace(kebab, "-", "_")等で変換できます。
  • 元々は、”getHTTPClient”を”GetHttpClient”のように、大文字が連続する略語を含むキャメルケースをパスカルケースに変換するのが単純にできなくて作ったサンプルです。

サンプルコード