- 締切済み
vba book名を変更して保存しても実行出来る?
こんにちは! マクロ初心者です。よろしくお願いします。 マクロの記録でマクロを作成し、マスターとして使用しています。 マクロ実行後は、コピーシートを作り別Bookにしてから、 マスターは上書きせずに閉じるようにしています。 Sheets("原価").Select Sheets("原価").Copy After:=Sheets(1) Sheets("原価 (2)").Select Sheets("原価 (2)").Move Sheets("原価 (2)").Select Sheets("原価 (2)").Name = "原価" Windows("原価集計.xls").Close Savechanges:=False 作成したマスターの名前を変更して保存し使用すれば『実行時エラー"9"』になります... 『実行時エラー"9"』 インデックスが有効範囲に有りません。 メッセージが出ますが... ある人から貰ったマクロのマスターは、全く違った名前にして保存しても問題なく実行が可能ですし、マスターと同じように上書きせず保存が出来ます。 (残念ですがマクロは教えて頂けませんでした...(-_-;) マクロに汎用性を持たしたいと思いますので、どのようにすれば可能になるのでしょうか教えてください。 マクロ初心者です。 どうかよろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- pamsd
- ベストアンサー率18% (39/209)
>Windows("原価集計.xls").Close Savechanges:=False >※例えばマスターのbook名を”原価集計AA”と変更して保存すれば、上の構文の”原価集計.xls”が”原価集計AA.xls”と置き換わる。 このようなことはマクロで出来ないのでしょうか? そもそも変更して保存がよくないのです。 保存してから そのファイルをリネームすればいいのです。 ま、それができれば 苦労しないって? 原本があってそれを 編集してから 別名で保存したいということならば 最初に原本を 別名でコピーし、それを編集して保存すればいいでしょう。 「この別名で保存というのが できない」のならばです。
- pamsd
- ベストアンサー率18% (39/209)
どのような条件で動いてるのか不明なため対処も不明です。 そのブックと同一フォルダ内にある別のブックを無条件で使ってるのか?とかです。 別に 動いているマクロがあるならば、そのソースを見ればいいんじゃないでしょうか?
お礼
回答有難うございます。 補足説明させて頂きましたが、回答の仕様がないのでしたら諦めます。 お手数をお掛けいたしました。
補足
こんばんは! うまく質問出来ていない様で、申し訳ありません。 やってみたいことは、 Windows("原価集計.xls").Close Savechanges:=False ※例えばマスターのbook名を”原価集計AA”と変更して保存すれば、上の構文の”原価集計.xls”が”原価集計AA.xls”と置き換わる。 このようなことはマクロで出来ないのでしょうか? 何度も済みませんが、よろしくお願い致します。
- pamsd
- ベストアンサー率18% (39/209)
>作成したマスターの名前を変更して保存し使用すれば『実行時エラー"9"』になります... 当然、保存したものを 開いて 使用しているんですよね? 名前を変更したものを 前の名前で アクセスなんてバカなことは やってませんよね? >マクロに汎用性を持たしたいと思いますので、どのようにすれば可能になるのでしょうか教えてください。 どんな汎用性なのかさっぱりわかりません。
お礼
早々の回答有難うございます。 補足説明を致しましたので、よろしくお願い致します。
補足
回答有難うございます。 もちろん、マスターの名前を変更すれば変更後のものを開きます。 マクロの『book名』と保存の『BOOK名』が異なりますので『エラー』になります。 マクロの名前を同じように変えれば実行できることは解っています。 変更前:book名 原価集計 → 変更後:原価集計AA 変更前マクロ Windows("原価集計.xls").Close Savechanges:=False 変更後マクロ Windows("原価集計AA.xls").Close Savechanges:=False ある人から貰った別のマスターはbook名を変更しても、マクロを変更せず実行出来ます。 どのようなマクロにすれば出来るのか解りません。 どのようにすれば可能でしょうか。 どうか教えて下さい...
お礼
ご回答有難う御座います。 簡単には出来ない事が判りました... 長々とお付合いありがとう御座いました。