« 前回の続き 語学力ゼロで8ヵ国語翻訳できるナゾ どんなビジネスもこの考え方ならうまくいく (書籍紹介) | トップページ | ワードからエクスプローラを開く1行マクロ »

2010年3月 7日 (日)

段落先頭の1文字の判定方法

今作成しているプログラムで、段落の先頭の文字(改行後の最初の文字)
の判定を行っています。

以下のプログラムは、2段落目以降の先頭の文字の判定を行います。

▼作用
ワード文書中の段落の先頭文字(改行後の最初の文字)に
全角・半角の英数字以外の文字が記載される場合(異常時)には
「明るい緑色」の蛍光ペンで着色します。

また、判定結果をメッセージボックスで表示します。

▼工夫したところ
「全角・半角の英数字以外」を示す条件設定にて示したように、着色した「^11^12^13
を入れたことです。(プログラムの30行目)

         .text = "^13([!0-9a-zA-Z0-9a-zA-Z^11^12^13]{1,1})"

このように、改行記号を条件に含めると、改行記号が
蛍光ペンで塗られてしまうことを回避できます。

今回のプログラムでは、

^11 ソフトリターン (↓として表示されるもの)
^12 改ページ
^13 通常の改行(ハードリターン)

を検索から除外するように設定しました。

ためしに、上記の^11^12^13をのぞいて、以下の画像に示された
ような場合(改行しかない文書)でプログラムを実行するとわかりやすいと思います。

Sento

このような場合でも、改行記号を「英数字以外の文字」として認識
してしまうため、下記のような表示がされます。

Sento2

改行が蛍光ペンで塗られても、表面上は見えませんが、
その改行されている段落に文字を入力すると、入力した
文字が、蛍光ペン塗られて表示されてしまいます。

▼ワイルドカード検索の説明

上記の通りワイルドカードを用いているので、例えば改行を「^p」と記述することが
できません。そのかわり、「^13」を用いています。

これらの対応は、最近レビューしました「語学力ゼロで8カ国語」の
P.120~124の記事や、ワードで実践のP155に解説があります。

上記の条件式では、

「改行」に続く1文字が「英数字・改行以外の文字」

であるものを検索することを定義しています。

「○○以外の文字を探す条件式」については、こちらをご覧ください。

▼プログラム

Sub 段落先頭文字の確認()

      Dim myRange As Range
      Dim myBln As Boolean

10       Set myRange = ActiveDocument.Range(0, 0)
20       With myRange.Find
30           .text = "^13([!0-9a-zA-Z0-9a-zA-Z^11^12^13]{1,1})"
40           .Forward = True
50           .Wrap = wdFindStop
60           .MatchWildcards = True
70           .Execute
80           Do While .Found = True
90               myRange.HighlightColorIndex = wdBrightGreen
100              myRange.Collapse direction:=wdCollapseEnd
110              myBln = True
120              .Execute
130          Loop
140      End With
150      Set myRange = Nothing
         
160      If myBln = True Then
170           msgbox "段落先頭に英数字以外の文字が記載されています。" & vbCr & _
                      "緑色の蛍光ペンで着色しました。"
180      Else
190           msgbox "段落先頭の記載は正常です。"
200      End If

End Sub

|

« 前回の続き 語学力ゼロで8ヵ国語翻訳できるナゾ どんなビジネスもこの考え方ならうまくいく (書籍紹介) | トップページ | ワードからエクスプローラを開く1行マクロ »

マクロプログラム」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/519619/47740240

この記事へのトラックバック一覧です: 段落先頭の1文字の判定方法:

« 前回の続き 語学力ゼロで8ヵ国語翻訳できるナゾ どんなビジネスもこの考え方ならうまくいく (書籍紹介) | トップページ | ワードからエクスプローラを開く1行マクロ »