はじめに
文字を連結するエクセルマクロを作成しました。エクセル関数でも単純なものならいいのですが、複雑な場合よく分からなくなるのでその時用です。
先頭文字を大文字にして返却する関数も途中で入れています。
エクセル標準の「PROPER」関数は英字の先頭を大文字にしますが、2文字目以降を小文字に変換してしまうので使用しませんでした。
ソース
MojiRenketu.txt
Sub MojiRenketu()
Dim kansei As String: kansei = "" '完成形
Dim outCount As Long: outCount = 0 '出力数
Dim rowCount As Long: rowCount = 0 '列数
'出力数カウント
Do
'// セル値が未設定の場合
If Cells(outCount + 1, 1).Value = "" Then
'// ループを抜ける
Exit Do
End If
'// ループカウンタを加算
outCount = outCount + 1
Loop
'列数カウント
Do
'// セル値が未設定の場合
If Cells(3, rowCount + 1).Value = "" Then
'// ループを抜ける
Exit Do
End If
'// ループカウンタを加算
rowCount = rowCount + 1
Loop
For i = 1 To outCount
kansei = ""
kansei = kansei & "最初の文字/"
kansei = kansei & Cells(i, 1).Value
kansei = kansei & "/AB間/"
kansei = kansei & oomoji(Cells(i, 2).Value)
kansei = kansei & "/BC間/"
kansei = kansei & oomoji(Cells(i, 3).Value)
kansei = kansei & "/最後の文字"
'完成形を出力
Cells(i, rowCount + 1).Value = kansei
Next i
End Sub
'先頭文字を大文字にして返却する
Function oomoji(ByVal moji As String) As String
oomoji = UCase(Left(moji, 1)) & Mid(moji, 2)
End Function
使い方
連結したい文字を入力する。連結前後に入れたい文字列はソースを直接いじって入れる。
マクロを実行すると、最後の列の次の列(この例だとD列)に連結された文字列が生成されます。ローマ字は先頭のみ大文字になります。