2018年02月25日

VBAワードマクロのちょっとした工夫


今回の記事を書き始めて、

ふと思った。

前回マクロについて書いたのが

約一年半前のことであった。

この間に私に何があったのか、

残念ながらほとんど記憶にない。

私の記憶はROMではなく、RAMである。

最近特にRAM化が進んでいるように思える。

翌朝目が覚めると、

なぜかメモリがクリアされている。



さて、本題に入ります。

マクロについてはブログを作成するにあたり、

機械的作業はなるべく自動処理する

方向で進めている。

今回は、

私のブログの最後に記述している、

「※画像をクリックすると拡大表示します」、

この文章追加作業の簡略化だ。

簡略化が必要なほど文書は書いてはいないが、

毎回の作業が面倒なので簡略化した。

(単純作業が続かない、飽きてしまうのが本音)

通常はテキストとして保存してある文書を、

ブログ本文下部にコピー・貼り付けしている。

その文章をマクロで本文に書きだそうと言うのだ。

プログラム内で文やデータを初期値と持つには、

作業処理の前に変数に初期値として、

書き込んでおく方法がある。

例えば、「x="1234567890abcdefg"」など。

羅列でいいのであれば多少長くとも

この方法で良いのであるが、

文章のように改行があったりすると

結果のイメージがしにくい。

見栄え良く行単位で変数に代入しようとすると、

これまた行数と変数名が増え面倒である。

変数名が増えると

その中身を取り出すのも面倒である。

そこで考えたのが、

テキストボックスを使う方法だ。

テキストボックスのプロパティ[MultiLine]を

"True"にすれば複数行を扱える。

だからメモ帳で作った文書を

そのままコピー・貼り付けできる。

改行などの体裁もそのまま引き継ぐことができる。

これは簡単である。

内容を変更したければ、

テキストボックスの内容を書き換えればよい。

後はマクロでテキストボックスの文章を抜き出し、

ワード本文への書き出せば良い。


ワードのマクロ画面の出し方は、

画面最上位にあるタブの[開発]を選ぶ。

次にタブの下の[マクロ]のボタンを押す。

ダイアログが表示されるので、

その中の[編集]を押す。

フォームやモジュールの編集画面が表示されるので、

そこで編集作業を行う。



テキストボックスを作るにはまずフォームを作成する。

メニューから[挿入]→[ユーザーフォーム]を選ぶと、

[UserForm1]と言う名のフォームが作られる。

一緒に表示されている[ツールボックス]から

[テキストボックス]を選択する。

ボタンの中に"ab"と表示され、

マウスのカーソルを上に乗せると吹き出しで、

「テキストボックス」と表示する。

[テキストボックス]のボタンを押したら、

フォーム上にマウスを持って行き、

作りたいボックスの左上角位置で

マウスの左ボタンをクリック、

クリックボタンを押した状態で

マウスを右下にずらし、

希望の大きさのボックスを作る。

これでテキストボックスが出来上がるので、

このボックスに文章を張り付ける。

textboxb.jpg



テキストボックスのプロパティ[MultiLine]を

"True"にしないと、

一行しか貼り付かないので注意する。


propertyb.jpg


テキスト読み込み関数
Function txget() As String
txget = UserForm1.TextBox1.Text
End Function

ワード本文に書き出しモジュール
Sub AddComment()
Selection.TypeText Text:=txget & vbCrLf
End Sub


上記のモジュール[AddComment]を処理に追加すれば、

文章が追加される。














※画像をクリックすると拡大表示します







posted by kaz at 00:10 | Comment(0) | TrackBack(0) | コンピュータ
リンク
access:
online:
ファン
検索
<< 2018年02月 >>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28      
最新記事
最新コメント
ドローンを修理する by kaz (03/14)
ドローンを修理する by obayashi (03/10)
タグクラウド
カテゴリアーカイブ
プロフィール