Wordで書式を一括クリアしたいときはないでしょうか。
例えばワードファイルの使いまわしで前の書式が残ってしまい新旧の書式が混在している場合などです。
けど、そんな中で悩むことは、
・Word VBAで複数ファイルの書式を一括でクリアしたいが複雑でどう組めばよいかわからない
ですよね。
今回はそんなお悩みを解決する
Wordで書式をクリアする方法2選とVBAで複数ファイルを書式クリアする方法について
まとめます!
もくじ
Wordで書式を一括クリアするイメージ
Wordで書式を一括クリアするイメージについて説明をします。
置換したい文字列を含むワードファイルをいくつか作成します。
まずは標準機能で単体のファイルの書式をクリアする方法について説明をします。
次にVBAで複数ファイルを開き書式をクリアしていく方法について説明をします。
それでは早速使ってみましょう!
書式をクリアしたい文字を含むサンプルのワードファイルを用意する
書式をクリアしたい文字を含むサンプルのワードファイルを用意しましょう。
標準機能分に1ファイル、
VBA処理用に3ファイル用意しています。
ファイル名は好きなものでOKです。
標準機能で書式をクリアする
まずは標準機能を使い、1ファイルを対象に書式をクリアしていきましょう。
方法その1:すべての書式をクリアをおこなう
テキストからすべての書式設定 (太字、下線、斜体、色、上付き、下付きなど) をクリアしていきましょう。
対象ワードファイルを開き、文字を選択します。
「ホーム」タブをクリックし、すべての書式をクリアボタンをクリックします。
はい、書式がクリアされましたね!
なお、蛍光ペンの着色は消えないようです。
方法その1:すべての書式をクリアのショートカット
段落書式のクリアのショートカットは以下となります。
文字を選択します
Alt+H
Alt+E
方法その2:文字書式のクリアをおこなう
続いて、文字書式のクリアをおこなってみましょうお。
1つ目の方法では段落や箇条書きまでクリアされましたが、
この方法では太字や文字サイズなど文字に対して変更した書式のみが対象となります。
方法その2:文字書式クリアのショートカット
文字書式クリアのショートカットは以下となります。
変更したい文を選択し、ショートカットを入力します。
はい、できましたね。
複数のドキュメントの書式を一括でクリアするVBA
続いて書式をクリアするVBAで複数のドキュメントに対しで一度に処理していきたいと思います。
サンプルコードは以下の通りです。
Sub 複数ファイルの書式をクリアする()
Dim csvFilePass As String
Dim intSelectNum As Integer
'対象ファイルの格納先パスを入力する配列を宣言します。ファイル数に応じて配列数を変更してください。
Dim arrTargetFilePass(2) As String
'対象ファイルを指定します。
arrTargetFilePass(0) = "C:\Users\takahiro\Documents\****\書式クリア対象ファイル\書式クリア対象ファイル1.docx"
arrTargetFilePass(1) = "C:\Users\takahiro\Documents\****\書式クリア対象ファイル\書式クリア対象ファイル2.docx"
arrTargetFilePass(2) = "C:\Users\takahiro\Documents\****\書式クリア対象ファイル\書式クリア対象ファイル3.docx"
'書式クリアのパターンを選択します。1の場合はすべての書式、2の場合は文字のみの書式をクリアします。
intSelectNum = 2
'対象ファイルの格納先パスを件数分取得します。
For Each targetFilePass In arrTargetFilePass
'対象ファイルを開きます。
Set objTargetFile = Documents.Open(targetFilePass)
'Word全体を選択します。
Selection.WholeStory
'指定した形式の書式クリア処理を行います。
Select Case intSelectNum
Case 1
'すべての書式をクリアします。
Selection.ClearFormatting
Case 2
'書式の内文字のみクリアします。
Selection.Font.Reset
Case Else
'なにも指定がない場合はすべての書式をクリア
Selection.ClearFormatting
End Select
'書式クリア対象ファイルを保存します。有効にする場合は"'"を外してください。
'objTargetFile.Save
Next
MsgBox "書式のクリアが完了しました。"
Set objTargetFile = Nothing
End Sub
VBAの設定をする
Wordで書式を一括クリアするVBAに設定をしていきましょう。
設定箇所は以下の通りです。
対象ファイルの格納先パスを入力する配列を宣言します。ファイル数に応じて配列数を変更してください。
置換対象ファイルをフルパスで指定します。
arrTargetFilePass(1) = “C:\Users\takahiro\Documents\****\書式クリア対象ファイル\書式クリア対象ファイル1.docx”
arrTargetFilePass(2) = “C:\Users\takahiro\Documents\****\書式クリア対象ファイル\書式クリア対象ファイル1.docx”
サンプルではファイル数3つなので、3が入力する数字に該当するかと思いますが、配列は0番から数えますので2が入る形になります。
書式をクリアするパターンを設定します。
すべての書式をクリアしたい場合は1を、
文字の書式のみクリアしたい場合は2を設定してください。
サンプルはすべての書式をクリアの1を指定しています。
VBAを実装し実行する-すべての書式をクリアパターン
VBAを実装し実行してみましょう。
実装方法は「VBAを実装する」をご覧ください。
実装できたらマクロから「複数ファイルの書式をクリアする」を見つけ実行します。
はい、複数の指定ファイルの書式がクリアされていますね!
次は文字のみの書式をクリアしてみましょう。
VBAを実装し実行する-文字書式クリア
文字の書式のみクリアする場合は2を設定します。
実行してみましょう。
はい、複数の指定ファイルの文字の書式のみがクリアされていますね!
VBAを実装し実行する-蛍光ペンの着色もクリア
よくみると蛍光ペンの着色が残っています。こちらもクリアするようにしましょう。
「End Select」
の下に、以下を追加します。
書式クリアのパターンはすべての書式をクリアする1を設定しています。
実行してみましょう。
はい、蛍光ペンの着色もクリアされていますね!
ファイルを保存する設定をする
今回のVBAは置換後すぐに保存をできるようにしています。有効化したい場合は以下Saveメソッド頭のカンマ「’」を外してください。
蛍光ペンの着色のクリアとファイルを保存する機能を追加したVBA
蛍光ペンの着色のクリアとファイルを保存する機能を追加したVBAとなります。
今回のフル機能で使いたい方はこちらをご利用ください。
Sub 複数ファイルの書式をクリアする()
Dim csvFilePass As String
Dim intSelectNum As Integer
'対象ファイルの格納先パスを入力する配列を宣言します。ファイル数に応じて配列数を変更してください。
Dim arrTargetFilePass(2) As String
'対象ファイルを指定します。
arrTargetFilePass(0) = "C:\Users\takahiro\Documents\****\書式クリア対象ファイル\書式クリア対象ファイル1.docx"
arrTargetFilePass(1) = "C:\Users\takahiro\Documents\****\書式クリア対象ファイル\書式クリア対象ファイル2.docx"
arrTargetFilePass(2) = "C:\Users\takahiro\Documents\****\書式クリア対象ファイル\書式クリア対象ファイル3.docx"
'書式クリアのパターンを選択します。1の場合はすべての書式、2の場合は文字のみの書式をクリアします。
intSelectNum = 1
'対象ファイルの格納先パスを件数分取得します。
For Each targetFilePass In arrTargetFilePass
'対象ファイルを開きます。
Set objTargetFile = Documents.Open(targetFilePass)
'Word全体を選択します。
Selection.WholeStory
'指定した形式の書式クリア処理を行います。
Select Case intSelectNum
Case 1
'すべての書式をクリアします。
Selection.ClearFormatting
Case 2
'書式の内文字のみクリアします。
Selection.Font.Reset
Case Else
'なにも指定がない場合はすべての書式をクリア
Selection.ClearFormatting
End Select
'蛍光ペンの着色もクリアします。
Selection.Range.HighlightColorIndex = wdNoHighlight
'書式クリア対象ファイルを保存します。有効にする場合は"'"を外してください。
objTargetFile.Save
Next
MsgBox "書式のクリアが完了しました。"
Set objTargetFile = Nothing
End Sub
VBAの説明
複数のドキュメントの書式を一括でクリアするVBAについて説明をします。
対象ファイルの格納先パスを件数分取得します。
対象ファイルを開きます。
Word全体を選択します。
指定した形式の書式クリア処理を行います。
Case 1
‘すべての書式をクリアします。
Selection.ClearFormatting
Case 2
‘書式の内文字のみクリアします。
Selection.Font.Reset
Case Else
‘なにも指定がない場合はすべての書式をクリア
Selection.ClearFormatting
End Select
蛍光ペンの着色もクリアします。
書式クリア対象ファイルを保存します。有効にする場合は”‘”を外してください。
VBAを実装する
実装手順は以下の通りです。
①Wordを新規に開き、「開発」タブをクリックし、
「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。
②標準モジュールを追加します。
左ペインの「Nomal」を右クリックし、「挿入」、「標準モジュール」を選択します。
③右ペインのウインドウに上記のVBAを入力します。
こちらで完了です。
VBAを実行する
早速VBAの実行をしてみましょう。
①「開発」タブの「マクロ」をクリックし今回実装したマクロ明を選択し、「実行」をクリックします。
さいごに
いかがでしょうか。
今回は、
Wordで書式をクリアする方法2選とVBAで複数ファイルを書式クリアする方法について
まとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す