Word VBA Tips Vol.1

俺は、Officeソフトを使う機会が多い。Wordにはマクロ機能がありVBAがその全てを担っているというのは周知の事実である。最近、仕事の効率化を図るために悩んで作成したマクロプログラムがあるのでご紹介しようと思う。

このマクロは当初、20分くらいで出来るかな?とタカをくくっていたが、ネットで検索してもダイレクトな答えが見つからなかったり俺自身がプログラムを触るのが6~7年ぶりだったりで結構苦労したので、もし後続に続く方がいたときのために公開しておきます。

 

-マクロの目的-

特定の選択した文字列の両端にカッコ文字を入れる

 

実行例)

実行前: ここで筆者が言いたいそのとは何をさしているか?

実行後: ここで筆者が言いたい「その」とは何をさしているか?

 

つまり、実行例での “その” の文字をドラッグし マクロを実行して「その」にするということだ。では、注釈付でプログラムを記載しておくのでご参考に・・・

 

Sub 「」飾り()

'

' 「」飾り Macro

' 記録日 2005/XX/XX 記録者 マッキョ

'

' 選択文字列数の格納場所を宣言

 Dim X As Integer

' 選択文字列範囲の一時格納場所を宣言

 Dim Wrange As Range

' 選択文字列を文字列型として格納する場所を宣言

 Dim sentaku As String

' 選択文字列の使用を宣言

 Set Wrange = ActiveDocument.Range(Start:=Selection.Start, End:=Selection.End)

' 整合を取るため再度格納

 sentaku = Wrange

 

' 文字列の長さを取得

 X = CInt(Len(sentaku))

' 最初のカッコの挿入場所に移動

 Selection.MoveLeft unit:=wdCharacter, Count:=1

' カッコの挿入を実行

 Selection.TypeText Text:=""

' 最後のカッコの挿入場所に移動

 Selection.MoveRight unit:=wdCharacter, Count:=X

' カッコの挿入を実行

 Selection.TypeText Text:=""

End Sub

 

最後のカッコ挿入の2箇所を変更すれば種類は問わず作成可能だ。ただし複数選択には対応していないので活用時には注意してください。次回の更新でもう一つ公開します。

今日は謙虚だなぁ~俺。ふぁぁぁぁぁ~ネム・・・