2018年02月25日
VBAワードマクロのちょっとした工夫
今回の記事を書き始めて、
ふと思った。
前回マクロについて書いたのが
約一年半前のことであった。
この間に私に何があったのか、
残念ながらほとんど記憶にない。
私の記憶はROMではなく、RAMである。
最近特にRAM化が進んでいるように思える。
翌朝目が覚めると、
なぜかメモリがクリアされている。
さて、本題に入ります。
マクロについてはブログを作成するにあたり、
機械的作業はなるべく自動処理する
方向で進めている。
今回は、
私のブログの最後に記述している、
「※画像をクリックすると拡大表示します」、
この文章追加作業の簡略化だ。
簡略化が必要なほど文書は書いてはいないが、
毎回の作業が面倒なので簡略化した。
(単純作業が続かない、飽きてしまうのが本音)
通常はテキストとして保存してある文書を、
ブログ本文下部にコピー・貼り付けしている。
その文章をマクロで本文に書きだそうと言うのだ。
プログラム内で文やデータを初期値と持つには、
作業処理の前に変数に初期値として、
書き込んでおく方法がある。
例えば、「x="1234567890abcdefg"」など。
羅列でいいのであれば多少長くとも
この方法で良いのであるが、
文章のように改行があったりすると
結果のイメージがしにくい。
見栄え良く行単位で変数に代入しようとすると、
これまた行数と変数名が増え面倒である。
変数名が増えると
その中身を取り出すのも面倒である。
そこで考えたのが、
テキストボックスを使う方法だ。
テキストボックスのプロパティ[MultiLine]を
"True"にすれば複数行を扱える。
だからメモ帳で作った文書を
そのままコピー・貼り付けできる。
改行などの体裁もそのまま引き継ぐことができる。
これは簡単である。
内容を変更したければ、
テキストボックスの内容を書き換えればよい。
後はマクロでテキストボックスの文章を抜き出し、
ワード本文への書き出せば良い。
ワードのマクロ画面の出し方は、
画面最上位にあるタブの[開発]を選ぶ。
次にタブの下の[マクロ]のボタンを押す。
ダイアログが表示されるので、
その中の[編集]を押す。
フォームやモジュールの編集画面が表示されるので、
そこで編集作業を行う。
テキストボックスを作るにはまずフォームを作成する。
メニューから[挿入]→[ユーザーフォーム]を選ぶと、
[UserForm1]と言う名のフォームが作られる。
一緒に表示されている[ツールボックス]から
[テキストボックス]を選択する。
ボタンの中に"ab"と表示され、
マウスのカーソルを上に乗せると吹き出しで、
「テキストボックス」と表示する。
[テキストボックス]のボタンを押したら、
フォーム上にマウスを持って行き、
作りたいボックスの左上角位置で
マウスの左ボタンをクリック、
クリックボタンを押した状態で
マウスを右下にずらし、
希望の大きさのボックスを作る。
これでテキストボックスが出来上がるので、
このボックスに文章を張り付ける。
テキストボックスのプロパティ[MultiLine]を
"True"にしないと、
一行しか貼り付かないので注意する。
テキスト読み込み関数
Function txget() As String
txget = UserForm1.TextBox1.Text
End Function
ワード本文に書き出しモジュール
Sub AddComment()
Selection.TypeText Text:=txget & vbCrLf
End Sub
上記のモジュール[AddComment]を処理に追加すれば、
文章が追加される。
※画像をクリックすると拡大表示します
タグ:ワード,マクロ,VBA
【このカテゴリーの最新記事】
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/7358836
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック