文字追加マクロ
Sub addString_Exe(n As Integer)
'各セルの前後に文字を追加する
Dim msg As String
Dim strForward As String
Dim strBack As String
msg = "まず前方" & n & "文字目に追加する文字を入力して下さい。空欄でも構いません。"
'Application.InputBoxのType
'0:数式
'1:数値
'2:文字列
'8:セル参照
strForward = Application.InputBox(msg, Title:="前方追加文字列", Type:=2)
'文字形式(Type:=2)のInputBoxでは、キャンセルが押されたとき「False」という文字が返される。
'StrConvのvbLowerCaseを用いて全て小文字に変換する。
If StrConv(strForward, vbLowerCase) = "false" Then Exit Sub
msg = "次に、後方に追加する文字を入力して下さい。空欄でも構いません。"
msg = msg & vbCrLf & "後方追加文字列: " & strForward
strBack = Application.InputBox(msg, Title:="後方追加文字列", Type:=2)
If StrConv(strBack, vbLowerCase) = "false" Then Exit Sub
On Error Resume Next
Dim eachRng As Range
Application.ScreenUpdating=False'描画省略
'選択範囲の各セルの数式について、n文字めに前方追加文字列を追加
'また、後方追加文字列を追加。
For Each eachRng In Selection
eachRng.Formula = Left(eachRng.Formula, n) & strForward & Mid(eachRng.Formula, n + 1) & strBack
Next eachRng
End Sub
Sub addStringForwardAndBack()
'単純に各セルの前後に文字を追加する
Call addString_Exe(0)
End Sub
Sub addStringForwardAndBack01()
'1文字(主に、 「=」 文字を想定)あけた後に、各セルの前後に文字を追加する
Call addString_Exe(1)
End Sub