他ブックのマクロを実行する。Application Run EXCEL VBA [マクロ]
以前にも他のブックのマクロを実行するコードを記載しましたが、
今回は少し違う形式でのマクロです。
前回↓
Application.Run Workbooks(2).Name & "!モジュール名.マクロ名"
この場合、ファイルを開く順番によりエラーとなってしまいます。
今回は、↓
AWBN = ActiveWorkbook.Name
Application.Run "'" & AWBN & "'!モジュール名.マクロ名"
としました。マクロ元のブックをアクティブにする必要がありますが、
これでブック名の日付等が変更されてもマクロのコードは変えなく
ても大丈夫です。
クリック募金 各サイトに直接つながります。今回は少し違う形式でのマクロです。
前回↓
Application.Run Workbooks(2).Name & "!モジュール名.マクロ名"
この場合、ファイルを開く順番によりエラーとなってしまいます。
今回は、↓
AWBN = ActiveWorkbook.Name
Application.Run "'" & AWBN & "'!モジュール名.マクロ名"
としました。マクロ元のブックをアクティブにする必要がありますが、
これでブック名の日付等が変更されてもマクロのコードは変えなく
ても大丈夫です。
http://www.cosmo-oil.co.jp/kankyo/charity/
http://www.able.co.jp/company/contribute/new-action/clickable/
http://kakaku.com/donation/
http://www.j-energy.co.jp/cp/society/click_tp.php
http://www.chintai.net/contribution/index.html
http://www.nittsu.co.jp/corporate/contribution/1click.html
http://www.daiichisankyo.co.jp/csr/clickdonation/index.html
http://www.nippn.co.jp/csr/unicef/oneclick.html
初書き込みで質問失礼いたします。
下記の様にファイル名を動的に変数に格納した場合
格納されたファイル名のマクロ起動はどのようにすればいいのでしょうか?またマクロの存在チェックはどのようにすればよいでしょうか?
'指定フォルダの~ABC~.xlsファイル取得
wInFolder = D:\
wFile = wInFolder & "*ABC*.xls"
wName = Dir(wFile, vbNormal)
Do While wName <> ""
If wName <> "." And wName <> ".." Then
Workbooks.Open wInFolder & wName
'指定ファイルのマクロ起動
AWBN = ActiveWorkbook.Name
Application.Run "'" & AWBN & "'.Name!SyukeiButton_Click"
上記を実行するとファイル名は取れているのですがマクロが見つけられないとエラーが返ってきます。
宜しくお願いいたします。
by 王子 (2009-02-16 10:10)
王子 さんへ コメント頂きありがとうございます。
始めに、上記のマクロを実行したところ、vbNormal
の使い方がよく判りませんが、結果として
wName = Dir(wFile, vbNormal) の戻り値が
wName ="" となりファイル名が取得できていない
状態となりエラーになります。
EXCELの違いなのでしょうか?
自分のマクロは2003のみ確認出来ています。
2007では未確認です。
また、逆質問となりますが、確認したいことがあります。
If wName <> "." And wName <> ".."
はAndで重複していますが、データの格納状況など
教えて頂けないでしょうか。
さらにもう1点。色々すみませんが、マクロを実行を
抜きとしたファイルオープンのみのマクロコードを
頂ければありがたいです。
by honda (2009-02-16 15:09)