- ベストアンサー
Powerpoint 2003でのVBA UserFormの表示方法
- PowerpointのVBA UserFormの表示方法について解説します。
- ツールバーにボタンを追加し、UserFormを表示する方法を説明します。
- ModalからModelessにUserFormを修正する際に表示されない問題の解決方法を紹介します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
確かにファイルを開いていないと 一瞬でユーザーフォームが消えますね。 Application.Run を使ってもだめ。 Excelとはまったく違う動作です。 でも、それほど困ることはないのと思うのですが。 モーダルでも、その間PowerPointの編集ができない だけで、ExcelやWordには切り替えられるので。 どうしてもモードレスでというのなら、 以下のような方法があるかもしれません。 ●標準モジュール Public myFlg As Boolean Sub test() UserForm1.Show vbModeless Do Until myFlg = True DoEvents Loop End Sub ●UserForm1 Private Sub CommandButton1_Click() Me.Hide MsgBox "OK" myFlg = True Unload Me End Sub Private Sub UserForm_Terminate() myFlg = True End Sub ※ループの間の動作がもたつくときは、 ●標準モジュール Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public myFlg As Boolean Sub test2() UserForm1.Show vbModeless Do Until myFlg = True Sleep (500) '←数字調整 DoEvents Loop End Sub
お礼
ご指示通りの記述でちゃんと表示され、実行結果を変数に代入することができました。 どうもありがとうございました。助かりました。
補足
ご丁寧なご助言どうもありがとうございました。実はModelessでUserFormが開いている間にPowerpoint上で特定の操作をユーザーにしてもらい、それが終了した段階でUserFormのOKを押してもらう、ということをしたかったのでした。 ご提案いただいた方法を利用して試してみます。