【Word VBA】こうすればできる!!シンボルフォントを検索するWordマクロ(3)

2010年6月11日

こうすればできる!!シンボルフォントの検索こうすればできる!!シンボルフォントの検索(2)こうすればできる!!シンボルフォントの検索(3)  ←現在地
・こうすればできる!!シンボルフォントを検索(4)
2017/09/23追記
この記事のマクロには間違いがあります。
修正版を「こうすればできる!!シンボルフォントを検索(4)」に掲載しました。

先日からしつこく書き続けているシリーズ。

これで最終回ですが。

今までに紹介してきたものは、Selectionオブジェクトで作成したものです。

今回紹介するのは、Rangeオブジェクトです。

 

SelectoinオブジェクトRangeオブジェクトの違いは、こちらで紹介したとおりです。

SelectoinオブジェクトからRangeオブジェクトへの書き換えは、こちらで紹介したとおりです。

今回は、

Set myRange = Selection.Range

ではなくて、

Set myRange = ActiveDocument.Content

としてみました。

 

なので、検索・置換ダイアログの初期化が不要です。

また、カーソルの移動がないため、画面のちらつきがありません。よって、こちらで紹介した画面のちらつき防止をする必要がありません。

 

結果、プログラムは非常にシンプルになります。

他の方が書くと、もっと短くなるかも。

プログラム


Sub Symbolフォント探し3()

 Dim i As Long '文字コード用
 Dim myRange As Range 'Rangeオブジェクト
 
 'Rangeオブジェクトの設定
 Set myRange = ActiveDocument.Content
 
 'シンボルフォントのギリシャ文字をピンクの蛍光ペンで着色
 For i = 61505 To 61562
 
  If i >= 61531 And i <= 61536 Then GoTo Proc_Skip
  
  'カーソルを文書の先頭へ移動
  myRange.SetRange Start:=0, End:=0
  
  'ギリシャ文字を検索してピンクに着色
  With myRange.Find
   .Execute FindText:=ChrW(i), Wrap:=wdFindStop
   Do While .Found = True
    myRange.HighlightColorIndex = wdPink
    .Execute
   Loop
  End With
 
Proc_Skip:
 Next i
 
 Set myRange = Nothing

End Sub

関連記事

こうすればできる!!シンボルフォントの検索

変数の宣言を強制する「Option Explicit」の設定

こうすればできる!!シンボルフォントの検索(2)

・こうすればできる!!シンボルフォントの検索(3)  ←現在地

-コード
-, ,