- ベストアンサー
VBAでマルチページの表示
エクセル2002使用です。 ユーザーフォーム(オブジェクト名:UserForm1)に、マルチページ(オブジェクト名:page1)を配置してフォームを作成しました。 Sheet1にコマンドボタンを貼り付け、コマンドボタンをクリックして、標準モジュールを呼び出し、マルチページを標準モジュールから呼び出せるようにしたいのですがうまくいきません。 ’Sheet1 Private Sub CommandButton1_Click() Call フォーム表示 End Sub ’標準モジュール Sub フォーム表示() UserForm1.Show ’?ここのコードをいろいろ試したのですがわかりません。 End Sub この他 UserForm1.ShowPages "page1" とか 変数を入れてみたりしたのですが、うまくいきません。 すいませんが、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sheet3に(コントトールツールボックス)コマンドボタンを貼りつけました。 ダブルクリックして Private Sub CommandButton1_Click() End Sub がでて、formsを入れて Private Sub CommandButton1_Click() forms End Subとしました。 VBE画面で挿入-ユーザーフォームを選びフォームをだし テキストボックス、マルチページを貼りつけました。 標準モジュールに Sub forms() UserForm1.TextBox1.Text = "こんにちわ" UserForm1.Show End Sub を作りました。 デザインモードを脱して シートのコマンドボタンをクリックすると テキストボックスに「こんにちわ」とでた、マルチページのあるフォームが表示されました。
その他の回答 (1)
- Aruku-20030515
- ベストアンサー率23% (362/1544)
最近MSアプリ作ってないの 嘘かもしれませんが・・・ 結局、依存型のオブジェクトで、親子関係見たいなものがそんざいします。 ユーザーフォームの中にマルチページがあるわけなので userform.page1.showのような記述だったと思われ。
お礼
Aruku-20030515 様早速のご回答ありがとうございます。ご指摘いただいたコードで実行しますと、page1が変数とみなされてエラーがかかってしまいます。 もし、他に方法ございましたらよろしくお願いします。
お礼
imogasi 様 すいません。上記の補足欄の設定を新規ブックですると問題なく実行できました。 作成中のブックのなにが問題なのか、今から検討します。 本当にありがとうございました。 今後ともよろしくお願いします。
補足
imogasi様、早速のご回答ありがとうございます。 ご回答いただいたように新規ブックで実行しますとご指摘の通り実行できました。 それで、実際の作成中のブックで同じように実行しますと、ユーザーファームの表示前の動作設定をしてしまっていて、 Private Sub UserForm_Initialize()にデバックかかってしまいます。 何か、他にデザインモードを抜け出す良い方法はありますでしょうか?お時間ございましたらよろしくお願いします。