WORDのVBA【マクロ】に悪戦苦闘する!その2・ユーザーフォーム編!

スポンサーリンク
050-VBA

へっぽこヘタレシステム管理者の管理人です。

先日に続き・・・

本日もワードのマクロ(ユーザーフォーム)に悪戦苦闘しております。

ワードのユーザーフォームについての記事はこちら

今回やりたいことですが・・・

先日の記事で・・・

ユーザーフォームのテキストボックス → コンテンツコントールに値を設定

はできるようになったのですが・・・

一度フォームを閉じて、再度表示させると・・・

ユーザーフォームのテキストボックスの値がコンテンツコントールに設定した値ではなく、フォームに設定した初期値に戻ってしまいます。

こなると・・・

一部の値を変更した場合に・・・

テキストボックスとコンテンツコントロールが多いと・・・

すべての値を再入力する必要がありかなり面倒くさいです。

このため・・・

ユーザーフォームのテキストボックス → コンテンツコントールに値を設定

した後に、再度ユーザーフォームを開く場合には・・・

コンテンツコントロールに設定した値 →  ユーザーフォームのテキストボックスに値を設定

スポンサーリンク

という具合に動く様にできたので忘備録として掲載しておきます。

情報が少なくかなり悩みましたが、実際のコードは簡単でした。

ブログランキングにご協力ください!
ブログランキング・にほんブログ村へ

ユーザーフォームからコマンドボタンを押してコンテンツコントロールに値を設定する

Private Sub CommandButton1_Click()

    ActiveDocument.ContentControls.Item(1).Range.Text = Me.TextBox1
   

End Sub

ユーザーフォームを開いた場合に、コンテンツコントロールから値を取得

Private Sub UserForm_Initialize()
    
    Me.TextBox1.Text = ActiveDocument.ContentControls.Item(1).Range.Text
    
End Sub

今回の場合、コンテンツコントールは【item(no)】で指定する様ですが・・・

前回は【タイトル】を使っていたので、同じように【タイトル】を使って指定しようとして上手く動きませんでした。

ちなみにユーザーフォームを開くコードは・・・

Private Sub CommandButton1_Click()

    UserForm1.Show

End Sub

ユーザーフォームを閉じるコードは・・・

Private Sub CommandButton1_Click()

    Unload UserForm1

End Sub

コマンドボタンの番号は適宜変更してください。

ブログ開設に必要なドメイン取得、サーバーレンタル、ASPの登録等は、こちらのサイトから!

コメント

タイトルとURLをコピーしました