i2i無料WEBパーツ
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Javaのコーディングしていると、DB定義書の物理項目名を見ながらキャメライズされたフィールド名を大量に作成するという作業をしなければならない事がたまにありますわな。

キャメライズ
staff_id → staffId

■デキャメライズ(?)
staffId → staff_id

こんな感じでね。

そんな時にはVBAのマクロが恋しくなるわけですが、ググってみたけど見つけられなかったので自分でつくってみました。
ええ、VBAは素人なので、激しく怪しいですが使えそうでしたら使ってください。

キャメライズしたい列に、アクティブセルを配置しActiveCellCamelizeマクロを実行します。
キャメライズ1
キャメライズされた文字列がテキストボックスに表示されますので、エディタにコピペでもして使ってください。
キャメライズ2

デキャメライズの場合は、ActiveCellDechamelizeを実行します。
デキャメライズ1
出力結果はこんな感じ。
デキャメライズ2

↓ファイルのダウンロードはこちら。
firestorage

以下、キャメライズ、デキャメライズファンクションのソースコードです。


'<機能>
' 文字列をキャメライズして返します。
'<戻り値>
' なし
'<説明>
'
'
'@:kevinjohnsonjp
'URL:http://kevinjohnson2.blog69.fc2.com/
Function camelize(value As String) As String

Dim camelString As String
Dim targetChar As String
Dim underBarFlg As Boolean
underBarFlg = False
'文字列を1文字ずつ取得
For i = 1 To Len(value)
targetChar = Mid(value, i, 1)
If (underBarFlg) Then
camelString = camelString & UCase(targetChar)
underBarFlg = False
GoTo LABEL1
End If
If targetChar = "_" Then
'対象文字がアンダーバー
underBarFlg = True
Else
'対象文字がアンダーバー以外
camelString = camelString & targetChar
End If
LABEL1:
Next

camelize = camelString
End Function


'<機能>
' 文字列をデキャメライズして返します。
'<戻り値>
' なし
'<説明>
'
'@:kevinjohnsonjp
'URL:http://kevinjohnson2.blog69.fc2.com/
Function decamelize(value As String) As String

Dim camelString As String
Dim targetChar As String
'文字列を1文字ずつ取得
For i = 1 To Len(value)
targetChar = Mid(value, i, 1)
If InStr(UPPER_CHAR, targetChar) > 0 Then
'対象文字が大文字
camelString = camelString & "_" & LCase(targetChar)
Else
'対象文字が小文字
camelString = camelString & targetChar
End If
Next

decamelize = camelString
End Function


次は、DB定義書からSQLやエンティティのある程度のコーディングをしてくれる、ユーティリティでもつくろうかな。

コメント

このコメントは管理者の承認待ちです

コメントの投稿

  • URL
  • コメント
  • パスワード
  • 秘密
  • 管理者にだけ表示を許可する

トラックバック

トラックバックURL:http://kevinjohnson2.blog69.fc2.com/tb.php/432-5747ad32
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。