このセミナーでは、パソコンの設定や操作方法を紹介しますが、その中で、各種ショートカットキーを扱います。Wordだけでなく、Excel、PowerPointのものも多数紹介します。
そのときに、資料内でキーの表記の揺れ(Shift、[Shift])があり、その調整をする必要が出てしまいました。
あまりにも数があるので、マクロを書いてみました。
▼このマクロでできること
選択した文字列の前後に角括弧を付けます。
文字列を選択していない場合、単語単位で選択範囲を広げて、その前後に角括弧を付けます。
・文字列を選択しない場合
(実行前)
![](https://stat.ameba.jp/user_images/20150827/13/gidgeerock/bb/1b/p/t02200115_0432022613407956301.png?caw=800)
(実行後)
![](https://stat.ameba.jp/user_images/20150827/13/gidgeerock/53/18/p/t02200116_0424022413407956302.png?caw=800)
・文字列を選択した場合
(実行前)
末尾に半角スペースも含んでいます。
![](https://stat.ameba.jp/user_images/20150827/13/gidgeerock/58/a0/p/t02200116_0414021813407956303.png?caw=800)
(実行後)
末尾の半角スペースの前に角括弧を挿入します。
![](https://stat.ameba.jp/user_images/20150827/13/gidgeerock/c6/92/p/t02200117_0421022413407956449.png?caw=800)
▼マクロの解説
文字列が選択されているかの判定は、おなじみのTypeプロパティを使います。
英語の文字列を単語単位で選択すると、最後に半角スペースが含まれてしまいます。
その半角スペースを除外する処理が赤文字部分です。
半角スペース(Chr(32))だけではなく、タブや改行記号等も除外するようになっています。
文字の入力は、InsertBeforeとInsertAfterのメソッドで実施します。
今回は半角の角括弧で文字列を囲いますが、書き換えれば丸括弧も挿入できます。
▼マクロ
Sub 文字列の前後に括弧を付ける()
If Selection.Type = wdSelectionIP Then
Selection.Expand Unit:=wdWord
End If
With Selection
.MoveEndWhile _
Cset:=Chr(32) & Chr(9) & Chr(11) & Chr(12) & Chr(13) & Chr(14), _
Count:=wdBackward
.InsertBefore "["
.InsertAfter "]"
.Collapse Direction:=wdCollapseEnd
End With
End Sub
▼関連記事
【Wordマクロ】文字列を選択範囲の前後に挿入する