選択箇所に傍点を施す(Word)

選択箇所に傍点を施す

f:id:akashi_keirin:20210216232214j:plain

選択箇所に傍点を施すマクロ

選択箇所に傍点を施すのはめんどくさい

選択箇所に傍点を施すのは実にめんどくさい。

f:id:akashi_keirin:20210216232035j:plain

仮に、リボンのタブが「ホーム」にある状態からでも、

f:id:akashi_keirin:20210216232032j:plain

対象範囲を選択し、

「フォント」グループの「ダイアログボックスランチャー」(みんな、こんな名前だって知ってた?)をクリックし、

f:id:akashi_keirin:20210216232038j:plain

「傍点」のところのドロップダウンをクリックし、

f:id:akashi_keirin:20210216232042j:plain

任意の傍点の種類をクリックし、

f:id:akashi_keirin:20210216232045j:plain

[OK]をクリックする

f:id:akashi_keirin:20210216232048j:plain

と、範囲を選択してからでも、実に4回ものクリックを重ねなければたどり着けない苦難の道のりなのである。

f:id:akashi_keirin:20210216232059j:plain

これはめんどくさい。

そう思ったら、マクロですよ!

選択箇所に傍点を施すマクロ

これは実に簡単。

傍点を施したい箇所のRangeオブジェクトを取得し、そのRangeオブジェクトのEmphasisMarkプロパティに望みの値を設定してやればよい。

EmphasisMarkプロパティの値の設定には、WdEmphasisMark列挙体の使用が可能。列挙体の各要素は次の通り。

f:id:akashi_keirin:20210216232110j:plain

  1. wdEmphasisMarkNone
  2. wdEmphasisMarkOverComma
  3. wdEmphasisMarkOverSolidCircle
  4. wdEmphasisMarkOverWhiteCircle
  5. wdEmphasisMarkUnderSolidCircle

まあ、名前を見たらだいたいどんなのか想像つくと思う。

日本語の文章で使うのはほぼ「wdEmphasisMarkOverComma」でしょう。

コードは次のような実に簡単なものになる。

リスト1
Private Sub addEmphasisMark( _
  Optional ByVal EmphasisMarkType As WdEmphasisMark =  _
                                     wdEmphasisMarkOverComma)
  Dim rng As Range
  Set rng = Selection.Range
  rng.EmphasisMark = EmphasisMarkType
End Sub

引数としてWdEmphasisMark列挙体を受け取って、その傍点を選択範囲に施す、というだけのもの。

先にも述べたとおり、日本語の文書では通常「、」の形の傍点を使うので、Optionalにした上でデフォルト値をwdEmphasisMarkOverCommaにしている。

使ってみる

次のコードで実行。

スト2
Public Sub AddEmphasisMarkMain()
  Call addEmphasisMark
End Sub

これで良い。

対象の箇所を選択して、リスト2を実行する。

f:id:akashi_keirin:20210216232113g:plain

ほれ、バッチリ。

おわりに

なんで今までこういうことをしてこなかったのだろう。