
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんばんは、横から失礼します。
フローがイマイチわかりませんが、たぶん
UserForm1のUserForm_QueryCloseでUserForm2.Showを実行しているのでしょうか?そうだと想定して考えると、
UserForm2のOKボタンとCancelボタンがあるとした場合、[×]ボタンは不要なので
UserForm2の[×]を無効にします。
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
Cancel = True
MsgBox "[×]ボタンは使用できません。"
End If
End Sub
UserForm1のUserForm_QueryCloseでUserForm2.ShowならUserForm1が閉じる前なのでCancelすればよいのですが、わかり易い方法としては、
Public変数を使用する方法です。
Public変数は、標準モジュール宣言エリアに書きます。例として
Option Explicit
Public flag As Boolean
これを使用して
UserForm2の キャンセルボタン
Private Sub CommandButton2_Click()
flag = True
Unload Me
End Sub
UserForm1の
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
UserForm2.Show
If flag = True Then Cancel = True
End Sub
UserForm1を閉じる場合はflag = False を設定する必要があります。
UserForm2をUserForm_QueryCloseで呼ばなければ、もっとシンプルに出来るかと思いますが、参考まで、、

No.2
- 回答日時:
複数のユーザーフォーム開いた状態で閉じるとそんな事になってしまうのでしたっけ。
私の認識違いだったようで、申し訳ありません。
私からは力技的な対処法しか提案できませんが…。
ユーザーフォームの入力項目分のグローバル変数を用意して、閉じるボタンをクリックしたときにその変数に入力項目を全てコピーしておきます。
キャンセルされた時はunload Userform2で両画面とも閉じますが、この直後にUserform1をShowして、グローバル変数に保持していた内容をUserform1にセットしては如何でしょう。
もっと良い方法があれば良いのですが。

No.1
- 回答日時:
現状の動きでは、
ユーザーフォームの閉じるボタンをクリックすると、ユーザーフォームが閉じて、パスワード入力フォームが現れるという事でしょうか?
であれば方法は2つで、
閉じるボタンがクリックされた時に、ユーザーフォームをさはそのままにして、パスワード入力フォームが現れるようにする。
記憶が曖昧ですが、確か閉じるボタンの処理って強制的に閉じてしまうのではなく、自分で記述しないと何も起きませんでしたよね?
もしユーザーフォームを表示させておきたくないのでしたら、visibleだけfalseにすれば良いです。
パスワード入力フォームでキャンセルボタンがクリックされた時は、これをtrueに戻せば元通りです。
若しくは、ユーザーフォームのキャンセルボタンがクリックされた時に、ユーザーフォームの内容をグローバル変数などに保持しておく事です。
パスワード入力フォームでキャンセルボタンがクリックされた時は、再度ユーザーフォームを表示して、保持しておいた情報をユーザーフォーム上に復元してあげれば良いです。
回答ありがとうございます。
動きとしては閉じるボタンを押すとユーザーフォームは開いたままパスワード入力画面が出てくるような感じです。
パスワードを入力すれば全て閉じます。
パスワード画面のみを閉じてユーザーフォームに戻りたいのですが、Userform1.Showにするとすでに開いていますと出てしまい、機能しないんです。
パスワード画面を閉じるようにunloadUserform2にしても全て閉じてしまいます。
わかりにくくてすいませんが、よろしくお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) accessについて(超初心者です) 1 2023/02/11 11:18
- その他(ブラウザ) 自分のデフォルトゲートウェイをアドレスバーに入力し、Enterキーを押します。(一般的なデフォルトゲ 4 2022/05/30 22:43
- その他(ブラウザ) ・再投稿です 自分のデフォルトゲートウェイをアドレスバーに入力し、Enterキーを押します。(一般的 1 2022/05/30 23:16
- Visual Basic(VBA) VB.net フォーム 親子 1 2022/07/04 19:00
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
このQ&Aを見た人はこんなQ&Aも見ています
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
5
UserForm1.Showでエラーになります。
工学
-
6
ユーザーフォームのテキストボックスに前回入力した値を表示する Excel
Visual Basic(VBA)
-
7
別のユーザーフォームのコマンドボタンを押す
Visual Basic(VBA)
-
8
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
9
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
10
VBAにて『元に戻すボタン』を作りたい
Visual Basic(VBA)
-
11
VBAでInputBoxの再入力をさせるには?
Visual Basic(VBA)
-
12
VBAで別モジュールへの変数の受け渡し方法
Visual Basic(VBA)
-
13
ユーザーフォームでTextBox1にカーソルを移動したい
Excel(エクセル)
-
14
Access VBAで行ラベルが定義されていないというエラーが出ます
Access(アクセス)
-
15
テキストボックスの中身をリセット(クリア)したい
Visual Basic(VBA)
-
16
モーダルフォームとモードレスフォーム
Visual Basic(VBA)
-
17
エクセルVBAのフォームを最前面にする方法を教えてください。
Visual Basic(VBA)
-
18
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
19
エクセルVBA テキストボックスへのセットフォーカスについて
Visual Basic(VBA)
-
20
Excel VBAで、ユーザーフォームの値を、モジュールで使用したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
verify@twitter.comから、メー...
-
Steamのアカウントにログインで...
-
「@」(アットマーク)の無いメ...
-
メアドをコピペしたときの〈 ...
-
ユニクロやGUのシフト管理アプ...
-
インスタの捨て垢で友達のスト...
-
カカオトークを退会せずにアン...
-
メールを返信したら、英語のメ...
-
インスタの乗っ取り解除につい...
-
YouTubeが毎回ログインしないと...
-
カカオで退会せずに、アプリだ...
-
「そのメールアドレスはすでに...
-
休みが明けてメールをみたらや...
-
steam版 apexのログアウト方法...
-
不正ログインされました。対応...
-
携帯電話を解約してもSMSの受信...
-
韓国人アドレスnaver.com
-
pixivで新規登録しようと思い、...
-
メールエラー
-
~@live.jpのメール受信につい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルにユーザー名...
-
Steamのアカウントにログインで...
-
CSVファイルを添付するときにパ...
-
メールを返信したら、英語のメ...
-
ユニクロやGUのシフト管理アプ...
-
runas実行した時にきかれるパス...
-
YouTubeが毎回ログインしないと...
-
インスタの乗っ取り解除につい...
-
「そのメールアドレスはすでに...
-
携帯電話を解約してもSMSの受信...
-
カカオで退会せずに、アプリだ...
-
「@」(アットマーク)の無いメ...
-
ワードに入力したメールアドレ...
-
不正ログインされました。対応...
-
カカオトークを退会せずにアン...
-
インスタのアイコンについてるN...
-
pixivで新規登録しようと思い、...
-
存在しないアドレスにメールを...
-
メールアドレスを人に教えるの...
-
Access ファイルの権限を設定...
おすすめ情報