• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Powerpoint 2003 でのVBA UserFormの表示方法)

Powerpoint 2003でのVBA UserFormの表示方法

このQ&Aのポイント
  • PowerpointのVBA UserFormの表示方法について解説します。
  • ツールバーにボタンを追加し、UserFormを表示する方法を説明します。
  • ModalからModelessにUserFormを修正する際に表示されない問題の解決方法を紹介します。

質問者が選んだベストアンサー

  • ベストアンサー
  • n_na_tto
  • ベストアンサー率70% (75/107)
回答No.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

peccora
質問者

お礼

ご指示通りの記述でちゃんと表示され、実行結果を変数に代入することができました。 どうもありがとうございました。助かりました。

peccora
質問者

補足

ご丁寧なご助言どうもありがとうございました。実はModelessでUserFormが開いている間にPowerpoint上で特定の操作をユーザーにしてもらい、それが終了した段階でUserFormのOKを押してもらう、ということをしたかったのでした。 ご提案いただいた方法を利用して試してみます。

関連するQ&A

専門家に質問してみよう