VBAで図形内の文字を置換する
図形(オートシェイプ)内のテキストを置換するマクロです。
検索対象の文字列をB1セルに入力し、置換後の文字列をB2セルに入力し、マクロを実行すると、図形内の文字列が変換されます。
'Option Explicitステートメントは、モジュールの中で使用すると
'そのモジュールでは変数を宣言しないとマクロが動かなくなる。
'Option Explicitを使うことで、変数入力ミス時にどこの変数が入力ミスしているか黄色ハイライトで教えてくれる
Option Explicit
Sub TextReplacementForShapes()
Dim TargetWorkSheet As Worksheet '置換対象のシート
Dim TargetShape As Shape '置換対象の図形
Dim TargetText As String '置換対象のテキスト
Dim SearchText As String '検索するテキスト
SearchText = Range("B1")
Dim ReplaceText As String '置換後のテキスト
ReplaceText = Range("B2")
Set TargetWorkSheet = Application.ActiveSheet 'アクティブシートを置換対象シートの変数に格納
'図形のテキストを置換
'For Eachでブック内の全てのオブジェクトを対象に処理する
'For Each構文
' For Each オブジェクト変数 In オブジェクト
' 繰り返し処理
' Next オブジェクト変数
For Each TargetShape In TargetWorkSheet.Shapes
If TargetShape.TextFrame2.HasText Then 'テキストがある場合、以下の処理を実行
TargetText = TargetShape.TextFrame.Characters.Text
TargetShape.TextFrame.Characters.Text = Replace(TargetText, SearchText, ReplaceText) 'Replace(置換対象の文字列, 検索する文字列, 置換後の文字列)
End If
Next TargetShape
Set TargetWorkSheet = Nothing
End Sub
Author And Source
この問題について(VBAで図形内の文字を置換する), 我々は、より多くの情報をここで見つけました https://qiita.com/harufuji/items/4d239946423210202c9f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .