Wordで書式をクリアする方法2選!VBAで複数ファイル処理も!

Wordで書式を一括クリアしたいときはないでしょうか。

例えばワードファイルの使いまわしで前の書式が残ってしまい新旧の書式が混在している場合などです。

けど、そんな中で悩むことは、

・Wordで書式を一括クリアしたいが方法がわからない
・Word VBAで複数ファイルの書式を一括でクリアしたいが複雑でどう組めばよいかわからない

ですよね。

今回はそんなお悩みを解決する
Wordで書式をクリアする方法2選とVBAで複数ファイルを書式クリアする方法について
まとめます!

Wordで書式を一括クリアするイメージ

Wordで書式を一括クリアするイメージについて説明をします。

置換したい文字列を含むワードファイルをいくつか作成します。

まずは標準機能で単体のファイルの書式をクリアする方法について説明をします。

次にVBAで複数ファイルを開き書式をクリアしていく方法について説明をします。

それでは早速使ってみましょう!

書式をクリアしたい文字を含むサンプルのワードファイルを用意する

書式をクリアしたい文字を含むサンプルのワードファイルを用意しましょう。

標準機能分に1ファイル、

VBA処理用に3ファイル用意しています。

ファイル名は好きなものでOKです。

標準機能で書式をクリアする

まずは標準機能を使い、1ファイルを対象に書式をクリアしていきましょう。

方法その1:すべての書式をクリアをおこなう

テキストからすべての書式設定 (太字、下線、斜体、色、上付き、下付きなど) をクリアしていきましょう。

対象ワードファイルを開き、文字を選択します。

「ホーム」タブをクリックし、すべての書式をクリアボタンをクリックします。

はい、書式がクリアされましたね!

タカヒロ
タカヒロ
箇条書きや段落まですべてクリアされますので注意しましょう。
なお、蛍光ペンの着色は消えないようです。

方法その1:すべての書式をクリアのショートカット

段落書式のクリアのショートカットは以下となります。

文字を選択します

AltH

AltE

方法その2:文字書式のクリアをおこなう

続いて、文字書式のクリアをおこなってみましょうお。
1つ目の方法では段落や箇条書きまでクリアされましたが、
この方法では太字や文字サイズなど文字に対して変更した書式のみが対象となります。

タカヒロ
タカヒロ
こちらはショートカットのみです。

方法その2:文字書式クリアのショートカット

文字書式クリアのショートカットは以下となります。

Ctrlスペース

変更したい文を選択し、ショートカットを入力します。

はい、できましたね。

タカヒロ
タカヒロ
段落や箇条書きの書式は保たれたままですね。


複数のドキュメントの書式を一括でクリアする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に設定をしていきましょう。

設定箇所は以下の通りです。

対象ファイルの格納先パスを入力する配列を宣言します。ファイル数に応じて配列数を変更してください。

Dim arrTargetFilePass(2) As String

置換対象ファイルをフルパスで指定します。

arrTargetFilePass(0) = “C:\Users\takahiro\Documents\****\書式クリア対象ファイル\書式クリア対象ファイル1.docx”
arrTargetFilePass(1) = “C:\Users\takahiro\Documents\****\書式クリア対象ファイル\書式クリア対象ファイル1.docx”
arrTargetFilePass(2) = “C:\Users\takahiro\Documents\****\書式クリア対象ファイル\書式クリア対象ファイル1.docx”

サンプルではファイル数3つなので、3が入力する数字に該当するかと思いますが、配列は0番から数えますので2が入る形になります。

タカヒロ
タカヒロ
ようするにファイル数-1の数を配列の数へ指定すればOKです。


書式をクリアするパターンを設定します。
すべての書式をクリアしたい場合は1を、
文字の書式のみクリアしたい場合は2を設定してください。
サンプルはすべての書式をクリアの1を指定しています。

intSelectNum = 1

VBAを実装し実行する-すべての書式をクリアパターン

VBAを実装し実行してみましょう。

実装方法は「VBAを実装する」をご覧ください。

実装できたらマクロから「複数ファイルの書式をクリアする」を見つけ実行します。

はい、複数の指定ファイルの書式がクリアされていますね!

次は文字のみの書式をクリアしてみましょう。

VBAを実装し実行する-文字書式クリア

文字の書式のみクリアする場合は2を設定します。

intSelectNum = 2

実行してみましょう。

はい、複数の指定ファイルの文字の書式のみがクリアされていますね!

VBAを実装し実行する-蛍光ペンの着色もクリア

よくみると蛍光ペンの着色が残っています。こちらもクリアするようにしましょう。

「End Select」
の下に、以下を追加します。

Selection.Range.HighlightColorIndex = wdNoHighlight

書式クリアのパターンはすべての書式をクリアする1を設定しています。

intSelectNum = 1

実行してみましょう。

はい、蛍光ペンの着色もクリアされていますね!

ファイルを保存する設定をする

今回のVBAは置換後すぐに保存をできるようにしています。有効化したい場合は以下Saveメソッド頭のカンマ「’」を外してください。

objTargetFile.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について説明をします。

対象ファイルの格納先パスを件数分取得します。

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

VBAを実装する

実装手順は以下の通りです。

①Wordを新規に開き、「開発」タブをクリックし、

VisualBasic」をクリックします。

もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインの「Nomal」を右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

早速VBAの実行をしてみましょう。

①「開発」タブの「マクロ」をクリックし今回実装したマクロ明を選択し、「実行」をクリックします。

さいごに

いかがでしょうか。

今回は、
Wordで書式をクリアする方法2選とVBAで複数ファイルを書式クリアする方法について
まとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。







コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA ImageChange Image