先日いただいたコメントへの回答です。
以前紹介しました「文書中の全角文字を数えて検索するマクロ」では、Symbolフォントも検索されてしまいます。
Symbolフォントを除外して全角文字を探してみます。
▼このマクロでできること
カーソルのあるストーリー内において、カーソル以降の全角文字と思われるものを検索し、見つかった場合に選択します。ストーリーの末尾になったら、文書の先頭から検索を開始します。
Symbolフォントは、検索対象から除外します。
▼マクロの解説
赤文字部分で、全角文字1文字を検索しています。
.Text = "[! -~^9^11^12^13^14]"
「全角文字」としていますが、かなり簡略化した記載です。ここで定義しているのは、「文書中の全角文字を数えて検索するマクロ」で紹介したとおり、半角文字( -~)と編集記号(^9^11^12^13^14)以外を探しています。
半角文字を見つけた場合に、青文字部分にあるように、フォント名を確認しています。
Symbolフォントだった場合には、選択を解除して別の文字を探すようになっています。
myRange.Select
If Dialogs(wdDialogInsertSymbol).Font = "Symbol" Then
Dialogs(wdDialogInsertSymbol) は、[記号と特殊文字]の挿入用のダイアログボックスを示しています。
このダイアログボックスを開くとわかりますが、「現在選択されている文字列の先頭の1文字」の情報を表示するんですね。
そんなわけで、フォント名を確認する場合には、検索対象を1文字にしているのです。
myRange.Select で選択してから、このダイアログボックスでフォント名を確認しています。
Rangeオブジェクト内のフォント情報を表示できません。Selectionオブジェクトのフォント情報になります。
このマクロはかなり簡易的なものです。
半角文字が選択されてしまたら、その文字列を検索対象から除外するか、フォント名で除外するかしてみてください。
▼マクロ
Sub 全角文字の検索()
'シンボルフォントを除外
Dim myRange As Range
Set myRange = Selection.Range
With myRange.Find
.Text = "[! -~^9^11^12^13^14]"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchFuzzy = False
.MatchWildcards = True
Do While .Execute = True
myRange.Select
If Dialogs(wdDialogInsertSymbol).Font = "Symbol" Then
myRange.Collapse wdCollapseEnd
Else
Exit Do
End If
Loop
End With
Set myRange = Nothing
End Sub
▼関連記事
文書中の全角文字を数えて検索するマクロ
↧
【Wordマクロ】全角文字を検索する(Symbolフォントを除外)
↧