• ベストアンサー

エクセルマクロ 異なるファイル名でも実行してくれるマクロ

マクロ初心者です。よろしくお願いします。 ファイル名はすべて例えです。 「A」エクセルファイルを 「Z」というファイルに貼り付けるマクロを作りました。 そのマクロで「B」ファイルからも「C」ファイルからも 「Z」ファイルにコピーをしなくてはいけないのですが VBAには「A」で記録されているため 「B」と「C」にはそのマクロが使えません・・・。 VBAをどのようにデバックすればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

Workbook("A").~ など、ブックを指定する部分を、ThisWorkbook.~ に変更すると、 マクロが書いてあるブックを基点に動作します。

hiphop_lov
質問者

お礼

早々のご返答ありがとうございました。 かなりの知識不足で、説明もままならず、 自分でもっと調べて出直します。 お手数をおかけしました。 またよろしくお願いいたします。

hiphop_lov
質問者

補足

説明が不足ですみません。個人用マクロブックに作成しました。 以下が初めから エラーが起きるまでの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

その他の回答 (2)

回答No.3

B,Cファイルにもプログラムをコピーして下さい。 ブック名を固定で謳っている場所があるのなら、#1さんの仰る方法で対応です。 それ以外では、以下の方法があります。  ・AファイルからB,Cファイルも操作するよう変更。  ・プログラム上ではActiveWorkbook.~を利用して、   A,B,Cを開き、マクロを動作させたいブックを表示させた状態で   マクロを実行させる。

hiphop_lov
質問者

お礼

早々のご返答ありがとうございました。 かなりの知識不足で、説明もままならず、 自分でもっと調べて出直します。 お手数をおかけしました。 またよろしくお願いいたします。

noname#123709
noname#123709
回答No.2

>VBAをどのようにデバックすればいいのでしょうか? 意味が分かりませんが・・・。 「A」にはZファイルを開いてAファイルの指定のセルを貼り付けるという 記述があるのですよね。なら同じくBファイル・Cファイルを開いて指定の セルをZファイルに貼り付けるようにすればいいのではないのですか? 現在記述してある内容でカバーできると思いますが・・・。

hiphop_lov
質問者

お礼

早々のご返答ありがとうございました。 かなりの知識不足で、説明もままならず、 自分でもっと調べて出直します。 お手数をおかけしました。 またよろしくお願いいたします。 ※単語の意味も勉強します・・・。

関連するQ&A

  • エクセルでこんなマクロ

    マクロの初心者ですが、 エクセルで、 「A」、「B」、「C」、「コピーA」、「コピーB」 というファイル名のエクセル開いていたときに、 「コピーA」、「コピーB」というファイルだけを閉じてくれるような マクロを 「C」のファイル上で作成することは可能でしょうか。 ファイル名はABC・・・以降多数あります。 何卒よろしくお願い致します。

  • 複数のエクセルファイルを1つのエクセルファイルのシートにコピーをマクロ

    複数のエクセルファイルを1つのエクセルファイルのシートにコピーをマクロで行いたい。 マイドキュメントのデーターというフォルダ内に エクセルファイルA(シート名みかん) エクセルファイルB(シート名りんご) エクセルファイルC(シート名バナナ) エクセルファイルD(シート名ぶどう) エクセルファイルE(シート名いちご) があります。 雛形は同じです。すべてA列~F列までデータが入っています。 行数はファイルによって違います。 また毎日自動で上書き更新され、毎日行数が変わります。 エクセルファイルZがあります。シートが7個あります。 ・変換 ・集計 ・みかん ・りんご ・バナナ ・ぶどう ・いちご エクセルファイルZを開きます。(各シートには昨日のデータが貼り付けてあります。) マイドキュメントのデーターフォルダも開いておきます。 エクセルファイルZにおいて「マクロの記録」を起動。 エクセルファイルZの 【みかん】~【いちご】までの5シートを全データDELETEします。 開いてあるフォルダ「データー」の中からエクセルファイルAを開きます。 (タスクバーにいます) ファイルAのシート【みかん】の全データ選択して エクセルファイルZの【みかん】というシートのA1セルにカーソルを あわせて貼り付けします。 開いてあるフォルダ「データー」の中からエクセルファイルBを開きます。 (タスクバーにいます) ファイルBのシート【りんご】の全データ選択して エクセルファイルZの【りんご】というシートのA1セルにカーソルを あわせて貼り付けします。 これと同じ操作を【バナナ】【ぶどう】【いちご】も行います。 エクセルファイルZにおいて「マクロの記録」を終了させます。 マクロができあがりました。 ファイルZを上書き保存して終了。再立ち上げで記録したマクロを実行。 エラーにはなりませんが、ファイルZの5種類各シートに ファイルA~Eのデータが貼りつきません。 何か無理な事をしているのでしょうか? もしかしてシート名が同じだと駄目?とためしにファイルZのシート名【みかん】~【いちご】を 【みかんZ】~【いちごZ】に変更してマクロを再記録しても 駄目でした。 よろしくお願いします。

  • VBAでエクセルからのファイル名とテキスト化を自動で実行する方法

    マクロを実行して、エクセルのセルからファイル名とテキストファイルを自動で出力したいのですが、VBA初心者なのでプログラムの書き方がわかりません。 どうかVBAのプログラムの書き方を教えて下さい。 【マクロ実行前のエクセル状態】 1.エクセルのA列にファイル名1を入力 2.エクセルのB列にファイル名2を入力 3.エクセルのC列にテキスト出力させたい文字列を入力 【期待のマクロ動作】 ファイル名1+ファイル名2のファイル名でC列の文字列をテキストファイルで出力。 《例》 A B C 1 2 あ ⇒マクロ実行⇒ファイル名『12』テキスト内容『あ』 3 4 い ⇒マクロ実行⇒ファイル名『34』テキスト内容『い』 5 6 う ⇒マクロ実行⇒ファイル名『56』テキスト内容『う』 7 8 え ⇒マクロ実行⇒ファイル名『78』テキスト内容『え』 ・ ・ ・ ・ 上記の様に、一回のマクロ実行で入力されている列のセル全て がファイル名付きのテキストファイルとして出力をさせたいです。 申し訳ありませんが、よろしくお願いいたします。

  • Excel VBAのマクロの記録について

    Excelマクロの初心者です。 マクロの記録のやり方の質問です。 今あるフォルダの中にファイルA、Bがある状態でファイルAのマクロの記録で、ファイルBのコピーを同じフォルダーに作る操作を記録しようとしましたが、うまく記録できません。 何かやり方が間違っているのでしょうか、ファイルAの中でのセルの色塗り等のマクロの記録はうまくできます。 マクロの記録ができない操作があるのでしょうか、あるとすれば記録できないものはどのような操作でしょうか?教えて下さい。

  • Excelマクロ/ファイル名を指定してインポート

    テキストファイルからExcelへインポートする作業を自動化させたいのですが。 毎回インポート元のファイル名(格納しているフォルダは同じです)が異なるので、マクロ記録ではうまく作成できません。VBAでないと無理でしょうか? できればファイル名をその都度入力するようなダイアログボックスが表示されれば理想的です。VBA初心者なので教えてください。

  • エクセル2007で複数ファイル間コピーマクロ

    エクセルでマクロを組もうとしていますが、初歩的なことでつまづいており、ぜひ助けを頂けたらと思います。 VBA言語はほとんどわかりませんが、エクセルでマクロを組んでいます。 一つのワークブック内での登録は問題なく行えるのですが、ワークブック間のコピペをマクロに登録するとうまくいかず困っています。 やりたいことは以下のようなことです。 file.Aのsheet1のA1セル ⇒ file.AAのsheet1のA1セル へコピー file.Bのsheet1のA1セル ⇒ file.BBのsheet1のA1セル へコピー     ・     ・     ・     ・ file.Zのsheet1のA1セル ⇒ file.ZZのsheet1のA1セル へコピー VBAを確認すると、ワークブック名が指定されているため、うまく次のファイルに移行できずにいるようです。 以下が黄色でハイライトされます。 Windows("file.A").Activate 初歩的なことだとは思うのですが、なかなか検索で答えが引っ張りだせないので、A-Zのファイルをコピペできるマクロにするにはどのようにしたら可能なのか教えてください。 よろしくお願いします。

  • エクセルのマクロ

    素人なのですみませんが教えてください エクセルのマクロを使用して エクセルを起動して ウィンドウズ内のあるフォルダ内のエクセルファイルをコピーをして違うフォルダに貼り付けをしたいのですが、どのようにマクロを組み込むのか教えてください(マクロの式) (例)エクセル起動後エクセルのマクロにて c\Aフォルダ\aファイル←コピー c\Bフォルダ\aファイル←貼り付け

  • エクセルマクロでファイル名やシート名変更できない

    エクセルは初心者なのでマクロを自動記録して作成しています。 少しづつ動作を小分けにして記録して、まとめてボタンで連続実行させるようにしました。 (1)作成途中で失敗したら最初からの作業になると思い、 ある程度進んだら何度かファイルのコピーを作成して進めていました。 ある程度完成した時点でファイル名が「○○○4~コピー~」の様な名前だったので、正式に名前を決めて変更したらマクロの実行が出来なくなりました。(元の名前に戻すと実行可能) (2)またシートも複数のシートに跨って参照するようなマクロです。 シート名を分かりやすい名前に変更したらこの場合もマクロ実行できなくなりました。 (3)コピーしたファイルもマクロ実行できないものがあります。 コピーしたファイルはマクロ実行できないのでしょうか? (4)ファイル作成途中で何かの変更が生じて列や行の挿入を行った場合、 特定のセルを参照して計算するマクロは実行できなくなるのでしょうか? その場合、簡単に修正する方法はありますか? 初心者にも分かるような回答をよろしくお願いいたします。

  • excel VBA ファイル操作 マクロ について

    excel VBA ファイル操作 マクロ についてです。 ファイルAを基本ファイルとし、ファイルBのマクロB1をファイルB上で実行させる方法はあるのでしょうか? (ファイルBのマクロB1をファイルA上で実行する方法はわかるのですが。。。) ファイルBを開いてB1を実行すれば問題ないのですが、ファイルがB~Zなど多数ある場合に、作業効率化したいのです。 その際ファイルBは開いても開かなくてもOKですが、ファイルB上に表示される実行結果は保存したいです。 その結果、エラーが出なければ「正常終了」、エラーが出れば「異常終了」などを、ファイルAに記録するものを作りたいのです。 どなたかご教授お願いいたします。

  • エクセルのマクロをファイル名で自動実行させたい

    毎度お世話になっております。 エクセル2010で不慣れなマクロを作ったのですが、これを特定の名前のファイル名のBookに一括でコピー?、実行させるような方法はないでしょうか? ファイルを開く時に、マクロが動くようにAuto_Openマクロでやっと動くようになったのですが、ファイル名が「製品名(スペース)〇〇〇」の〇〇〇の付いたエクセルBookを開くときに、このマクロが自動で動くようにする方法は無いのでしょうか? ファイル数が結構あるので、これが出来れば非常に助かるのでお知恵をお貸しくださいませ。

専門家に質問してみよう