[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『別ブックのマクロを実行と同時に自ブックを閉じたい』(VBA辛い)
お世話になります。
表題の通り、別ブックのマクロを実行と同時に自ブックを閉じたいと考えています。
詳しく説明すると、
book1のマクロ(呼び出し元、これを作りたい)
'book2のマクロを実行する '実行した直後に自ブックを閉じる
book2のマクロ(呼び出される側、編集禁止)
'book1を開いて処理、開かれている場合はエラーmsgbox 'book1を保存して終了
book2の都合上、book1を閉じた状態で実行しなくてはならず、苦労しています。
なにか方法、代替案などありましたらお願いいたします。
< 使用 Excel:Excel2013、使用 OS:Windows10 >
ただ、↓が腑に落ちません。
>book2の都合上、book1を閉じた状態で実行しなくてはならず
どんな都合なのですか?
差し支えなければ後学のためにおしえてください。
(もこな2) 2021/06/11(金) 11:33
質問のことは【book2のマクロ】側の判定で対応可能と思われます。
>book1を開いて処理、開かれている場合はエラーmsgbox
↑これを、【開かれていなければ】開いて処理、開かれている場合は【そのまま使う】
とすればいいだけでは?
(もこな2) 2021/06/11(金) 11:38
マクロ1 → マクロ2 → マクロ3 → マクロ4 とたどった場合
マクロ4からマクロ1には直接戻れない。
マクロ4 → マクロ3 → マクロ2 → マクロ1 と戻る必要がある。
(オーソドックス) 2021/06/11(金) 11:49
Book1を開かなかければいいのでは? 新たにBook3をつくってBook3からBook2のマクロを実行すれば? (´・ω・`) 2021/06/11(金) 12:28
>マクロ4からマクロ1には直接戻れない。 何故なの? ほんとうですか? (vbas) 2021/06/11(金) 14:12
どんな都合なのですか?
book2マクロ側の仕様で、book1を開いている場合はエラーを出して強制終了してしまうためです。
また、book2は編集禁止のため改変できません。
基本的な考え方、マクロは一人歩きの放浪は出来ない。
SubやFunctionはネストされて実行しているのは理解しています。
今回やりたいことを実現させるために、別プロセスExcelのマクロを実行するのは可能でしょうか?
新たにBook3をつくってBook3からBook2のマクロを実行すれば?
実はそうすればできるのかなと考えていましたが、
ファイルが増えるうえにメンテナンス性も悪いため避けていました。
やりたいことが実現できるのであればこの方法でやむなしとは考えています。
考えたことは、
・もうひとつマクロブックを作る
・別のプロセスで起動してマクロを実行する
なのですが、実現可能かわかりません。
他の手法でも良いです。アイデア、助言等いただければ幸いです。
(VBA辛い) 2021/06/11(金) 15:23
Book3は、Book1をコピーして、作ります。 Book1は直接編集しないで、今までやってたBook1の編集はBook3でやる。
Book3のマクロは、 SaveAs で自分自身(Book3)のコピーを Book1として保存し、Book2のマクロを実行する。 Book2はBook1を見に行...... (´・ω・`) 2021/06/11(金) 15:30
SaveAs じゃなくて、SaveCopyAs (´・ω・`) 2021/06/11(金) 15:33
[[20190417160657]] (9414)『2つのユーザーフォーム』(あきお)
(オーソドックス) 2021/06/11(金) 15:40
その方法を使えばなんとか行けそうな気がします。
希望が見えました。ありがとうございます!
オーソドックスさん
ブックを3つ作って試してみましたが、
呼び出し元のブックを閉じるとマクロが強制終了されました。
やはり呼び出し元に戻る必要があるんですね。
ありがとうございました!
(VBA辛い) 2021/06/11(金) 16:29
(もこな2) 2021/06/12(土) 10:02
どうなるのか不明
(オーソドックス) 2021/06/13(日) 04:14
book2の判定箇所を見てみました。
Open Filepath For Append As #1
Close #1
でエラー番号を取得している感じですね。
´・ω・`さんと似たような方法で行けそうですね。
ありがとうございます!
オーソドックスさん
そんな実行方法もあるんですね。
試してみます!
(VBA辛い) 2021/06/14(月) 13:06
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.