- ベストアンサー
ユーザーフォームにあるチェックボックスやオプションボタンなどの選択結果保存
VBA初心者で恐縮です・・・ ユーザーフォームにあるチェックボックスやオプションボタンなどの選択して作業を終えファイルやユーザーフォームを閉じると、次にファイルやユーザーフォームを開いたら、前回にチェックボックスやオプションボタンにチャックをいれたものが外れています。 このように、チェックボックスやオプションボタンにチェックをいれたのを、次回ユーザーフォームを開いたときに残しておくことは可能でしょうか? 可能なら、その方法をお教えください。 よろしく、お願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
コントロールの状態を、シートに保存しておく方法はいかがでしょうか フォームを閉じる時にシート(dataという名前をつけています)に保存し、フォームを開く時に、値を読み込みます。(チェックボックス、オプションボタン、トグルボタン、テキストボックスで動作を確認しました。思いつきで作成したもので、普段使い込んでいるコードではありませんので、誤動作したら悪しからず。当方XL2000です) '☆標準モジュール Sub test() UserForm1.Show End Sub '☆ UserForm1のモジュール Private Sub UserForm_Initialize() Dim srcRange As Range Dim myCell As Range Set srcRange = ThisWorkbook.Sheets("data").Range("A1").CurrentRegion For Each myCell In srcRange.Columns(1).Cells Me.Controls(myCell.Value).Value = myCell.Offset(0, 1).Value Next myCell End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Dim myCtrl As Control Dim destRange As Range Set destRange = ThisWorkbook.Sheets("data").Range("A1") destRange.Parent.Cells.Clear For Each myCtrl In Me.Controls With destRange .Value = myCtrl.Name .Offset(0, 1).Value = myCtrl.Object.Value End With Set destRange = destRange.Offset(1, 0) Next myCtrl End Sub
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
たとえば次のように処理してはいかがでしょう。 UserForm1.Hide
お礼
mitarashiさん ありがとうございました。 お教えいただいたコードで問題は解決しそうなのですが、このコードを使用するとファイルに保存ができなくなってしまい途方にくてます・・ このコードのどこをどう直せば保存可能になるのか、いろいろとやってみましたが、どうもわかりません・・ 大変、何度もお手数をおかけして誠に申し訳ございませんが、どこを直せば、保存できるようになるかお教えいただきたく思います。。。