Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12769 / 13644 ツリー ←次へ | 前へ→

【8724】複数のブックを操作するには? なる 03/10/30(木) 11:13 質問
【8726】Re:複数のブックを操作するには? INA 03/10/30(木) 11:19 回答
【8729】Re:複数のブックを操作するには? なる 03/10/30(木) 11:36 質問
【8731】Re:複数のブックを操作するには? INA 03/10/30(木) 11:40 回答
【8732】Re:複数のブックを操作するには? なる 03/10/30(木) 11:51 質問
【8734】Re:複数のブックを操作するには? INA 03/10/30(木) 11:59 回答
【8736】Re:複数のブックを操作するには? なる 03/10/30(木) 13:14 質問
【8738】Re:複数のブックを操作するには? INA 03/10/30(木) 13:35 回答
【8756】Re:複数のブックを操作するには? なる 03/10/31(金) 9:36 お礼
【8758】Re:複数のブックを操作するには? INA 03/10/31(金) 10:49 回答
【8770】Re:複数のブックを操作するには? なる 03/10/31(金) 17:43 お礼
【8739】Re:複数のブックを操作するには? なる 03/10/30(木) 17:03 質問
【8744】Re:複数のブックを操作するには? INA 03/10/30(木) 18:34 回答
【8754】Re:複数のブックを操作するには? Jaka 03/10/31(金) 9:09 回答
【8757】Re:複数のブックを操作するには? なる 03/10/31(金) 10:05 質問
【8771】Re:複数のブックを操作するには? なる 03/10/31(金) 17:44 お礼

【8724】複数のブックを操作するには?
質問  なる  - 03/10/30(木) 11:13 -

引用なし
パスワード
   こんにちは。
以下のような処理をしたくていろんなことをしましたが
できなくて困ってます。

メイン画面となるEXCELがあり、そのフォームのボタンを押すと
サブ画面となる別のEXCELが起動(メイン画面は後へ)。
サブ画面の終了ボタンを押すと、サブ画面EXCELは保存して終了し、
メイン画面が表示される。

このような処理なのですが、サブ画面の終了ボタンを押すと
メイン画面のフォームまで消えてしまうんです。
2つのEXCELをうまく操作する方法はないでしょうか?

【8726】Re:複数のブックを操作するには?
回答  INA  - 03/10/30(木) 11:19 -

引用なし
パスワード
   複数のEXCELアプリの操作なのか、複数のブック操作なのか分からないです。
ブック毎にEXCELアプリを分けているのですか?
上手く行かないコードを掲載できませんか?
それとEXCELのバージョンも書いていただけませんか?

【8729】Re:複数のブックを操作するには?
質問  なる  - 03/10/30(木) 11:36 -

引用なし
パスワード
   ▼INA さん:

早速のお返事、ありがとうございます!

>複数のEXCELアプリの操作なのか、複数のブック操作なのか分からないです。
>ブック毎にEXCELアプリを分けているのですか?

複数のEXCELアプリ操作になります。

>上手く行かないコードを掲載できませんか?

コードは以下のようにしています。
***メイン画面のボタン押下***
  frm_menu.Hide                   'メイン画面を隠す
  Workbooks.Open Filename:=MyPath & "\CWDE8200.xls" 'サブ画面EXCEL起動
  Application.Run ("CWDE8200.xls!auto_open")    'サブ画面マクロ起動

***ここでサブ画面のプログラムが動きます…***

***サブ画面の終了ボタン押下***
  frm_main.Hide    'サブ画面を隠す
  ThisWorkbook.Close ture, "CWDE8200.XLS"    'サブ画面のEXCEL終了

  ☆ここで消えます!☆

>それとEXCELのバージョンも書いていただけませんか?

バージョンは2000です。

【8731】Re:複数のブックを操作するには?
回答  INA  - 03/10/30(木) 11:40 -

引用なし
パスワード
   コードを見る限りブックをopenしているだけなので、
1つのEXCLE内に複数のブックを開いているように思えますが?

【8732】Re:複数のブックを操作するには?
質問  なる  - 03/10/30(木) 11:51 -

引用なし
パスワード
   ▼INA さん:
>コードを見る限りブックをopenしているだけなので、
>1つのEXCLE内に複数のブックを開いているように思えますが?

そういうことになるんですか!?
知識が足りなかったです。。。
では、サブ画面を閉じたときにメイン画面のみ残る(ブックのみ、画面なし)のは
なぜなんでしょうか。。。
よろしくお願いします。

【8734】Re:複数のブックを操作するには?
回答  INA  - 03/10/30(木) 11:59 -

引用なし
パスワード
   >そういうことになるんですか!?
手作業で行えば分かると思いますが、
EXCELを2回起動するのと、EXCELから2個のブックを開くのでは
違ったことになります。


>サブ画面を閉じたときにメイン画面のみ残る(ブックのみ、画面なし)のは
>なぜなんでしょうか。。。
画面と言う表現は一般的ではないので、ユーザーフォームとして下さい。
メイン画面のユーザーフォームをhideしたあとに、showしていないからでは?

【8736】Re:複数のブックを操作するには?
質問  なる  - 03/10/30(木) 13:14 -

引用なし
パスワード
   ▼INA さん:
>メイン画面のユーザーフォームをhideしたあとに、showしていないからでは?

この"show"はどちらのEXCELコードに書くべきなのでしょうか?
メイン画面の方に書いてサブ画面から呼び出すとメイン画面のユーザーフォームは
正常に表示されましたが、サブ画面のEXCEL自体が終了しないのです。
以下が変えてみたコードです。

***サブ画面終了ボタン押下***
  frm_main.Hide              'サブ画面ユーザーフォームを隠す
  Application.Run ("CWDEMENU.xls!bbb")  'メイン画面マクロ呼び出し
  ThisWorkbook.Close ture, "CWDE8200.XLS" 'サブ画面EXCEL終了

***メイン画面ユーザーフォーム表示マクロ***
Sub bbb()
  frm_menu.Show    'メイン画面ユーザーフォーム表示
End Sub

よろしくお願いします。

【8738】Re:複数のブックを操作するには?
回答  INA  - 03/10/30(木) 13:35 -

引用なし
パスワード
   各ユーザーフォームを、モードレス表示しては、いかがでしょうか?
もしモードレスで都合が悪いのであれば、もう一度考えます。

【8739】Re:複数のブックを操作するには?
質問  なる  - 03/10/30(木) 17:03 -

引用なし
パスワード
   すみません、質問の視点を変えてみます。

メイン画面からサブ画面を閉じるコード(単なるEXCELの終了)を記述し、
実行するとメイン画面自体のマクロも終了してしまいます。
こうならないようにするためにはどうすればよいのでしょうか?

よろしくお願いします。

【8744】Re:複数のブックを操作するには?
回答  INA  - 03/10/30(木) 18:34 -

引用なし
パスワード
   私の質問に対する回答はないの?

【8754】Re:複数のブックを操作するには?
回答  Jaka  - 03/10/31(金) 9:09 -

引用なし
パスワード
   こういうこと?

Book1
Private Sub CommandButton1_Click()
  Me.Hide
  RPth = "'" & ThisWorkbook.Path
  Application.Run (RPth & "\Book2.xls'!auto_open")
  MsgBox "帰ってきた。"
  Workbooks("Book2.xls").Close  'ここで、ブック2を閉じる。
  Me.Show
End Sub

Book2

Sub auto_open()
  ThisWorkbook.Activate
  UserForm1.Show 'Book2のフォーム
End Sub

Private Sub CommandButton1_Click()
  For i = 1 To 5000
    Me.TextBox1.Value = i
    DoEvents
  Next
  Unload Me
  ここで、ブック2を閉じてしまうと実行君が持っていた帰る為の命綱が途切れてしまって帰れなくなる。
End Sub

【8756】Re:複数のブックを操作するには?
お礼  なる  - 03/10/31(金) 9:36 -

引用なし
パスワード
   ▼INA さん:
>各ユーザーフォームを、モードレス表示しては、いかがでしょうか?
>もしモードレスで都合が悪いのであれば、もう一度考えます。

すみません、今日確認しました。
モードレスで表示しても結局は同じ現象が起こるようです…
いろいろ考えてくださってありがとうございます。
で、考え方の視点を変えてみたんです。。。

【8757】Re:複数のブックを操作するには?
質問  なる  - 03/10/31(金) 10:05 -

引用なし
パスワード
   ▼Jaka さん:

返信、ありがとうございます。
私が行いたいのは、Application.Run後に制御がBook2へ移行し、
Book2の終了ボタンが押下されたら制御をまたBook1へ戻す、ということなんです。
Book2を閉じるときに制御をBook1に戻すどころかBook1のフォームも
消えてしまうのが問題で…。

何か言い方法ありませんか?
それともExcelの仕様とかじゃないですよね?

【8758】Re:複数のブックを操作するには?
回答  INA  - 03/10/31(金) 10:49 -

引用なし
パスワード
   >モードレスで表示しても結局は同じ現象が起こるようです…
>いろいろ考えてくださってありがとうございます。
モードレスにすれば、私の環境では動きますね。

>サブ画面の終了ボタンを押すと、サブ画面EXCELは保存して終了し、
>メイン画面が表示される。
このときにメイン画面のブックにある以下のマクロを
サブ画面EXCELを閉じるときにrunで実行すれば、動作しました。

Sub test()
 userform1.show
end sub

【8770】Re:複数のブックを操作するには?
お礼  なる  - 03/10/31(金) 17:43 -

引用なし
パスワード
   ▼INA さん:
>このときにメイン画面のブックにある以下のマクロを
>サブ画面EXCELを閉じるときにrunで実行すれば、動作しました。
>
>Sub test()
> userform1.show
>end sub

もう一回コードを見直して処理を行ったらうまくいきました。
何がおかしかったんでしょう…?
まだ不明ですが調べてみます。
とりあえずできましたので嬉しいです。
ありがとうございました!!!

【8771】Re:複数のブックを操作するには?
お礼  なる  - 03/10/31(金) 17:44 -

引用なし
パスワード
   無事、解決しました!
ありがとうございました!

12769 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free