2017年10月8日追記 本記事にはSymbolフォントの文字入力で間違った記述があります。 文字入力方法の修正内容を以下の記事でご確認ください。 【コード】こうすればできる!!シンボルフォントを検索するWordマクロ(4)
「Symbolフォントのギリシャ文字を蛍光ペンで着色するマクロ」に関連した記事です。
少しだけ細かく説明いたします。
<目次>
マクロのポイント(上記記事のコードを後半に掲載しました)
.Replacement.Text = ""
上記のとおり、置換後の文字列を空欄にしてあります。
今回のように蛍光ペンで着色をしたり、書式を変更する場合には、文字列を入れずに置換ができます。
参考情報ですが、書式を指定せずに置換後の文字列を空欄にした場合には、検索する文字列の「削除」になりますね。
さて、以下のように「検索する文字列」と「置換後の文字列」を同じものをいれても、書式の変更の場合はできますね。
.Text = ChrW(i) .Replacement.Text = ChrW(i)
ただ、今回は、あえて上記の通りにはしておりません。
置換後の文字列に文字を入力すると、書式だけではなく文字列の入力を伴います。
実は、上記のようにSymbolフォントを置換後の文字列に使用すると、文字化けしてしまうことがあります。
置換後の文字列を設定すると、文字を入力します。そのときに入力するのは「Symbolフォント」のギリシャ文字の文字コードなのですね。
標準フォントがMS 明朝とCentury の組み合わせの場合、これらに入力した文字コードに対応するものがなくて以下のように文字化けしてしまいます。
フォントの種類をSymbolに変換すると、以下のように正常な状態に戻ります。文字コードとしての情報は持っているのですが、表示形式が間違っているのですね。
「Symbolフォントのギリシャ文字を入力するマクロ」でも同様の説明をいたしました。
というわけで、文字列の入力はせずに、蛍光ペンの着色だけをするために、置換後の文字列を空欄にしました。
マクロ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | Sub Symbol_Greece_Check() Dim i As Long '文字コード用 Dim myRange As Range 'Rangeオブジェクト Dim myHighLight As String '蛍光ペンの設定の保存用 Dim nCount As Integer '見つけたか文字種の数 Dim myMessage As String 'メッセージ '蛍光ペンの設定 myHighLight = Options.DefaultHighlightColorIndex Options.DefaultHighlightColorIndex = wdYellow 'Rangeオブジェクトの設定 Set myRange = ActiveDocument.Range(0, 0) 'シンボルフォントのギリシャ文字を黄色の蛍光ペンで着色 For i = 61505 To 61562 If i >= 61531 And i <= 61536 Then GoTo Proc_Skip myRange.SetRange Start:=0, End :=0 'ギリシャ文字を検索して黄色に着色 With myRange.Find .Text = ChrW(i) .Replacement.Text = "" .Replacement.Highlight = True .Wrap = wdFindStop .Forward = True .Execute If .Found = True Then .Execute Replace:=wdReplaceAll nCount = nCount + 1 End If End With Proc_Skip: Next i If nCount > 0 Then myMessage = StrConv(nCount, vbWide) & "種類のSymbolフォントのギリシャ文字を着色しました。" Else myMessage = "Symbolフォントのギリシャ文字は見つかりませんでした。" End If MsgBox myMessage, vbInformation, "ギリシャ文字チェック" Options.DefaultHighlightColorIndex = myHighLight Set myRange = Nothing End Sub |
関連記事
- 【Word VBA】Symbolフォントのギリシャ文字を入力するWordマクロ
- 【Word VBA】Symbolフォントのギリシャ文字を蛍光ペンで着色するWordマクロ
- 【Word VBA】Symbolフォントのギリシャ文字を蛍光ペンで着色するWordマクロ(解説)
- 【Word VBA】Symbolフォントの段落番号を通常の段落番号に変換するWordマクロ
- 【Word VBA】こうすればできる!!シンボルフォントを検索するWordマクロ
- 【Word VBA】こうすればできる!!シンボルフォントを検索するWordマクロ(2)
- 【Word VBA】こうすればできる!!シンボルフォントを検索するWordマクロ(3)
- 【Word VBA】こうすればできる!!シンボルフォントを検索するWordマクロ(4)
- 【Word VBA】ギリシャ文字をシンボルフォントに変更するWordマクロ
- 【Word VBA】ギリシャ文字をシンボルフォントに変更するWordマクロ(その2)