コントロールの状態を、シートに保存しておく方法はいかがでしょうか
フォームを閉じる時にシート(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
お礼
mitarashiさん ありがとうございました。 お教えいただいたコードで問題は解決しそうなのですが、このコードを使用するとファイルに保存ができなくなってしまい途方にくてます・・ このコードのどこをどう直せば保存可能になるのか、いろいろとやってみましたが、どうもわかりません・・ 大変、何度もお手数をおかけして誠に申し訳ございませんが、どこを直せば、保存できるようになるかお教えいただきたく思います。。。