A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No2です。
>FormAはModelessで表示しています。
であれば、
>If (FormA.Visible = True) Then
によって、表示状態であれば初期状態に戻ることはないはずです。
>Initialize() の実行は、Visible属性の参照では実行されないものとロジックを
>組み立てていたので、その変更を余儀なくされていて~~
ですので、ロジック自体には問題ないと思いますし、フォーム上のコントロールの値を取得することも可能です。
ただし、No2にも記したようにそのタイミングが難しいと思います。
勝手に、想像するところでは、ユーザが入力等の操作をする前に値を取得しようとしていませんか?
そのあたりの制御をどのようになさっているのか不明ですけれど・・
No.2
- 回答日時:
こんにちは
試してみましたが、フォームが非表示の場合には、Visible属性を参照すると Initialize() が実行されているようです。
しかしながら、
>If (FormA.Visible = True) Then
で確認する必要があるということは、フォームをModelessで表示しているということですよね?
その場合であれば(表示されていれば) Initialize() は実行されないようです。
ですので、ご質問のケースの場合「表示されていれば」の処理のようですので、問題にはならないと想像しますけれど・・?
一方で、Modeless表示の場合は、VBAはそのまま処理を続けますので、普通にベタに記述しているのならば、フォーム内の値を取ろうとしても、表示した際の初期値が返ってくることになるでしょう。
ユーザの入力を検知する等の処理を行いたいのであれば、フォームのプロシージャに記載するか、あるいは入力が済むのを待ってから実行を継続するなり、別の処理として実行するなりにしておかないと入力値を取得するのは難しいと思われます。
サポートありがとうございます。
FormAはModelessで表示しています。
Initialize() の実行は、Visible属性の参照では実行されないものとロジックを組み立てていたので、その変更を余儀なくされていて、質問さてている頂いている次第です。
よろしくお願いします。
No.1
- 回答日時:
こんにちは
仕様のようですが・・・素朴な疑問として
FormA.Visible が通ると言う事は 対象のユーザーフォームがあるブックで実行すると言う事でしょうか、FormA.Showで表示されている時にFormAのコントロールから実行するのかな・・・そんな事ないですよね
何処から If (FormA.Visible = True) Then を実行するのかしら・・
実行トリガーはともかくとして 例えば 同じブックから実行するのなら
Dim fm As UserForm
For Each fm In UserForms
If TypeOf fm Is FormA Then
MsgBox "表示済み"
End If
Next
こんなので取得できそうかな
回答ありがとうございます。
本件、同じブックのことです。
示して頂きましたフォームの有無判定の方法は、使用させて頂きたいと思います。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) VB.net 2 2022/08/23 22:07
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 10:07
- Windows 10 表示をさせないようにする方法を教えてください 4 2023/03/17 20:12
- システム システムで表示させない方法があるのでしょうか。 1 2023/03/17 20:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
6
エクセルVBAのフォームを最前面にする方法を教えてください。
Visual Basic(VBA)
-
7
Formの表示状態の取得
Visual Basic(VBA)
-
8
VBAのTextBoxに半角数字のみ入力したい
Visual Basic(VBA)
-
9
Vba Userformを前面に出すについて
Access(アクセス)
-
10
フォームのアクティブと非アクティブ表示について
Visual Basic(VBA)
-
11
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
12
ユーザーフォーム上にアイコンの表示
Visual Basic(VBA)
-
13
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
14
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
15
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
16
エクセルVBAでマルチページの切り替え方法の件で
Excel(エクセル)
-
17
Excel VBA:フォーム←→セルのアクティブ切り替え
Excel(エクセル)
-
18
VBA ユーザーフォームのChangeイベントを停止したい
Access(アクセス)
-
19
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
20
どこにもフォーカスを当てたくない
Access(アクセス)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA 作業後に選択範囲...
-
エクセル マクロ 別シートから...
-
最小化ボタンで最小化したフォ...
-
Excelのマクロ実行後に動作が重...
-
円の中に等間隔に線を引くには
-
VBAでのユーザフォームの表示有...
-
excel2010でボタンが反応しなく...
-
質問2回目になっちゃいます ex...
-
ExcelVBAで毎月月初の最初にBoo...
-
ACCESSで別DBにあるクエリを...
-
Makefileのechoの展開について
-
ie6を使って自分が見ているサイ...
-
エクセル VBA
-
Sub Auto_Open() 実行されない
-
ワードで、グレーの部分しか入...
-
エクセルでの6ヶ月平均の出し方
-
エクセルで条件をつけて図形を...
-
フルスクリーンモードで開いたP...
-
認証コードの入力の仕方教えて...
-
荒野行動の引き継ぎについて質...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA 作業後に選択範囲...
-
別のフォームで記述している関...
-
Sub Auto_Open() 実行されない
-
VBAでのユーザフォームの表示有...
-
ACCESSで別DBにあるクエリを...
-
GetAsyncKeyState() を利用する...
-
ascW関数の結果がおかしい
-
Excel vba 条件分岐 空白セルが...
-
エクセル マクロ 別シートから...
-
Excel VBAのステップイン
-
ステップモードの動作確認方法
-
Excelで、チェックボックスにチ...
-
ExcelVBAで毎月月初の最初にBoo...
-
ExcelVBA ドロップボックスで月...
-
Excelのマクロ実行後に動作が重...
-
円の中に等間隔に線を引くには
-
メニューバーのイベントが2回...
-
最小化ボタンで最小化したフォ...
-
MATLABの乱数生成関数 rand( ) ...
-
続き…エクセルvba ①SUBメニ...
おすすめ情報