【コード】使用中の書式を検出するWordマクロ

フォントに書式を使いますね。

たとえば、太字、斜体、などなど。

文書中にそれらの書式が使われているかどうかを確認するマクロです。

どこで役に立つのか?

私は、仕事やプライベートで文書を作成するときに、仮の文書をひとまずつくります。

わからないところは、特定のキーワードをメモ書きしたり、もしくは、下線や蛍光ペンで着色したりして、あとで読み返して直せるようにしておきます。

この方法で大切なのは、完成品でこのようなメモが残らないようにすることです。

いらないメモが残っているとまずいですよね。特に仕事で納品する場合には。

今回紹介するマクロは、このような特定の書式が、文書中に使われているかどうかを一気に確認するものです。

検索をして、以下のようなメッセージを表示します。

文字書式

検索対象

  • 上付き
  • 下付き
  • 太字
  • 斜体
  • 下線(一重線)
  • 取り消し線
  • 蛍光ペン

この7種類です。

プログラム

インデント付きのマクロは、こちらのページ でご覧になれます。


Sub Style_Check()

 Dim myRange As Range
 Dim myStyle(1 To 7) As String
 Dim i As Integer
 Dim myStyleFound As String
 Dim blnStyle As Boolean
 
 myStyle(1) = "下付き"
 myStyle(2) = "上付き"
 myStyle(3) = "太字"
 myStyle(4) = "斜体"
 myStyle(5) = "下線(一重線)"
 myStyle(6) = "取り消し線"
 myStyle(7) = "蛍光ペン"
 
 For i = 1 To 7
 
 Set myRange = ActiveDocument.Range(0, 0)
 
 With myRange.Find
  .Text = ""
  .Forward = True
  
  If i = 1 Then
   .Font.Subscript = True
  ElseIf i = 2 Then
   .Font.Superscript = True
  ElseIf i = 3 Then
   .Font.Bold = True
  ElseIf i = 4 Then
   .Font.Italic = True
  ElseIf i = 5 Then
   .Font.Underline = wdUnderlineSingle
  ElseIf i = 6 Then
   .Font.StrikeThrough = True
  ElseIf i = 7 Then
   .Highlight = True
  End If
  
  .Wrap = wdFindStop
  .Execute
  
  If .Found = True Then
   myStyleFound = myStyleFound & vbCr & myStyle(i)
  End If
 
 End With
 
 Next
 
 Set myRange = Nothing
 
 If Len(myStyleFound) <> 0 Then
  MsgBox "現在の文書で使用されている書式" & vbCr & _
      myStyleFound, vbInformation, "検索結果"
 Else
  MsgBox "見つかりませんでした。", vbExclamation, "検索結果"
 End If

End Sub

プログラム解説

54行 Len関数 (文字列の長さを求める

25行~39行 検索対象の書式を設定しています。

▼関連記事

フォントチェック用マクロの目次

トップへ戻る