アフィリエイト広告を利用しています

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 オーナー (02/06)
オレンジ色の猫が by 翠星石 (01/23)
ドローンを修理する by kaz (03/14)
ドローンを修理する by obayashi (03/10)
タグクラウド
カテゴリアーカイブ
プロフィール