人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: takasiym
●カテゴリ:コンピュータ
✍キーワード:Microsoft VBA Word スタイル ソース
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ohmix1
●30ポイント

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

◎質問者からの返答

全く違います。

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

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


2 ● ohmix1
●30ポイント

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

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ