• 締切済み

ユーザーホーム表示後の処理

VBAのユーザーフォームについてですが、 ユーザーフォームの表示後、このフォームが閉じられるまで、このコード(frmTest.Show)以降に記述されているコードが実行されないのですが、何とか実行する方法は無いでしょうか?

みんなの回答

  • Nayuta_X
  • ベストアンサー率46% (240/511)
回答No.3

たとえば、標準モジュールで frmTest.Show 'として置いて フォーム・モジュールで Private Sub UserForm_Activate() 'フォームを表示したら  'ここに 標準モジュールを呼び出すコードを書く End Sub または、 Private Sub CommandButton1_Click() 'コマンドボタンが押されたら 'ここに 標準モジュールを呼び出すコードを書く End Sub といった方法もありますよ。

SINSINSINS
質問者

お礼

ありがとうございます。 やってみます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

【訂正】 【誤】 'すぐ実行されない 【正】 'すぐ実行される 【誤】 'モーダルなフォームが開いている状態では開けないのでエラー 【正】 'hogeを実行した時だとモーダルなフォームが開いている状態ではモードレスなフォームは開けないのでエラー

SINSINSINS
質問者

お礼

返事遅くなってすみません。やってみます。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

==========標準モジュール========== Option Explicit Sub hoge() UserForm1.Show 0 UserForm2.Show 1 MsgBox ("ほげ") 'UserForm2が閉じられるまで実行されない End Sub Sub fuga() UserForm1.Show 0 UserForm2.Show 0 MsgBox ("ほげ") 'すぐ実行されない End Sub =========================UserForm1(CommandButton1がある)============= Option Explicit Private Sub CommandButton1_Click() UserForm2.Show 0 'モーダルなフォームが開いている状態では開けないのでエラー End Sub =====================UserForm2======== 'コードはなし。 'フォームが表示されてない状態でhogeやfugaをそれぞれ実行してみよう!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • マクロ実行時、ユーザーフォームにラベルのテキストが表示されません。

    エクセル2003VBAで、マクロ実行時にユーザーフォームを モードレス表示して、そのユーザーフォームにラベル「マクロ実行中です・・・」を貼り付けています。 しかし、処理が追いついていないのか、そのラベルが表示されません。 ユーザーフォームにはコードを記述していません。コードは以下のみです。 UserForm1.Show vbModeless テキストをTrueにしてからマクロ処理のようなコードがあるのでしょうか? お手数をおかけしますが、解決方法をご存知の方よろしくお願いいたします。

  • ユーザーフォームの表示について

    Aというブックを選ぶと車というシートが一番最初にあるのですが、 これをvbaでshowと記述しても一旦他のシートを選んでからでないと 表示されません。 ブックを開いた瞬間にユーザーフォームを表示したいのですが、何か方法はあるでしょうか? どうしてもうまくいきません。。 やりたいことは、ブックを開いたら、フォーム(自分で作ったユーザーフォーム)を開いたときから表示させたいのです。知ってる方がいたら教えてくれると助かるのですが。

  • VBAでユーザーフォームの表示を確認

    VBAでユーザーフォームが表示されていなかったら UserForm1.Show vbModeless で表示させるようなプログラムを組みたいのですが 表示されているかどうかはそのようなコードで調べることができますでしょうか?

  • 特定のセルを選択した場合にユーザーフォームを表示したい

    エクセルVBAのユーザーフォームの表示方法について、ご教授お願いします。 例えば、A1:A100を選択した場合(クリックした場合)に、ユーザーフォームを表示したいのです。 UserFofm1.Showをどこに記述すれば、よいのでしょうか? よろしくお願いします。

  • ExcelVBAでユーザーフォーム表示について

    ユーザーフォームを表示にセルに文字を書き込んだり する事はできないのでしょうか? また、ユーザーフォーム自体を、常に画面手前に表示する方法はありますか? コードの記述方法もできましたらお願いします。 よろしくお願いします。

  • 複数のユーザーフォームをコマンドボタンにて表示・非表示させるには

    VBA勉強中のものです。 複数のユーザーフォームをコマンドボタンを使用して画面への表示切替を考えております。 例)ユーザーフォーム1,ユーザーフォーム2,ユーザーフォーム3のそれぞれにコマンドボタン1,コマンドボタン2,コマンドボタン3を作成し、   コマンドボタン1→ユーザーフォーム1を表示   コマンドボタン2→ユーザーフォーム2を表示   コマンドボタン3→ユーザーフォーム3を表示 とするようなことを考えおります。  そこで、下記のようにコードを作成したのでですが,一度表示させたユーザーフォームを再度表示させようとコマンドボタンをクリックしたら、「フォームはすでに表示させているのでモーダル表示はできません」とエラーがでてしまいます。   どなたか、どのようにしたらいいかご教授ねがいます。 サンプルコード) --------------------------------------------------- 'UserForm1のコード Private Sub CommandButton2_Click() Call UserForm2_show UserForm1.Hide End Sub Private Sub CommandButton3_Click() Call UserForm3_show UserForm1.Hide End Sub ---------------------------------------------------- 'UserForm2のコード Private Sub CommandButton1_Click() Call UserForm1_show UserForm2.Hide End Sub Private Sub CommandButton3_Click() Call UserForm3_show UserForm2.Hide End Sub ------------------------------------------------------- 'UserForm3のコード Private Sub CommandButton1_Click() Call UserForm1_show UserForm3.Hide End Sub Private Sub CommandButton2_Click() Call UserForm2_show UserForm3.Hide End Sub ------------------------------------------------------------ '標準モジュール コード Sub UserForm1_show() UserForm1.Show End Sub Sub UserForm2_show() UserForm2.Show End Sub Sub UserForm3_show() UserForm3.Show End Sub

  • VBAです。ユーザーフォームの表示させ、標準モジュールを読み込ませる方法について

    こんばんわ。 教えていただけないでしょうか。。。 ワークシート上にコマンドボタンがあり、それを押すと集計を始めます。 その際にユーザーフォームで「集計中」と書いたものを表示させ、バックで集 計したいと思っておりますが、うまくいっておりません。 流れとしては、 ワークシート上に、コマンドボタンをクリックさせユーザーフォームを表示さ せる「***.show」を記述し、集計するためのコードが書いてある標準モジュー ル「module2」へ移動させる書き方をしたら、 ***.show の部分で止まってしまいました。 ***.showから集計のコードへ移すには何かコツがいるのでしょうか??? 恐れ入りますが、ご教示のほど宜しくお願いします。

  • ExcelVBA ユーザーフォームのオブジェクト名

    ExcelVBA ユーザーフォームのオブジェクト名について質問です。 Excel2003で、あるユーザーフォームのオブジェクト名を「ユーザーフォーム表示中」とし、 ユーザーフォーム表示中.Showで表示するように記述しました。 何度かテストを済ませ、他のプログラムも含めて完成したと思ったのですが、他のPCでエラー報告があり、コードを確認したところ、なぜか、ユーザーフォーム表示.Show(中の字が消えている)になっていました。 もちろん誰かが記述を変更することは考えられません。 以前、自分のPC内でも同じようなことがあり、いくら原因を探しても見つからず、ユーザーフォームのオブジェクト名を削除された記述に合わせて対処したことがあります。 これは何が原因なのでしょうか。 文字数制限か何かあるのでしょうか。

  • 'ユーザーフォーム右上隅の[×]ボタンを表示しない

    Excell VBA にて ユーザーフォーム内に[コマンドボタン]を配置し、このボタンにてユーザーフォームの消去およびその他の作業を行うコードを書い動作させています ユーザーフォームの右上隅に表示されている[×]ボタンを表示しない(又は消去する)方法をおしえてください

  • VBAで実行押すまでExcel非表示にしたい

    VBAでユーザフォームを作成しました。 Excelを立ち上げるとExcelシートの前にユーザフォームが出る状態なのですが、 ユーザフォームの実行ボタンを押すまでは非表示にしたいのですが、どのような記述をしたらよいでしょうか? マクロ的に実行ボタンを押すと結果が、Excel上に反映されるので、実行ボタンを押すまで非表示であれば大丈夫です どうか教えてください。