
No.2ベストアンサー
- 回答日時:
難しい質問ですね。
ご自身で参考にしたコードがあるのでしょうか。
ModalMode に関しては、なんとも言えないのは、UserForm 上で、Lable に命令を出しているからです。
それがなければ、後は補填するだけで済みます。
なお、Sleep を使っていらっしゃるようですが、Sleep 自体は、Win API ですから、もちろん、エラーが出ているはずです。
Load UserForm1
UserForm1.Label1.Caption = "ABC"
UserForm1.Show
Sleep 2000 --ここまでで、UserForm のメモリが安定しないので、Label の操作ができないのではないでしょうか。
ふつう、自己消去型のメッセージは、Win API を利用するのですが、UserForm を活かすなら、
Sub test2()
Application.OnTime Now + TimeSerial(0, 0, 2), "UserFormColse"
With UserForm1
.Label1.Caption = "ABC" 'マクロが一定の終了をしないと出てこない
.Show 'vbModeless 'この場合は、どちらでもよい。
End With
End Sub
Sub UserFormColse()
Unload UserForm1
End Sub
Label.Caption ="ABC" がなければ、問題はSleep の部分と余分な部分を切り落とすだけです。
こんなふうにしか私は思いつかなかったです。
その代用品として、このようなコードがあります。
Private Declare Function MessageBoxTimeoutA Lib "user32" (ByVal hWnd As Long, ByVal _
lpText As String, ByVal lpCaption As String, ByVal uType As Long, ByVal _
wLanguageId As Long, ByVal dwMilliseconds As Long) As Long
Sub TimeOutMessage()
MessageBoxTimeoutA 0&, "ABC", "メッセージ", vbMsgBoxSetForeground, 0, 2000 '2秒
End Sub
参考まで。
早速有り難うございました。
全て了解です。
確かに、
>UserForm 上で、Lable に命令を出しているからです。
このとおりで、無ければ1番の方のとおりに動きました。
結局、例示いただいたように一度マクロを終了する必要があるのですね。
msgbox を入れてみたらlableが表示されました。
また、代用品ですが、これは持っていましたが、
今回はユーザーフォームの勉強なので別とします。
なお、sleepはお手数をかけてしまいましたが、
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)は書いてありました。
お世話になりました。
No.1
- 回答日時:
VBAのヘルプには、次のように記載されています。
ユーザー フォームがモードレスのとき、次のコードは中断されずに継続して実行されます。
ユーザー フォームがモーダルの場合、アプリケーション内の他の部分を使用する前に、ユーザーは必ず応答する必要があります。ユーザー フォームを非表示にするか、またはアンロードするまで、次のコードは実行されません。
ようするに、ユーザフォームをモードレスで表示しないと思った動作になりません。こんな感じです。
UserForm1.Show vbModeless
早速有り難うございました。
vbmodeless
helpを頂き、良く分かりました。
確かにそのとおりに動きました。
お世話になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
UserForm1.Showでエラーになります。
工学
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
5
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
6
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
7
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
8
モーダルフォームとモードレスフォーム
Visual Basic(VBA)
-
9
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
10
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
11
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
12
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
13
エクセル VBA ユーザーフォームを閉じる
Excel(エクセル)
-
14
ユーザーフォームのSetFocusが働かない?
その他(プログラミング・Web制作)
-
15
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
16
VBAでユーザーフォームが自動的に消える
Visual Basic(VBA)
-
17
Excel VBA ユーザーフォーム 複数のユーザーフォームの閉じ方。
Visual Basic(VBA)
-
18
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
19
エクセルVBAでフォームのListboxをスクロールするには?
その他(Microsoft Office)
-
20
エクセルのVBAでユーザーフォームを4秒ぐらいで閉じるようにするには
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
20代女子がおしゃれに履ける長靴
-
数量限定の品について。お店で...
-
レインブーツの臭い
-
おしゃれな長靴を探しています
-
靴を履くこと
-
☆レインブーツの素材について教...
-
飲食店で自分の靴を、他人が間...
-
長靴を探しています。
-
ハンターの長靴かエーグルの長...
-
雨の日以外でレインブーツを履...
-
ポリエステル95% ポリウレタン...
-
「婦人 長靴21.5cm」を探し...
-
エーグルのレインブーツの購入...
-
通勤用のレインシューズ
-
服の汚れ(焦げている)の落とし方
-
街で女性が長靴(?)を履いて...
-
なにか15kg以内の目安になるも...
-
高校生でも履ける長靴
-
メガネの鼻あての上下
-
洗濯機が暴れだすようになった。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
雨の日以外でレインブーツを履...
-
☆レインブーツの素材について教...
-
街で女性が長靴(?)を履いて...
-
ハンターの長靴かエーグルの長...
-
レインブーツの購入を検討して...
-
エーグルのレインブーツの購入...
-
おしゃれな長靴を探しています
-
長靴を探しています。
-
「婦人 長靴21.5cm」を探し...
-
20代女子がおしゃれに履ける長靴
-
通勤用のレインシューズ
-
高校生でも履ける長靴
-
レインブーツの臭い
-
数量限定の品について。お店で...
-
飲食店で自分の靴を、他人が間...
-
卒入学式 ジャケットのボタン...
-
靴を履くこと
-
メガネの鼻あての上下
-
服の汚れ(焦げている)の落とし方
-
なにか15kg以内の目安になるも...
おすすめ情報