選択した範囲の前後に「」をつけるWord VBA

一人事務所を大阪で営む税理士のブログ | 選択した範囲の前後に「」をつけるWord VBA

WordのVBAで選択した文字の前後に
「」(カッコ)をつけるマクロを作ってみましょう。

基本的なものですが、変数の定義から
選択した場所の前後を指定して
処理する方法がわかります。

VBAは組み合わせて使うので、
一つがわかると次につなげて使えます。

一人事務所を大阪で営む税理士のブログ | 選択した範囲の前後に「」をつけるWord VBA

もくじ

プロシージャの名前を決める

VBAを作るときには、まずプロシージャの
名前を決めます。

プロシージャとは「手順」の意味です。

プロシージャの名前を決めるときは、

Sub プロシージャ名()

となります。

SubはSubroutineの略です。

ルーチン(決まった仕事)の
Sub=小さい集まりと理解すると
わかりやすいでしょう。

VBAで決まった手順を作る際に
何個にも分割できます。

その際の小さいまとまりを作りましょう
というのが意図です。

subと書い後に半角スペースを入れた後
アルファベットか数字の文字列を
スペースなしで入力してEnterを押すと
()とEndが自動で入力されます。

こんな感じになります。

Sub test()    End Sub

プロシージャ名はわかりやすく

今回はテストなのでSampleでも
いけますが、プロシージャ名は
わかりやすくしましょう。

英語でつけてもいいですし、
ローマ字羅列でもいいです。

自分がわかることが大切です。

プロシージャ名は文字列の連続で
ある必要がありますので、
間にスペースを入れられません。

大文字小文字で節目をつけます。

英語の場合を考えると、
カッコ(Brackets)を付ける(Add)ので、
AddBracketsが一例です。

日本語の場合はローマ字で
切れ目を大文字にします。
KakkoTsukeruとかでどうでしょうか。

プロシージャ名は今回
KakkoTsukeruで進めます。

ここまででプログラムは

Sub Kakkotsukeru()    End

となりました。

()とEndはここでは飾り程度に理解しておきます。

変数を定義する

変数は、昔 数学でxやyと置いたように
後で何を入れても個別計算をし直さなくて
いいように定義するものです。

3x + 2y + 5x + 4yのようにあって
個別に計算するよりも、
加算し終えて8x + 6yのように
した方が早いですので。

変数はdimで定義します。
dimはDimension(次元)の略です。

Fortranなどで、プログラムは次元を
設定することからの名残のようですね。

変数を定義するときは何をその中に
入れるかも合わせて定義します。

数字が入るのか、少数以下がある数字なのか、
文字列なのか、Yes/Noなのかなどです。

今回は文字列を指定しますので、
Stringという表現です。

変数の名前もプロシージャと同じで
なんでもいいですが、わかりやすいことが
大切です。

s(文字列ですよ)+Start(始まり部分ですよ)
という意図で、今回はsStartと名付けました。

Tabで頭を下げておくと見やすいです。
Tab下げして、Dim変数名 As Sとまで書くと、
Stringの候補が出てきます。

ちゃんと書けなくても気にせず動かしてみましょう。

Sub test()        Dim sStart As String        End Sub

合わせて、sEndも付け加えておきます。

結果このようになりました。

Sub test()        Dim sStart As String      Dim sEnd As String        End Sub

ついでに、sStartとsEndに”「”と”」”を
入れておきます。

今は、2つの変数の中身は空っぽですから。

代入するには=を使います。

左の変数 = "右の文字列"

=は、「左の変数」に、「右の文字列」を代入する意味です。

sStart = "「"  sEnd = "」"

このように書けば、
sStartに「を代入する、
sEndに」を代入する意味です。

文字列は” “で囲っておきます。

挿入を記述する

選択した範囲のテキストの前後に

一人事務所を大阪で営む税理士のブログ | 選択した範囲の前後に「」をつけるWord VBA

「」をつけるVBAです。
こちらが、出来上がりの様子です。

一人事務所を大阪で営む税理士のブログ | 選択した範囲の前後に「」をつけるWord VBA

選択した範囲というのは、
Selectionという単語で指定できます。

Selection.で、Selectionの内容に
という程度で今は理解しておきます。

「InsertBefore」で、その前に
挿入するという、そのままの意味です。

半角を空けてsStartと書くと、
選んだ部分の前に挿入=sStart=「という意味です。

Selection.InsertBefore sStart

後に挿入するのは、
InsertAfterです。

これらを合わせて全体を書くと
このようになります。

Sub KakkoTsukeru()      Dim sStart As String      Dim sEnd As String                    sStart = "「"          sEnd = "」"        Selection.InsertBefore sStart      Selection.InsertAfter sEnd        End Sub

まとめとして

プロシージャ、変数設定
選択部分について設定することを
学びました。

できる人には物足りないかも
しれませんが、基本例です。

VBAはEXCELでも似たような
やり方を使うことができますよ。

 

【編集後記】
ヒーローアカデミア ヒーローズライジング
レンタルで見ました。

メインの主人公はいますが、
それぞれが活躍の場を持った構成になっていて
色々な角度から楽しめました。

【運動記録】
ジョギング○ ストレッチ○ 筋トレ○ サプリ○

【子育て日記(3歳)】
外出のときに、途中まで一緒に見送ってくれました。
「いっしょにいく~」と言われると、
どこまでで区切ろうか迷います。

そのうち送ってくれなくなるときが来るので、
今のうちは少しでも一緒を楽しみたいなと。

もくじ