http://www.hatena.ne.jp/1066371110
Microsoft WordのVBAマクロで、文書内に存在する全テキスト枠内の置換(スタイル、フォント情報も含む)するマクロを探しています。自作モノも可です。自作モノはソース添.. - 人力検索はてな
URLはダミーです。
完璧ではありませんが、以下のマクロで文書内のテキストボックスをだいたい同じにすることができます。(要望とまったく違いますか?)
’---------------------------
Sub MirrorTextBox()
’
’ 文書内すべてのテキストボックスを
’ 現在選択しているテキストボックスと同じ内容、フォントにします。
’
If Selection.Type <> wdSelectionShape Then
MsgBox ”テキストボックスを選択してください。”
Exit Sub
End If
If Selection.ShapeRange.Type <> msoTextBox Then
MsgBox ”テキストボックスを選択してください。”
Exit Sub
End If
For Each i In ActiveDocument.Shapes ’ すべてのシェープを検索
If i.Type = msoTextBox Then ’ テキストボックスのみ
With Selection.ShapeRange ’選択しているシェープ
i.TextFrame.TextRange.Text = .TextFrame.TextRange.Text ’ テキスト
i.TextFrame.TextRange.Font.Name = .TextFrame.TextRange.Font.Name ’ フォント名
i.TextFrame.TextRange.Font.Size = .TextFrame.TextRange.Font.Size ’ フォントサイズ
i.TextFrame.TextRange.Font.Color = .TextFrame.TextRange.Font.Color ’ 色
i.TextFrame.TextRange.Font.Bold = .TextFrame.TextRange.Font.Bold ’ 太字
i.TextFrame.TextRange.Font.Italic = .TextFrame.TextRange.Font.Italic ’ 斜体
’ 塗りつぶしのスタイル関連
i.Fill.Visible = .Fill.Visible
i.Fill.ForeColor = .Fill.ForeColor
’ 線のスタイル関連
i.Line.ForeColor = .Line.ForeColor
i.Line.Weight = .Line.Weight
i.Line.DashStyle = .Line.DashStyle
i.Line.Style = .Line.Style
i.Line.Transparency = .Line.Transparency
i.Line.Visible = .Line.Visible
End With
MsgBox i.Name & ”を置き換えました。” ’ 対象のテキストボックス
End If
Next
End Sub
http://www.hatena.ne.jp/1066371110#
Microsoft WordのVBAマクロで、文書内に存在する全テキスト枠内の置換(スタイル、フォント情報も含む)するマクロを探しています。自作モノも可です。自作モノはソース添.. - 人力検索はてな
>自作モノも可です。自作モノはソース添付お願いします。
とあったので、ソースが参考になるかと思ったのですが役に立ちませんでしたか。申し訳ございません。
ちなみに、以下は全テキストボックス中の文字列を置き換えるサンプルです。
役に立たないようでしたら、ポイントは不要です。
また、スタイル・フォント情報を置き換えるというイメージが良くわかりませんでしたので、このサンプルでは対応できておりません。
当方、回答権を使い果たしましたのでこれにて。
’---------------------------
Sub ReplaceTextBox()
’
’ 文書内すべてのテキストボックス内の文字”A”を”あ”に置き換えます。
’
For Each i In ActiveDocument.Shapes ’ すべてのシェープを検索
If i.Type = msoTextBox Then ’ テキストボックスのみ
i.TextFrame.TextRange.Find.Execute FindText:=”A”, ReplaceWith:=”あ”, Replace:=wdReplaceAll
MsgBox i.Name & ”を置き換えました。” ’ 対象のテキストボックス
End If
Next
End Sub
三回目の回答で明確な回答が得られましたので、ポイント差し上げます。
ありがとうございました。
全く違います。
文書内に存在する全テキストボックス内の文字列置換、スタイル・フォント置換を行うVBAマクロを探しています。
「文書内のテキストボックスをだいたい同じにする」などとは、一言も言っておりません。