エクセルにて縦書きと横書きを混在させる(数字だけ横書きなど)方法【かっこだけ横】
Function AddCRLF(MyString As String) As String
Dim Buf, StrPattern, Str, Result As String
Dim i As Long
‘文字列パターン
StrPattern = “[0-9()/]”
‘一文字毎に文字並びを調べる → 改行コードを付加する/しないを判定
Buf = StrConv(MyString, vbNarrow)
For i = 1 To Len(Buf)
If Mid(Buf, i, 1) Like StrPattern And Mid(Buf, i + 1, 1) Like StrPattern Then
Str = Mid(Buf, i, 1)
ElseIf Mid(Buf, i, 1) Like StrPattern And Not (Mid(Buf, i + 1, 1) Like StrPattern) Then
Str = Mid(Buf, i, 1) & vbCrLf
ElseIf Not (Mid(Buf, i, 1) Like StrPattern) Or Mid(Buf, i + 1, 1) Like StrPattern Then
Str = Mid(Buf, i, 1) & vbCrLf
Else
Str = Mid(Buf, i, 1)
End If
Result = Result & Str
Next
‘末尾改行コードの削除
If Right(Result, 1) = vbLf Then
AddCRLF = Left(Result, Len(Result) – 1)
Else
AddCRLF = Result
End If
End Function
Visual Basic Editorを閉じてエクセルのシートに戻ります。
AddCRLF(文字列)と処理することで、文字列で指定した文字列をセル内で改行し、縦書き表示することができます。今回の場合では =AddCRLF(A2) と入力しましょう。