Excelの置換機能ではテキストボックス内の置換が出来ないので、マクロを作成しました。
単純に置換するとフォントの設定が消えてしまうので、一工夫してあります。
このマクロを使うにはどうしたらいいか、分からない方は下記の記事を参考にして下さい!
マクロ機能説明
- シート内の全テキストオブジェクトにある置換対象文字を置換後文字に置き換えます。
- 置換対象文字と置換後文字は入力ダイアログで指定できます。
- テキストオブジェクトのフォント設定は、保持されます。
Sub テキストボックス置換()
Dim searchWord, changeWord As String
searchWord = InputBox("検索文字")
If searchWord = "" Then
MsgBox "検索文字を指定して下さい"
Exit Sub
End If
changeWord = InputBox("検索文字:" & searchWord & vbCr & "置換文字")
Dim shp As Shape
' シート内の図形オブジェクトに対して処理を実施
For Each shp In ActiveSheet.Shapes
'テキストがないオブジェクト対策
On Error Resume Next
With shp.TextFrame
'1オブジェクト内に複数の置換対象がある場合を考慮
Do While (1)
sIdx = InStr(.Characters.Text, searchWord)
If sIdx = 0 Then
Exit Do
Else
' 置換対象の文字のみ置き換える
.Characters(sIdx, Len(searchWord)).Text = changeWord
End If
Loop
End With
Next
End Sub
実行例
下のサンプルシートにマクロを実行してみます。
マクロを呼び出します。
検索文字と置換文字を指定します。
「AAAA」が「ああああ」が置換されています。フォントの設定も消えていません。
コメント