街中で見かけて「グッときた人」の思い出

VBA初心者で恐縮です・・・

ユーザーフォームにあるチェックボックスやオプションボタンなどの選択して作業を終えファイルやユーザーフォームを閉じると、次にファイルやユーザーフォームを開いたら、前回にチェックボックスやオプションボタンにチャックをいれたものが外れています。
このように、チェックボックスやオプションボタンにチェックをいれたのを、次回ユーザーフォームを開いたときに残しておくことは可能でしょうか?
可能なら、その方法をお教えください。
よろしく、お願いいたします。

A 回答 (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
    • good
    • 0
この回答へのお礼

mitarashiさん
ありがとうございました。
お教えいただいたコードで問題は解決しそうなのですが、このコードを使用するとファイルに保存ができなくなってしまい途方にくてます・・
このコードのどこをどう直せば保存可能になるのか、いろいろとやってみましたが、どうもわかりません・・
大変、何度もお手数をおかけして誠に申し訳ございませんが、どこを直せば、保存できるようになるかお教えいただきたく思います。。。

お礼日時:2009/08/09 23:40

たとえば次のように処理してはいかがでしょう。


UserForm1.Hide
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!