アプリ版:「スタンプのみでお礼する」機能のリリースについて

ブックをCloseまたはQuitで閉じると他のユーザーフォームが消えてしまう。

お世話になります。
Excel2000、2013でツール開発をしているのですが、タイトルのようにユーザーフォームが消えてしまって困っています。
助言頂ければと思います。

Book1
 UserForm1…Book2を開くボタンを実装してあります。単純にWorkbooks.openです。

Book2
 UserForm2…Book2のOpenにてShowされるユーザーフォームです。

Book1のUserForm1からBook2のUserForm2をShowさせた後、
UserForm2の閉じるボタンにて「Application.quit」と「ThisWorkbook.Close」を実行させて、
Book2を閉じてまたUserForm1に戻る処理を行いたいのです。

ところが、quitとcloseを実行するとBook2は問題なく閉じるのですが、
UserForm1までもが消えてしまいます。

UserForm1を消さずに戻る方法は無いのでしょうか??

A 回答 (3件)

No2です。


こちらで確認した方法です。
Book1のUseform1のコード
--------------------------------
Private Sub CommandButton1_Click()
Workbooks.Open "d:\goo\excel\book107b.xlsm"
Application.Run "book107b.xlsm!Macro1"
Workbooks("book107b.xlsm").Close
End Sub

(book2相当)book107b.xlsmの標準モジュール
----------------------------------
Public Sub Macro1()
UserForm2.Show
End Sub

(book2相当)book107b.xlsmのUserForm2のコード
-------------------------------------
Private Sub CommandButton1_Click()
Unload Me
End Sub
    • good
    • 0
この回答へのお礼

助かりました

tatsu99さん

分かりやすくありがとうございますっ!
こちらでも同じようにやってみましたが、一番すんなり実装できそうな感じになりましたので、もう少し自分なりに熟考したいと思います。

しかし、なぜユーザーフォームが消えるのか・・・。
謎ですよね(^^;
そもそもExcel自体、複数ブック連携を前提になっていないのでしょうか。

ともかく、大変参考になりました。
ありがとうございましたっ!

お礼日時:2017/01/03 22:59

Userform2では


unload me
のみ行い、
userform1でopenでshowさせた後、(Userform2から戻ったあとに)
userform1でbook2をcloseさせてはいかがでしょうか。
    • good
    • 0
この回答へのお礼

ありがとう

tatsu99さん

回答ありがとうございます。

現状のプログラムですと、Book2のopenにてUserForm2をShowしているので、Unloadした後が取得できません。

Book1のUserForm1ではBook2を開くだけの処理をしているので、UserForm2を開くところまで実行するように処理を変更すれば行けるかもしれませんねっ!
早速試してみたいと思います。

お礼日時:2017/01/03 21:24

やってみました。


Application.quit は無理だと思いましたが、ThisWorkbook.Close でも前のフォームは消えてしまいますね。
Book2は閉じずに背面に隠し、Book1のフォームを閉じるタイミングで閉じるしかなさそうです。

Book2のUserForm2の閉じるボタンには
Unload Me
Workbooks("Book1.xlsm").Activate
だけ記載する事で、UserForm1は閉じなくなります。

もっと難しい方法(APIなど利用?)で解決方法があるのかもしれませんが。
    • good
    • 0
この回答へのお礼

ありがとう

jmuinyさん

ありがとうございます。
本当は閉じれた方が見栄え的な話だとか諸々な理由でよいのですが、それ以外に方法がなさそうであればやむを得ないと思うので参考にさせていただきますっ!

お礼日時:2017/01/03 21:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A