
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(エクセル)
-
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
-
4
エクセルVBA テキストボックスへのセットフォーカスについて
Visual Basic(VBA)
-
5
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
6
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
7
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
8
UserForm1.Showでエラーになります。
工学
-
9
Excel VBA ユーザーフォーム 複数のユーザーフォームの閉じ方。
Visual Basic(VBA)
-
10
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
11
リストボックスの特定行の背景色
Visual Basic(VBA)
-
12
コンボボックス内の文字サイズ変更
Excel(エクセル)
-
13
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
14
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
15
現在開いている全てのフォームを閉じるVBA
Word(ワード)
-
16
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
17
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
18
ExcelのComboboxでマウスのスクロールを有効にしたい
Excel(エクセル)
-
19
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
20
EXCEL VBA コンボボックス、テキストボックスが未入力のときメッセージを表示する方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
靴を履くこと
-
飲食店で自分の靴を、他人が間...
-
数量限定の品について。お店で...
-
ゴキブリは外に干してある洗濯...
-
新宿か渋谷で早朝(または24...
-
衣服についたチャタテムシ駆除...
-
カビの臭いを取る方法
-
居酒屋で靴がなくなりました。...
-
店内の展示突起物で洋服が破れ...
-
身長150センチの女性にキッ...
-
ありえない・試着室での出来事
-
フェラガモの靴が痛いんです、...
-
綿のタートルネック、ネックが...
-
軽井沢のアウトレットでスーツ...
-
お通夜のお手伝いについて。
-
こんなメガネを探しています
-
公衆トイレで着替えるのってい...
-
ストーリー仕立てってどういう...
-
タグを切った服は返品不可です...
-
なにか15kg以内の目安になるも...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
歳相応のスタイル
-
雨の日以外でレインブーツを履...
-
街で女性が長靴(?)を履いて...
-
高校生でも履ける長靴
-
「婦人 長靴21.5cm」を探し...
-
☆レインブーツの素材について教...
-
レインブーツの購入を検討して...
-
数量限定の品について。お店で...
-
レインブーツの臭い
-
通勤用のレインシューズ
-
エーグルのレインブーツの購入...
-
靴を履くこと
-
ハンターの長靴かエーグルの長...
-
20代女子がおしゃれに履ける長靴
-
飲食店で自分の靴を、他人が間...
-
長靴を探しています。
-
おしゃれな長靴を探しています
-
メガネの鼻あての上下
-
北海道で一番大きいサンキの店...
-
大至急! この虫はなんですか?...
おすすめ情報