|
新たな疑問にもお付き合い下さり有り難うございます。
1.変数dataの宣言はどうしていますか?
2.data = Form入力.ListBox1.Value
は、ユーザーフォームモジュールで処理するコードではないのでしょうか?
Form入力.Showした時点で、ユーザーフォームモジュールに処理が移動し、
ユーザーフォームを閉じた後に、
data = Form入力.ListBox1.Value
が実行されますが、すでに手作業でUFは閉じられていますよね?
そのあとに、 Unload Form入力 しているのもよく分かりません。
3.ユーザーフォームとそれ以外のプロシージャのコードの実行順序は
把握されていますか?
----------------------------------------------
1.について、dataは今のところ変数の宣言はしていません。問題ないと思います。
2.について、当初はForm入力の中にcells(行,列)= Form入力.ListBox1.Valueを入れていましたが、Form入力の中でListBox1.Valueをセル代入したくないのです。
セルに代入する前にListBox1.Valueと同じ値がシート上にあるかを点検しているためです。
それと、sheet1に値が変化したときに働くイベントブロージャPrivate Sub Worksheet_Change(ByVal Target As Range)があるため、これが動き出す前に点検したいのです。
Unload Form入力はForm入力をリセットするためです。
そうしないと別のセルで前回と同じ値が入力できないからです。
Unload Form入力 'Form入力をリセット
Form入力.Show
でも動作します。この方がいいかなと思っています。
なぜFLAGに代入したのに、Unload Form入力を
If FLAG = 1 Then Cells(行, 列) = data
の後にしなければいけないのか。
3.について、ユーザーフォームとそれ以外のプロシージャのコードの実行順序は、今のところ2.の関係で変更なしでやることにしています。
当初の問題は解決しましたので助かっています。
|
|