傍点マクロの改良(Word)

傍点マクロの改良

f:id:akashi_keirin:20210228224425j:plain

目次

傍点マクロのイマイチなところ

akashi-keirin.hatenablog.com

このときに紹介した傍点マクロ。

便利だと思っていたが、ショートカットキーでサクッと使えるようになると、コロナの弱点が見えてきた。大阪府の吉村知事ばりに!

こいつをご覧ください。

f:id:akashi_keirin:20210228224109g:plain

おわかりだろうか。傍点を施した箇所が選択されたままなのである。

しかも!

f:id:akashi_keirin:20210228224116g:plain

続けて文字を入力すると、このようなみじめな状態になるのである!

これはめちゃくちゃ不便である!

f:id:akashi_keirin:20210228224105j:plain

……ではなくって、さあ改良だ!

傍点マクロを改良する

前回のリストを参考に再掲する。

リスト1
Public Sub AddEmphasisMain()
  Static hasShown As Boolean
  Call AddEmphasisMark
  If Not hasShown Then
    Debug.Print "ショートカット キーは、[Ctrl]+[Alt]+[@]や。"
    hasShown = True
  End If
End Sub

Public Sub AddEmphasisMark( _
  Optional ByVal EmphasisMarkType As WdEmphasisMark = _
                                     wdEmphasisMarkOverComma)
  Dim rng As Range
  Set rng = Selection.Range
  rng.EmphasisMark = EmphasisMarkType
End Sub

AddEmphasisMarkMainからAddEmphasisMarkメソッドを呼び出す形にしている。

AddEmphasisMarkメソッドには、傍点を打つことに専念してもらい、傍点を打った後の処理は、呼び出し側のAddEmphasisMarkMainでやることにする。

変更後のコードを示す。

スト2
Public Sub AddEmphasisMain()
  Static hasShown As Boolean
  Call AddEmphasisMark
  If Not hasShown Then
    Debug.Print "ショートカット キーは、[Ctrl]+[Alt]+[@]や。"
    hasShown = True
  End If
  Call Selection.Collapse(wdCollapseEnd)    '……(1)'
  Selection.Font.EmphasisMark = wdEmphasisMarkNone  '……(2)'
End Sub

Public Sub AddEmphasisMark( _
  Optional ByVal EmphasisMarkType As WdEmphasisMark _
                                     = wdEmphasisMarkOverComma)
  Dim rng As Range
  Set rng = Selection.Range
  rng.EmphasisMark = EmphasisMarkType
End Sub

二箇所コードを追加している。

まず、(1)の

Call Selection.Collapse(wdCollapseEnd)

で選択箇所を潰し、(2)の

Selection.Font.EmphasisMark = wdEmphasisMarkNone

で現在カーソルのある箇所(傍点を施した文字列直後の位置)を傍点なしにする。

これだけ。

使ってみる

傍点を施したい箇所を選択して、ショートカットキーでマクロを起動してみる。

f:id:akashi_keirin:20210228224126g:plain

ふふふ。快適だ。

終わりに

こういう小さなマクロを作るのが、Wordの場合は特に面白いと思います。