フォントに書式を使いますね。
たとえば、太字、斜体、などなど。
文書中にそれらの書式が使われているかどうかを確認するマクロです。
どこで役に立つのか?
私は、仕事やプライベートで文書を作成するときに、仮の文書をひとまずつくります。
わからないところは、特定のキーワードをメモ書きしたり、もしくは、下線や蛍光ペンで着色したりして、あとで読み返して直せるようにしておきます。
この方法で大切なのは、完成品でこのようなメモが残らないようにすることです。
いらないメモが残っているとまずいですよね。特に仕事で納品する場合には。
今回紹介するマクロは、このような特定の書式が、文書中に使われているかどうかを一気に確認するものです。
検索をして、以下のようなメッセージを表示します。
検索対象
- 上付き
- 下付き
- 太字
- 斜体
- 下線(一重線)
- 取り消し線
- 蛍光ペン
この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行 検索対象の書式を設定しています。
▼関連記事
-
2. Re:引数を省略できません
>ハマの万馬券男さん
こんにちは。はじめまして。
メールをいただいた内容を拝見すると、
エクセルでこのプログラムをご利用されようと
しているのでしょうか。実は、これはWordのマクロなので、
エクセルで使うことができません。Wordのfindメソッドは、Excelのfindメソッドよりも
細かく書式を設定できるので、今回のような
検索が可能になります。また、findメソッドの記載方法が異なります。
Excelの場合には、findメソッドの後に、
引数を追加していろいろと設定するのです。そのために、「引数を省略できません」のメッセージが
表示されたのかもしれません。Excel 2010が手元にないので、細かいことはわかりませんが、
基本的に、Word のVBAでご利用いただくものと
ご理解ください。
コメント