|
ようやく猛暑も一段落している今日この頃です。
いつもお世話になります。
さっそくですが、以下のようなワードのマクロを作成するにはどのようにしたらよいでしょうか。
「◎」を検索し、その行に「見出し1」を設定する。(◎は文書中複数存在する)
以下のように、「マクロの記録」と「loop」を使って作ってみましたが、◎を検索したところで、作業が終わってしまいます。つらつら思うに、◎は見出し設定後も常に存在しつづけるので、true or faulse で判断するやり方ではだめでしょうか。
よい方法があればご指導ください。
よろしくお願いします。
以下、試しに作成したマクロ
Sub マクロ試作()
ここは蛇足です。
'EEEEを削除する
Dim tf As Boolean 'ブール型
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
With Selection.Find
.Text = "EEEE"
.Replacement.Text = "^x"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
'繰り返すのはここから
tf = .Execute '検索実行:成功したらTRUE
Do While tf = True 'tf = True 間、Do〜Loop間を繰り返す
Selection.MoveDown Unit:=wdLine, Count:=2, Extend:=wdExtend
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1
'次を実行
tf = .Execute
Loop
'========================
End With
'[BoxNo]を削除する
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
With Selection.Find
.Text = "[BoxNo]"
.Replacement.Text = "^x"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchFuzzy = False
.MatchWildcards = True
'繰り返すのはここから
tf = .Execute '検索実行:成功したらTRUE
Do While tf = True 'tf = True 間、Do〜Loop間を繰り返す
Selection.HomeKey Unit:=wdLine
Selection.MoveDown Unit:=wdLine, Count:=5, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1
'次を実行
tf = .Execute
Loop
'========================
End With
ここからが見出しの設定です。
'見出し1を設定する
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
With Selection.Find
.Text = "◎"
.Replacement.Text = "^x"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchFuzzy = False
.MatchWildcards = True
'繰り返すのはここから
tf = .Execute '検索実行:成功したらTRUE
Do While tf = True 'tf = True 間、Do〜Loop間を繰り返す
Selection.Style = ActiveDocument.Styles("見出し 1")
'次を実行
tf = .Execute
Loop
'========================
End With
End Sub
|
|