メモのコツを教えてください!

ユーザーフォームにテキストボックスとコマンドボタンを配置し、テキストボックスに前回入力した値を表示しようと下記のようにしたのですが、テキストボックスに1以上の数値を入力してもフォームを閉じてから再びフォームを表示したときにテキストボックスには0と表示されてしまいます。このテキストボックスの値を固定することはできないのでしょうか。

Private Sub CommandButton1_Click()
Static number As Integer
number = Me.TextBox1
Unload Me
End Sub

Private Sub UserForm_Initialize()
Static number As Integer
Me.TextBox1 = number
End Sub

A 回答 (2件)

標準モジュール上に変数numberを宣言して


Public number As Integer

ユーザーフォーム上では
Module1.number = Me.TextBox1
Me.TextBox1 = Module1.number
の様にすれば良いと思います。
    • good
    • 2
この回答へのお礼

宣言セクションにStaticを設定することができなかったので、一時的に記憶する方法が分からなかったのですが、Publicで宣言すればよかったのですね。解決しました。ありがとうございます。

お礼日時:2017/09/24 08:51

前回表示した値と同じものを表示したいなら、その値をどこかのシートのどこかのセルに格納しておいて、そこから取り出して表示する以外にないです。

ユーザーフォームのみでは、解決できません。
excelを起動した状態で、ユーザーフォームの起動/停止を行い、前回の状態を表示したいなら、標準モジュールに
public number as Intger
のように登録しておけば、それを使用できます。(excelを終了するとその値は次回起動時には引き継がれません)
    • good
    • 0
この回答へのお礼

その値を継続して使用する場合、セルに格納する方法があったのですね。
ありがとうございます。

お礼日時:2017/09/24 08:50

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A