トップページ > プログラム > 2015年03月30日 > FGaX9eOv

書き込み順位&時間帯一覧

32 位/195 ID中時間01234567891011121314151617181920212223Total
書き込み数0000001010000000000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net

書き込みレス一覧

Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
869 :デフォルトの名無しさん[sage]:2015/03/30(月) 06:26:45.49 ID:FGaX9eOv
>>868
何でPublicで宣言してはいけないのかをよく考えなければいけない。
変数を直接外部参照されたくないと言うのなら、Publicなプロパティを設定して維持する値をPrivateに指定すればいい。
そしてUserForm2は使うとき、明示的に生成して、使わなくなったら明示的に解放する。
生成するときに直接生成するのではなく、一つ関数を作ってその中で生成とプロパティへの値の受け渡しを行う。
VBAではコンストラクタに引数を渡すことが出来ないので、そのようにしてフォームからフォームへの値の引継ぎを行う。
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
872 :デフォルトの名無しさん[sage]:2015/03/30(月) 08:30:29.30 ID:FGaX9eOv
>>870
なんかさー、処理と値をごっちゃに考えてない?
今回の論点はフォームの値引継ぎな訳であって、ややこしいのどうのは関係ないと思う。
引き継がれた値を使用する側のFormはその下にどんな複雑な処理有ろうが、サービス層が有ろうが
ビジネスロジック層が有ろうが関係ない。それは値を受け取った側のフォームの役割だから。
その中で共通化するなら共通部品を呼び出してもいいけど、そこで値を抱えると言うのもまた役割が違う。
ましてや、標準モジュールでUserForm1がHideになった時ってのを見てるってことは、挙動にまで影響してるじゃない。UserForm1を表示したままUserForm2を表示したかったらどうするの?
それと、UserForm2のコントロールに値を設定するのは、
UserForm1の役割でも標準モジュールの役割でもないと思うんだけど。
クラス構成が理解出来ないと言うのであれば、まだ単純にUserForm2にプロパティ作って渡してやった方がマシ。
プロパティの作り方が分からないと言うのであれば、UserForm2に引き渡したい値を引数で受け取って、
それをモジュールレベルスコープの変数に格納する関数を作ればいいだけ。
難しく考え過ぎなんだよ。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。