へっぽこヘタレシステム管理者の管理人です。
先日に続き・・・
本日もワードのマクロ(ユーザーフォーム)に悪戦苦闘しております。
今回やりたいことですが・・・
先日の記事で・・・
ユーザーフォームのテキストボックス → コンテンツコントールに値を設定
はできるようになったのですが・・・
一度フォームを閉じて、再度表示させると・・・
ユーザーフォームのテキストボックスの値がコンテンツコントールに設定した値ではなく、フォームに設定した初期値に戻ってしまいます。
こなると・・・
一部の値を変更した場合に・・・
テキストボックスとコンテンツコントロールが多いと・・・
すべての値を再入力する必要がありかなり面倒くさいです。
このため・・・
ユーザーフォームのテキストボックス → コンテンツコントールに値を設定
した後に、再度ユーザーフォームを開く場合には・・・
コンテンツコントロールに設定した値 → ユーザーフォームのテキストボックスに値を設定
という具合に動く様にできたので忘備録として掲載しておきます。
情報が少なくかなり悩みましたが、実際のコードは簡単でした。
ユーザーフォームからコマンドボタンを押してコンテンツコントロールに値を設定する
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
コマンドボタンの番号は適宜変更してください。
コメント