Word(ワード)で文書を作成するとき、既存の文書ファイルをコピーして新しい文書を作成することがよくありますが、これを繰り返していると、文書内に使用していないスタイルが増えてしまうことがあります。
文書内で不要なスタイルを削除する場合、通常はスタイルウィンドウなどから一つずつ削除しますが、不要なスタイルがたくさんあると結構面倒な作業となってしまいます。
そこでここでは、Word(ワード)のVBAを使って、文書ファイル内で使用していないスタイルを一括削除する方法を紹介します。
スタイルを一括削除する
文書ファイルで不要なスタイルを削除する場合、通常は「スタイル」ウィンドウなどから、削除するタイルの右端に表示されている「▼」をクリックして、メニューから「(スタイル名)の削除」を選択します。
ですが、上の方法では一つずつしかスタイルを削除できないので、不要なスタイルがたくさんある場合は、VBAを使って一括削除するのがおススメです。
手順は、次のとおりです。
万が一のトラブルに備えて作業対象の文書ファイルをコピーしてバックアップしておきましょう。
対象の文書ファイルを開き、ショートカットキー「Alt+F11」を押します。
「Microsoft Visual Basic for Applications」画面が表示されるので、画面左側の「プロジェクトエクスプローラー」から「ThisDocument」をダブルクリックします。
コードの入力画面が表示されるので、以下の内容をそのまま入力欄にコピー&ペーストします。
Sub delete_style()
Dim aSty As Style
Dim sMsg As String
For Each aSty In ActiveDocument.Styles
Select Case aSty.Type
Case wdStyleTypeParagraph, wdStyleTypeParagraphOnly, wdStyleTypeCharacter
If aSty.InUse = True And aSty.BuiltIn = False Then
With ActiveDocument.Content.Find
.ClearFormatting
.Text = ""
.Style = aSty
.Execute Format:=True
If .Found = False Then
sMsg = sMsg & aSty.NameLocal & vbCrLf
aSty.Delete
End If
End With
End If
End Select
Next aSty
If sMsg <> "" Then
MsgBox "以下のスタイルを削除しました" & vbCrLf & sMsg, _
vbInformation, "スタイルの削除"
End If
Set aSty = Nothing
End Sub
コードを入力したら、画面上部のメニューから「Sub/ユーザーフォームの実行」ボタンをクリックします。
未使用スタイルの削除処理が開始され、削除が完了すると以下のように削除したスタイルがポップアップで表示されるので、確認後「OK」をクリックします。
「Microsoft Visual Basic for Applications」画面に戻り、入力したコードを削除した後に、ウィンドウ右上の「X」ボタンで閉じます。
最後に文書ファイルを上書き保存すれば、未使用スタイルの一括削除完了です。
なお、スタイル画面やVBAから削除できるスタイルは、ユーザーが作成したスタイルのみで、デフォルトで用意されているスタイルを削除することはできないのでご注意ください。
あとがき
Wordで効率よく文書を作成するのに「スタイル」は欠かせない機能なので、不要なスタイルを削除しておけば、文書作成時にスタイル選択で手間取ることがなくなるでしょう。
ご活用あれ。