• ベストアンサー

Excelのブック間でのデータのやり取り

VBA初心者で今Excelのファイルのデータを抽出し 別ファイルに書き込みをするというプログラムを 作成しているのですが、 データの抽出→別ファイルをOpen→シートを指定→データを対象行に書き込み といった一連の作業は出来るのでしょうか? 今VABを動かしているActive.Sheetは抽出されるファイルのSheetです。

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

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

それくらいの事は普通に出来ますよ。 ブック&シートを指定 →データの抽出 →書込み先ブックが開いているかチェック (※厳密に行うなら、書込み先ファイルの有無をチェック) (→開いていなければ、書込み先ブックをOpen) →ブック&シートを指定 →データを対象行に書き込み の手順で良いかと思います。 複数のブックを対象にしたり、複数のブックが開かれた状態で使用される事を考えて、ブック&シート名の指定は実行時に明示しておく方が良いと思います。 安全の為にも「Active.Sheet」という指定は極力避けて、シート名を使う方が良いかと思います。

yamato_010
質問者

お礼

有難う御座います。正に 「Active.Sheet」で指定して作業を実行させようと していた為に上手くいってなかったようです。 ブック&シート名を指定してやれば普通に出来る 作業なんですね。丁寧なお答え有難う御座いました

関連するQ&A

  • 他ブックからデータ取得

    困っています、よろしくお願いします 現在画像のような月データ(例としてのため簡略化しています。実際はもっとデータ数は多いです)を大量に、いくつかのブックで保存しています。 これらをファイルごと、具体的にはAフォルダに12か月分あると考えてください やりたい事としては、Aファイルにあるこの画像のデータのA列の日付を参照し、日付が変更した行から5行を取り出してその他の同日のデータは消去してを繰返して、Bファイルに新規保存していきたいです この場合、2012/2/2のM列の値段が100から500までの5行を抽出し、他の2012/2/2の行を消去し詰める その後2012/2/12の範囲のM列の値段が1500から1900までの5行を抽出し、他の2012/2/12の行を消去し詰める といった事を最終行まで繰返したいのです この時、対象となる日付の5行以下ならそれら全てを参照、例えば5行を抽出し、他の2012/2/27のデータが3行しかないなら、それらをはじかず全てデータとしてとりこみたいです また、できれば抽出する行数(この場合5行)を自由に変更できるようにもしたいです 日本語がおかしくてよく伝わらないとおもいますが、VBAとかプログラムとかこういうのが全くわからなくて困っています ほんとうに、よろしくお願いいたします

  • EXCELでデータを抽出してコピペしたいです

    指定した日付より、それ以前の誕生日(指定日も含む)の人だけを抽出してコピペしたいのですが WORKBOOK1のSHEET1(名簿)のH列に生年月日(他の列にもデータあります) データは、1200件(行)あります。 WORKBOOK2のSHEET1(該当者)名簿と配列は同じです。 A1に指定の日付をいれます。 WORKBOOK1のSHEET1(名簿)より抽出したデータのペースト位置は、A3からです。 VBAで可能でしょうか?

  • VBA フィルターで抽出したデータを別のファイルの

    VBA フィルターで抽出したデータを別のファイルのシートのセルにヘッダー行とフッター行のあるシートに挿入したい お世話になります。 excel のフィルターで抽出したデータを別のファイルのシートに抽出したデータと同一フォーマットの入っている原紙がありその原紙をコピーしたシートのヘッダー行(A1-A8)の後、9行目からフッター行の手前、52行めまでに貼り付けするを、フィルターで抽出した分繰り返したいのです。原紙 のシートはコピペでしたに20枚ほど作ってあります。 マクロの記述でコピペを繰り返せば作れそうな気はしますが、汎用性が無いので、また私の頭も固いので。 宜しくお願いします。

  • エクセルのマクロで困ってます

    エクセルのマクロで(VBAで) シートにデータが羅列されています。 その中から、条件を満たすものを抜き出したいのですが。 ココまでは条件の合うものを抽出って方法が考えられると思います。 でも、その条件の設定方法を、A1セルに入った数字ってしたいとき。 どのようなプログラムを組んだらいいのか教えてください。 抽出まで一連のプログラムを書いていただけるとありがたいです。

  • エクセルVBAでフィルタ抽出部分のみのコピー

    エクセルVBAで売上帳を作成していますが、オートフィルタでデータ抽出した後、表示されている行のみをコピーして別シートに貼りつけるにはどうすればよいのでしょう? 別シートは指定したセルに値のみの貼り付けをしたいと思っています。 宜しくお願いします。

  • データを別BOOKの指定セルに流し込む方法

    エクセル2003のVBAを使用し、データを別BOOKの指定セルに流し込む方法を教えて下さい。 シート名「流し込み用」の中のデータは4行目から1000行目まで入っていて、列はAとBが結合、DEFが結合されていてGまで4つのデータが入っています。 このデータを10行ずつ、BOOK2のシート名(QW-1)~(QW-100)の指定セル(行は16~25の間、列の並びはBOOK1と同じ)に流し込みたいと思っています。BOOK1のデータもBOOK2のシートも今後増えていきます。 どなたか詳しい方、ご教示いただけないでしょうか?

  • エクセルで抽出したデータを別シートにコピーしたいです

    エクセル2003を使用しています。 例えば、以下のような表があります。  ABC 1あ10 2い15 3あ20 4 A列が条件となり、たとえば「あ」のデータだけ抽出して、そのデータを別シートにコピーします。 同じく「い」だけを抽出して、また別のシートにコピーします。 いままでは、オートフィルタで抽出して自分でコピーをして貼り付けしていましたが、日々データが次の行に追加になるので、毎回オートフィルタしてコピーするのは大変です。 関数か、マクロかVBAを使ってする方法はありますでしょうか。 できれば日々追加になるデータのみをすでにある別シートの前日までのデータの下に追加できるようになればいいと思うのですが。 知識が乏しくできません・・・ よろしくお願いいたします。

  • 異なるブックのデータを同一シートに貼り付けるには

    いつもお世話になっております。 異なるExcelブックのデータ(リスト形式)を一枚のシートに貼り付けるにはどのようなプログラムを組めばよろしいでしょうか。 ・ExcelファイルはOutlookの受信メールにひとつずつ添付されており、各ブックにはシートが一枚のみがあるものとします。 ・受信メールは全て特定のメールフォルダに保存されています。 (1)受信メールの添付のExcelファイルを開く (2)シートの2行目から5行目を選択してコピー (3)"統合"シート(別ファイル)に貼り付け (4)Excelファイルを閉じる (5)次の受信メールのExcelファイルを開いて2行目から5行目をコピー→"統合"シートの最終行の次の行に貼り付け→ファイルを閉じる。 (6)メールフォルダの中の全ての添付ファイルについて(5)を繰り返す。 なお、ファイルを開かなくても貼り付け作業ができる場合にはそちらでお願いします。 よろしくお願いします。

  • VBAのデータ抽出(間引き)について

    VBAのデータ抽出(間引き)について 当方VBA初心者なのですが、 VBA(EXCEL2007)を使用してグラフ作成をしようと思っています。 元データの書式は以下の通りでデータ行は30秒間隔で 一カ月分(8万行)あります。 2010/08/01 01:00:34     1112.83 2010/08/01 01:01:04     1110.43 2010/08/01 01:01:34     1111.87 2010/08/01 01:02:04     1112.23 2010/08/01 01:02:34     1112.43 2010/08/01 01:03:04     1112.03 2010/08/01 01:03:34     1110.83 2010/08/01 01:04:04     1112.43 2010/08/01 01:04:34     1110.63 ・・・ データ量が多すぎるので間引きしようと思っています。 間引き(抽出)条件は以下の様に考えています。 10行毎(5分毎)に値の最大値の行を抽出して別シートへコピー。 VBAマクロで処理するにはどの様な コードで実現可能でしょうか? 教えて頂きたく。よろしくお願いします。

  • エクセルで指定した行数毎に行データを抽出したい

    いつもお世話になっております。 最近データ処理で何度も表題にある処理をしているのですが、何とか簡単にできないかと質問させて頂きます。 決まった書式のデータシートから、指定した行から指定した行までの間で指定した行数置きに別のシートに抜出したいのですが。 例えば、18行目から1500行目迄の間で、3行おきに抽出したい、というような感じです。 現在は、条件付き書式で=MOD(ROW(),3)=1というような式でセルに着色して、色フィルタで不要な行を削除してそれを別シートにコピペして・・・ で何とか処理しています。 尚、贅沢を言えば、シート上の決まったセル(A1、B1、C1・・)に上記の条件(開始行、最終行、行間隔)を入力して、「新規Sheet」に抽出出来れば最高です。 また、例えば手作業で簡単に出来る作業(空白行を削除したシートで・・)等はその旨の条件付きで全くOKですのでよろしくお願いします。

専門家に質問してみよう