Microsoft WordのVBAマクロで、文書内に存在する全テキスト枠内の置換(スタイル、フォント情報も含む)するマクロを探しています。自作モノも可です。自作モノはソース添付お願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2003/10/24 15:11:50
  • 終了:--

回答(2件)

id:ohmix1 No.1

ohmix1回答回数235ベストアンサー獲得回数142003/10/24 17:11:34

ポイント30pt

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

id:takasiym

全く違います。

文書内に存在する全テキストボックス内の文字列置換、スタイル・フォント置換を行うVBAマクロを探しています。

「文書内のテキストボックスをだいたい同じにする」などとは、一言も言っておりません。

2003/10/24 19:54:41
id:ohmix1 No.2

ohmix1回答回数235ベストアンサー獲得回数142003/10/24 22:10:54

ポイント30pt

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

id:takasiym

三回目の回答で明確な回答が得られましたので、ポイント差し上げます。

ありがとうございました。

2003/10/28 14:45:43

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません