• ベストアンサー

マクロで別ファイルのシートコピーして、元ファイルに貼り付けを行なうには

VBA初心者です。こんなマクロを作りたいのですが・・・ (1) Aファイルのαシートから操作する。 (2) Bファイルを開いて、βシートの一部をコピー (3) Bファイルを閉じる(保存なし・各種アラートなし) (4) Aファイルに再び戻り、αシートに貼り付けする といったものなのですが、 (2)まではできたのですが、(3)からうまくいかず、勝手に新規ファイルにβシートがコピーされてしまいます。 是非ご教授ください。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

A No.1とかぶっちゃいましたが、サービスでコード付ということで投稿させていただきます。 (1) Aファイル(マクロを記述してある)から操作する。 (2) Bファイルを開く (3) Bファイルのβシートの一部をコピーして、Aファイルのαシートに貼り付けする (4) Bファイルを閉じる(保存なし・各種アラートなし) というワークフローにすれば、 (3)は、 Sub test() Workbooks("Bファイル.xls").Sheets("β").Range("A1:B4").Copy ThisWorkbook.Sheets("α").Range("a1") End Sub で実現できます。(複写先範囲は適当にいじって下さい)

backknee
質問者

お礼

ありがとうございます うまく実現できました。 本当に助かりました

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

例えばこんなマクロでもできます Sub Macro1() Dim wb As Workbook Dim psw As Boolean Dim myPath As String  myPath = ThisWorkbook.path  For Each wb In Workbooks 'Bファイルが既に開いているか確認   If wb.Name = "Bファイル.xls" Then    psw = True    Exit For   End If  Next wb  If psw = False Then   Workbooks.Open (myPath & "\Bファイル.xls")  End If  Workbooks("Bファイル.xls").Sheets("βシート").Range("A1:A10").Copy  Workbooks("Bファイル.xls").Close False  Range("A1").Select  ActiveSheet.Paste End Sub ただ複数のシートを操作する場合、  Range("A1").Select のような箇所は  Workbooks("Aブック.xls").Sheets("αシート").Range("A1").Select のようにオブジェクトを明示する方が良いと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

(3)と(4)を入替えてみては? というか (1) Aファイルのαシートから操作する。 (2) Bファイルを開いて、βシートの一部をコピーしAファイルのαシートに貼り付け (3) Bファイルを閉じる(保存なし・各種アラートなし) でしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル(2003)のコピーと貼り付けについて。

    エクセル(2003)のコピーと貼り付けについて、操作を自動化したいです。 VBA初心者です。 同じフォルダ内にAファイルとBファイルがあります。 Aファイルにはシート1からシート4まで有り、シート1とシート2にシート3と4を比較したデータを表示させています。 シート1とシート2はA1からG1まで項目として、A2からデータが表示されます。約20行程度、表示される行数は毎日変わります。 Bファイルにはシート1しかありません。A1からG1まで項目とし、A2からデータが表示されています。約100行。毎日変わります。 (Aファイルのシート1とシート2の表示されているデータを貼り付けていく為) Aファイルのシート1に表示されているデータ(A2から)を仮に20行としBファイルの101行目(入力されているデータのすぐしたの行)に貼り付け、Aファイルのシート2に表示されているデータ(A2から)を仮に20行とし、120行目に貼り付け。 毎日コピーする範囲や貼り付けをするセルが変わっていく、固定の範囲、セルではない。この作業を毎日、コピー貼り付けで操作しています。 この操作をラクにしたいです。 困っていることは、コピーする範囲が毎日変わってしまう。(行数が増減するため) 貼り付けるセルも変わってしまう、(行数が増減するため) 分かりずらい説明になっていましたら、申し訳ないです。 よろしくお願いします。

  • エクセルで別ファイルのシートの貼り付けマクロ

    マクロ初心者です。よろしくお願いします。 excelファイルのシートに同じシート名csvファイルのデーターの貼り付けをしたいのです。 ↓詳しくは。 excelファイルがあります。(ファイル名:全社) シート名=集計、1、2、3、4、5、6、7、8、9、10(固定) csvファイルがあります。1~始まり数は変動(1~3だったり、1~7とか) 1ファイル=1シート、ファイル名とシート名は同じ excelファイルのシート(1~10)に、開いたcsvファイルの同じシート名(1~10)のデータを貼り付けたい。 毎回コピー・貼り付けの繰り返し作業なので、マクロ作成を試しているのですが、うまくいきません。 教えてください。お願いします。

  • 別のシートにコピーする方法(マクロ)

    シート1 と シート2 を用意します。 シート1には、 A1:B3 の範囲に文字が入力されています(関数の場合あり) A1:B3の範囲(列の場合あり)をコピーして シート2の現在選択されているセルから貼り付けをワンクリックで する方法(マクロ)はありませんか? 私は、マクロはわかりませんが、マクロでしか出来ないようであれば 覚えます。 教えてください。

  • リンク貼り付けをマクロで簡素化したい

    1)個人票ブック(太郎シート 花子シート 次郎シー・・・・・)の各シートのA1からA5まで、値や公式がはいっています。 2)このシートのA1からA5までの値等を、別の総括表ブック(一枚のシートしかない)にリンク貼り付けをします。 3)まず、太郎シートのA1~A5までは、総括表ブックのB列にリンク貼り付けするマクロボタンを、太郎シートに設置します。 4)さらに、花子シートのA1~A5までは、総括表ブックのC列にリンク貼り付けするマクロボタンを、花子シートに設置します。 5)そして、次郎シートのA1~A5までは、総括表ブックのD列にリンク貼り付けするマクロボタンを、次郎シートに設置します。 6)こうしてマクロボタンを順次貼り付けていきます。 7)各シートの貼り付け場所は列に貼り付けていきますが、上から順番ではなく、任意に飛んでいますが、  各シートの行は、みな一律で同じ行です。 列は違っても皆おなじ行にリンク貼り付けしたいです。 このような操作をマクロ記録でつくりましたが、膨大な作業が必要です。これをなんとかVBAで簡素化したいのですが・・よろしくお願いします。

  • エクセル マクロ コピー 貼り付けについて教えて!

    お世話になります。 エクセルのマクロを利用し下記の 方法はできますでしょうか。 条件:1つのフォルダ内に2つのエクセルデータがあります。 (1)「リスト」名のエクセルデータ (2)「送付状」 (1)「リスト」名のエクセルには下記の内容があります。   A       B  1 山田 03-0000-0000 2 佐藤 04-0000-0000 3 樋口 05-0000-0000 4 加藤 06-0000-0000 「リスト」名のエクセルには事前にマクロを組みます。 (ここを教えてください!) マクロを起動すると (2)「送付状」のエクセルデータごとコピーし ファイル名を「リスト」のB1とします。 例:ファイル名/03-0000-0000 03-0000-0000のファイルを開き A3に「リスト」のA1をコピーし貼り付けます。 C10には「リスト」B1の電話番号をコピーし貼り付けます。 これでファイル名03-0000-0000を保存します。 次に同じ動作を繰り返しますが 新しく作成したエクセルファイル(貼り付け先) のコピー元((1)リスト)はA1またはB1 から次行のA2またはB2と行を変えてコピーし 貼り付け場所は変わらずA3・C10とします。 (1)「リスト」A1欄が空欄になるまでこの動作を つづけ、終わったら「完了」表示がされ作業終了にしたいです。 完成形 (1)「リスト」に100件の名前があった場合 フォルダ内には (1)「リスト」、(2)送付状 その他100件の電話番号名のエクセルファイル が存在する。 お手数をおかけいたいます。 宜しくお願いいたします。

  • 複数のエクセルファイルを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】に変更してマクロを再記録しても 駄目でした。 よろしくお願いします。

  • マクロでのファイル間のシートの移動について

    AというEXCELファイルでマクロを処理した結果をあらかじめ作成しておいたBというEXCELファイルに移動させてBファイルにどんどん保存していくマクロを作りたいのです。 Aファイルでマクロ実行 ↓ Aファイルの処理結果 ↓ BファイルにAファイルの処理結果のシートごとコピー このようなマクロができますでしょうか? わかる方がいましたらよろしくお願いします。

  • EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?

    VBAのマクロでシートのコピーをしたいのですが、元のシートにはVBAのコードが含まれています。コピーするのはデータだけのコピーが必要で、マクロ自体は必要ないのですが、それを削除するコードはどのように書いたらいいのでしょうか? どうしてもコピーしたファイルを開くと「マクロが含まれています」という確認メッセージが出てしまうのですが、それもなくしたいのです。 シートにフォームのボタンが配置されている場合も同様に、そのボタン自体をなくした状態でコピーを行いたいのですが・・・。プログラムで行うのは不可能なのでしょうか?

  • エクセルのファイルに他のファイルのシートをコピーしたい

    エクセルのファイル A に10個のシートがあり、又ファイル Bに5個のシートがあるのですが、 ファイル A のシートを 2個 ファイル Bに移したいのです。うまくコピーできません。 コピーしたいエクセルシート名をクリックして、シートの移動またはコピーを選択しても、新しいブックか現在のファイル名しか表示されません。簡単な編集からコピーをしても貼り付ける時、テキストでの貼り付けになり、元のまま貼り付けが出来ません。

  • リンクがあるシートBのコピーをマクロで

    エクセル2010を使用しております。 シートBを営業日が終了したらコピーして別シートCに保存したいのですが リンクして数字をひっぱっているので そのリンク元(シートA)は 営業日が終了した時点で 数字をクリアして 翌営業日に使用しています。 ですので シートBをコピーしても リンク元(シートA)をクリアすると 入力されていた数字も同時に消えてしまうし また あたり前ですが、元のシートAに数字をいれると 違う数字になってしまいます。 そこで 画像としてコピーして保存するか  印刷して データを打ち直すかしか 考えが 浮かびませんが・・・ マクロを使って いい方法はないものでしょうか? シートを新規に作成→シートBの印刷エリアをコピー→シートCに形式を選択して画像として貼り付け →画像を適切な大きさに縮小する。 上の一連の流れをマクロで できるのか?考えてみましたが、 できれば 画像ではなく コピーして新規シートに作成したいんですが 毎日の作業なので頭がいたいです。もっと絶対いい方法があるとおもいますが。 詳しい方、お願いします。

専門家に質問してみよう