- ベストアンサー
エクセルマクロ 異なるファイル名でも実行してくれるマクロ
マクロ初心者です。よろしくお願いします。 ファイル名はすべて例えです。 「A」エクセルファイルを 「Z」というファイルに貼り付けるマクロを作りました。 そのマクロで「B」ファイルからも「C」ファイルからも 「Z」ファイルにコピーをしなくてはいけないのですが VBAには「A」で記録されているため 「B」と「C」にはそのマクロが使えません・・・。 VBAをどのようにデバックすればいいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Workbook("A").~ など、ブックを指定する部分を、ThisWorkbook.~ に変更すると、 マクロが書いてあるブックを基点に動作します。
その他の回答 (2)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
B,Cファイルにもプログラムをコピーして下さい。 ブック名を固定で謳っている場所があるのなら、#1さんの仰る方法で対応です。 それ以外では、以下の方法があります。 ・AファイルからB,Cファイルも操作するよう変更。 ・プログラム上ではActiveWorkbook.~を利用して、 A,B,Cを開き、マクロを動作させたいブックを表示させた状態で マクロを実行させる。
お礼
早々のご返答ありがとうございました。 かなりの知識不足で、説明もままならず、 自分でもっと調べて出直します。 お手数をおかけしました。 またよろしくお願いいたします。
>VBAをどのようにデバックすればいいのでしょうか? 意味が分かりませんが・・・。 「A」にはZファイルを開いてAファイルの指定のセルを貼り付けるという 記述があるのですよね。なら同じくBファイル・Cファイルを開いて指定の セルをZファイルに貼り付けるようにすればいいのではないのですか? 現在記述してある内容でカバーできると思いますが・・・。
お礼
早々のご返答ありがとうございました。 かなりの知識不足で、説明もままならず、 自分でもっと調べて出直します。 お手数をおかけしました。 またよろしくお願いいたします。 ※単語の意味も勉強します・・・。
お礼
早々のご返答ありがとうございました。 かなりの知識不足で、説明もままならず、 自分でもっと調べて出直します。 お手数をおかけしました。 またよろしくお願いいたします。
補足
説明が不足ですみません。個人用マクロブックに作成しました。 以下が初めから エラーが起きるまでのVBAです。 ●のところでエラーになります。 Windows("ThisWorkbook.xls").Activate にすればいいのでしょうか? すみません・・・・。ご返事お待ちしております。 --------------------------------------------- Keyboard Shortcut: Ctrl+t ' Rows("4:7").Select Range("C4").Activate Selection.Copy Windows("Z.xls").Activate Rows("4:7").Select Range("C4").Activate ActiveSheet.Paste ● Windows("A.xls").Activate Rows("11:48").Select Range("C11").Activate Application.CutCopyMode = False Selection.Copy