![見出し画像](https://assets.st-note.com/production/uploads/images/20028508/rectangle_large_type_2_3772e70f08a0ad471b728460c0159e2c.jpeg?width=1200)
Word VBAを使ってみる
環境によってはやたらめったら半角カナを多用する資料作りをさせられる人もいるだろうが、面倒なのは全角との混在である。
まあ、ワイルドカードで検索する技能さえあれば標準機能でなんぼでも全角半角の変換は出来るわけだが、せっかくだしVBAでどうやるのか試してみたい。
ほぼExcelで資料作成を強いられる環境においてはWordの利用頻度は低いのでいい機会だ。
単にSelectionを指定するのも味気ないので段落単位で変換してみようと思った。
ThisDocumentモジュールに記載するとして、半角に変えるなら以下のような感じか
Dim i As Long
With Me.Paragraphs
For i = 1 to .Count
With .Item(i)
.Range = StrConv(.Range, vbNarrow)
End With
Next i
End With
特にリファレンスも開かず適当に試したのでもしかしたらもっと簡単なやり方があるかもしれない。
少しトライ&エラーしたポイントは、段落を指定するときにそこに含まれる文字列はParagraphオブジェクトそのものではなくて.Rangeプロパティを指定しないといけないっぽい。
Excel VBAだとしばしば.Valueが省略可能なので、オブジェクトとプロパティがごっちゃになった感覚だが、Wordはまた少し訓練が必要そう。
今回の話と直接関係ないが、ちなみに下の2つは同じ意味になる。
Paragraphs(i)
Paragraphs.Item(i)
Withステートメントで分けたい場合はItemを使って書くのが良い。この記法はCollectionオブジェクトならだいたい通用するはず。
まあ、実務ではワイルドカード使って検索したほうがはるかに効率的だと思う。
そもそもWord VBAなんてあんま世の中に普及してないんじゃないかと思ったが調べるとちゃんと何冊か本があった。
この著者は「Wordで作ったWordの本」ということで有名らしい。
ざっと調べた限りではコンテンツも良さそうなのでお小遣いが貯まったら買ってもいいかも。
(我が家は去年からお小遣い制になったのだが、そのおかげで衝動買いとか浪費癖が抑制されつつある。最初は「どんなに残業してもワシ固定給?!」とあまり納得してなかったものの、結果として不要なものにお金を使わなくなったことで足るを知り、冷静な判断が出来るように成長したので今では妻に感謝している)
いいなと思ったら応援しよう!
![タナイ](https://assets.st-note.com/production/uploads/images/172553734/profile_b88f06107b7ac8d99fd1082432949e71.jpg?width=600&crop=1:1,smart)