

エクセル2007のVBAについての質問です。
Book1のSheet1に取引先を入力するUserForm1があります。
Book2には操作の説明を記載してます。
UserForm1上に「ヘルプボタン」があり、Book2のヘルプ(Sheet1)に遷移する様にしてます。
UserForm1内のTextBoxにセルからの値を取得したりしているので、Book1からBook2に遷移した際、UserForm1はUnloadではなくHideにしてます。
Book1からBook2に遷移し、UserForm1は非表示になり、Book2からBook1に戻る際に、シート上の「戻るボタン」をクリックでBook1に遷移し、且つBook2は保存せずに閉じる様にしてます。
そこまでは何の問題もないのですが、Book2からBook1に遷移した時に、非表示にしていたUserForm1を再表示したいのですが表示されません。
尚、Book1からBook2へ遷移した際、Book1は閉じずに開いたままです。
上手く説明できなく恐縮ですが、どなたかお教えいただければ助かります。
No.4ベストアンサー
- 回答日時:
> 取引先を入力するフォームのヘルプからはBook2のSheet1へ、
> 顧客を入力するフォーム(UserForm2)のヘルプからは、Book2のSheet2へとしてます。
> この場合、Book2のSheet1からBook1へ遷移した際は、UserForm1を、
> Book2のSheet2からBook1へ遷移した場合は、UserForm2を。。。という具合に
> それぞれのUserFromを開く事は可能ですか?
No.2ではフラグ変数の型をBooleanで想定していましたが、Long型にすれば良いです。
起動時の値が0
Book2のSheet1へ遷移する際には、1を設定
Book2のSheet2へ遷移する際には、2を設定
……
として
Book1のWorkbook_Activate()では、フラグ変数の値によって表示させるUserFormを変えれば良いですね。
No.3
- 回答日時:
Book2でやってるからダメなんでしょうね。
おそらくその時点で、フォーム1はBook2の持ち物になったんでしょう。で、そいつが閉じたからフォーム1も閉じた、と。
Book1で.Showさせましょう。
2番さんの案が一般的なやり方です。
No.2
- 回答日時:
Book1のWorkbook_Activate()イベントでUserForm1.Showすれば良いのではないでしょうか。
ただし、そのままではBook1を起動したときにもUserForm1が表示してしまうので、
フラグ変数を用意してBook1からBook2に遷移したときに、フラグ変数をTrueにして
Workbook_Activate()イベントではこの変数がTrueのときにUserForm1.Showします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
別ブックからユーザーフォームを実行したい~!!
Visual Basic(VBA)
-
Excel VBAで別のブックからユーザーフォームの閉じる
その他(プログラミング・Web制作)
-
別のユーザーフォームのコマンドボタンを押す
Visual Basic(VBA)
-
-
4
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
5
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
6
ExcelVBAで、ユーザーフォームを新規Bookにコピーしたい
IT・エンジニアリング
-
7
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
8
【VBA】写真の縦横比を変えずに貼り付ける
Visual Basic(VBA)
-
9
ブックをCloseまたはQuitで閉じると他のユーザーフォームが消えてしまう。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ASP.NET
-
ASP.NET による画面遷移で質問...
-
Spreadのデータを別画面に引き渡す
-
MFCでグリッド
-
セッションIDを取得したい
-
asp.NET初心者です。「 ’Contex...
-
getParameterで値が取得できず...
-
JSPで使用不可
-
前の画面の情報を保持するには?
-
HTMLだけでボタン作成
-
INPUTのボタン周囲のスペース
-
サーバー上の全セッション変数...
-
コネクション・セッション・ト...
-
ASP.NET(VB)でのデータグリッド...
-
WScript??
-
HSPでIEを操作したいのですが
-
複数のヤフーIDの画面ウィンド...
-
SPREADでカーソルの位置を1行目...
-
アドレスバーのないウィンドウ...
-
ASP.NET ブラウザでボタンが表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ASPで画面間のパラメタ受け渡し
-
画面遷移が不正ですと表示されます
-
【ASP.NET】ページ遷移してもGr...
-
エクセルVBA 別のブックのユ...
-
HTTPリクエストヘッダーの設定...
-
VB.NET 画面遷移
-
アプリの不具合?
-
ホームページの作成について
-
googleカスタム検索を導入する...
-
JK-FFを用いた順序回路の作成方法
-
Spreadのデータを別画面に引き渡す
-
Access2013 VBA 複数の画面の遷移
-
違うサイトに移動した時にcooki...
-
スマホで、左右にスワイプして...
-
request.QueryStringについて
-
先程、携帯でネットをしていた...
-
VB.NETのWebアプリケーション開...
-
アクティブウインドウの制御
-
WebBrowserのドラッグできるフ...
-
Web制作にあたり
おすすめ情報
Book2のヘルプボタンでしてます。
Book1へ遷移はしますが、Book1でUserForm1が開いてくれません。
特にエラーも出ないのでどこが悪いのかがわかりません。
siffon9 様
ご回答有難う御座います。
実はUserForm1と同様のUserFormが複数あります。
取引先を入力するフォームのヘルプからはBook2のSheet1へ、顧客を入力するフォーム(UserForm2)のヘルプからは、Book2のSheet2へとしてます。この場合、Book2のSheet1からBook1へ遷移した際は、UserForm1を、Book2のSheet2からBook1へ遷移した場合は、UserForm2を。。。という具合に
それぞれのUserFromを開く事は可能ですか?
勉強不足で大変恐縮なのですが、お教え頂ければ助かります。