
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も見ています
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
UserForm1.Showでエラーになります。
工学
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
-
4
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
7
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
8
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
9
エクセルVBA テキストボックスへのセットフォーカスについて
Visual Basic(VBA)
-
10
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
11
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
12
エクセルのVBAでユーザーフォームを4秒ぐらいで閉じるようにするには
Access(アクセス)
-
13
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
14
VBAでユーザーフォームが自動的に消える
Visual Basic(VBA)
-
15
Excel VBA ユーザーフォーム 複数のユーザーフォームの閉じ方。
Visual Basic(VBA)
-
16
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
17
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
18
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
19
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
20
エクセル VBA ユーザーフォームを閉じる
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
おしゃれな長靴を探しています
-
街で女性が長靴(?)を履いて...
-
ハンターの長靴かエーグルの長...
-
☆レインブーツの素材について教...
-
雨の日以外でレインブーツを履...
-
通勤用のレインシューズ
-
高校生でも履ける長靴
-
レインブーツの臭い
-
エーグルのレインブーツの購入...
-
数量限定の品について。お店で...
-
長靴を探しています。
-
20代女子がおしゃれに履ける長靴
-
「婦人 長靴21.5cm」を探し...
-
レインブーツの購入を検討して...
-
飲食店で自分の靴を、他人が間...
-
靴を履くこと
-
洋服のタグって、絶対左なんで...
-
ホルマリン移染防止シートを赤...
-
洋服のお直し専門店で服をダメ...
-
小さいサイズの靴を買いたい ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
街で女性が長靴(?)を履いて...
-
雨の日以外でレインブーツを履...
-
おしゃれな長靴を探しています
-
高校生でも履ける長靴
-
ハンターの長靴かエーグルの長...
-
☆レインブーツの素材について教...
-
エーグルのレインブーツの購入...
-
通勤用のレインシューズ
-
レインブーツの購入を検討して...
-
20代女子がおしゃれに履ける長靴
-
「婦人 長靴21.5cm」を探し...
-
レインブーツの臭い
-
長靴を探しています。
-
数量限定の品について。お店で...
-
飲食店で自分の靴を、他人が間...
-
靴を履くこと
-
メガネの鼻あての上下
-
服の汚れ(焦げている)の落とし方
-
古着屋さんでの試着について 古...
-
大至急! この虫はなんですか?...
おすすめ情報