- 締切済み
ユーザーフォームのHide,showメソッド
ExcelのVBAでユーザーフォームをHideメソッドで非表示にして、 showで再表示すれば、状態が保存されたまま表示されるはずですが、 ユーザーフォーム表示中またはHideメソッドで隠した後に コマンドボタン等が配置されたシートを削除したときは、showで再表示しても、 ユーザーフォームの状態が保存されていません。 これはどうしてでしょうか? また解決策等ありましたら、教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hige_082
- ベストアンサー率50% (379/747)
回答No.2
どうやっても、症状が再現しません 非表示の、コード、手順の詳細があれば、分かるかもしれない 回避策は、セルや変数に値を保存するぐらいしかないね
- hige_082
- ベストアンサー率50% (379/747)
回答No.1
userformのtextbox、listBox、comboBoxなどの値が消えるのかな プロパティのControlSourceにセルを設定していませんか だとしたら、ControlSourceはセルにリンクを張るだけなので リンク先があるシートが削除されれば値は消えます 値を保持するなら、どこかで意識的に値をvalueに代入しなければいけません 一例 'ボタンを押したら Private Sub CommandButton1_Click() TextBox1.Value = ActiveSheet.Range("a2").Value End Sub 'userformを表示する時 Private Sub UserForm_Initialize() TextBox1.Value = ActiveSheet.Range("a1").Value End Sub 外したら、無視して
補足
TextBox1.Value = ActiveSheet.Range("a2").Value この例のようにValueに代入していますし、削除するシートもフォームに代入 するデータがあるシートとは別のシートです。