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

このQ&Aのポイント
  • エクセル(2003)のコピーと貼り付けを自動化する方法を教えてください。
  • AファイルとBファイルのシートのデータを比較し、Aファイルに表示されているデータをBファイルに貼り付けたいです。
  • 毎日変わるコピー範囲と貼り付けセルの操作をラクにする方法はありますか?
回答を見る
  • ベストアンサー

エクセル(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行目に貼り付け。 毎日コピーする範囲や貼り付けをするセルが変わっていく、固定の範囲、セルではない。この作業を毎日、コピー貼り付けで操作しています。 この操作をラクにしたいです。 困っていることは、コピーする範囲が毎日変わってしまう。(行数が増減するため) 貼り付けるセルも変わってしまう、(行数が増減するため) 分かりずらい説明になっていましたら、申し訳ないです。 よろしくお願いします。

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

  • ベストアンサー
noname#192382
noname#192382
回答No.1

次のマクロはAファイルのシート1にあるデータ全部を Bファイルのシート1のA20以下のセルにコピーしその下にAファイルのシート2にあるデータ全部をコピーするものです。プログラムの中でAファイルをtest9Book1 とBファイルを test9Book2としています。参考になれば幸いです。 Sub Macro3() ' ' Macro3 Macro ' マクロ記録日 : 2013/2/12 ユーザー名 : ' ' Dim b1gend As Integer, as1gend As Integer, as2gend As Integer, b1gst As Integer Windows("test9Book1.xls").Activate Sheets("Sheet1").Select as1gend = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row Range(Cells(2, 1), Cells(as1gend, 2)).Select Application.CutCopyMode = False Selection.Copy Windows("test9Book2.xls").Activate Range("A20").Select ActiveSheet.Paste b1gend = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row b1gst = b1gend + 1 Windows("test9Book1.xls").Activate Sheets("Sheet2").Select as2gend = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row Range(Cells(2, 1), Cells(as2gend, 2)).Select Application.CutCopyMode = False Selection.Copy Windows("test9Book2.xls").Activate Cells(b1gst, 1).Select ActiveSheet.Paste End Sub

関連するQ&A

  • Excelのシート間のコピー&貼付け

    皆様にお聞きしたいのですが。。m(_ _)m あるシートで作成したデータ(罫線等は入れてません。セルに入力したデータのみです)を、一番上の項目名のみまず最初に別シートにコピーしました。 そして元データでフィルタで抽出した間違いがあったデータのみ、複数の行番号をドラッグで選択して別シートにコピー&貼付けをしていたら、なぜか元のシートと列の数が合わなくなりました; 列の数は40前後と多いのですが・・・ 一番上の項目名と途中か合わなくなっていました(T-T) 普通に行を選択してコピー、そして別シートへ貼付けしていただけなのですが。。 こうゆうことってあるのでしょうか??? どなたか、どうかご教授ください。宜しくお願い致します。。 補足 ちなみに、ちゃんとコピー先のシートのA2(項目行の先頭の下の行)にコピーしたのですが・・。

  • エクセルの貼り付けについて

    シート1には  A B 1あ い 2う  3え お という表があります シート2には  C 1か 2き  という表があります シート1の2行目はしばらく使わないので 非表示にして Cの列をコピーして貼り付けをしたところ 2行目に「き」と入力されてしまいました このきを3行目に表示させるコピー&ペーストの方法ありませんか? エクセル2016使用

  • エクセル2003 コピー・アンド・ペーストについて

    エクセル2003の質問です。 下記のデータをコピーして、指定行数おきに貼り付ける方法はありませんか? A1セル~A4セルをコピーしてA2行から指定行数おきに貼り付け(例として1行おき)    A 1  りんご 2  みかん 3  いちご 4  すいか    A 1 2  りんご 3   4  みかん 5      6  いちご 7 8  すいか 貼り付け位置も例としてA2にしました。 よろしくお願いします。

  • 特定のセルの数値の行数だけコピーしたい

    お世話になります。 Excel2002で次のことをやろうとしています。 特定のセルに表示されている数値の行数だけコピーする。 これを、マクロを使って実行したいのですが、その方法が思いつきません。 どのようにしたら良いかお教えください。 [コピー元]のシートの"J53"のセルに、例えば「13」が表示されています。 この「13」がコピーする行数です。 このシートには多くのデータが入っていますが、そのうちの"A1"~"G13"だけのセルをコピーし、[コピー先]のシートの"A8"~"G20"に貼り付けるものです。 コピーする行数を表示しているセル"J53"は、常にこの位置です。 コピーするデータの列は常に"A"~"G"で、変わることはありません。 コピーするデータの行は、始まりは常に"1"からで、最後は"J53"に表示されている数値の行です。 コピーする行数を示す"J53"に表示される数値は「1」~「52」の範囲内です。 コピー先の位置は、[コピー先]のシートの"A8"~で、変わることはありません。 類似の質問を探したり、他にもネット上で探したのですが見つかりませんでした。 よろしくお願いします。

  • VBAでコピーと貼り付けに時間がかかる

    ブックAのシートA´のA2:AZ80にあるデータをコピーし別のパスにあるブックBのシートB´のアクティブなセルに貼り付けをしたいのですが、速度が遅いです。(というよりずっと実行中になってしまいます。) A2:AZ80には空白の行もあるため貼り付け後に空白の行は削除するようにします。 さらに次回貼り付けする際にはその最終行から貼り付けるようにしたいので、(誰かがデータをいじってアクティブセルが任意のところに移動したまま保存された場合も考慮したいので) 現在は貼り付ける前にB2をアクティブにし、その最終行に飛ばし、その下をアクティブにするように しています。 上記の条件で速度をできるだけ早くしてあげるにはコードをどのように書いたらいいのでしょうか? 宜しくお願いいたします。

  • エクセル値の貼り付け

    数式及び関数を多数使用しているSheet1があるとします。(ほとんどが表) 最終的にこれは元請けにエクセルデータとして提出します。 しかし、提出する際には各セルが数式及び関数が入った状態ではなく、文字列(値)としの状態で提出したいと考えています。 一度、Sheet1をコピーしてSheet1(2)をつくり、そのなかの文字及び数式を削除し、表(罫線)だけの状態としました。そしてSheet1を全体を範囲指定しSheet1(2)に『形式を選択して貼り付け→値』としようとしたのですが、『この操作には、同じサイズの結合セルが必要です』とエラー表示がでて貼り付けできませんでした。ほかにも列を指定したりだとかA1から範囲指定したりだとかいろいろ試しましたが結果は同じでした。 おそらく原因は、表の中にいろいろな形でセルを結合しているからだと思います。当然、ひとつのセルでやれば値だけの貼り付けはできます。しかし膨大な表なのでそういう訳にもいきません。 なにかいい方法はありませんか。

  • エクセルのコピー、そして貼り付け

    エクセルで表を作っていますが、一つのセルに複数行入力(AIT + Enter)していますがこの表をコピーして他のシートに貼り付けると、行の長さがコピー元の行の長さにならず途中の行幅でコピーされてしまうため、いちいち行の長さを伸ばして使っています。きちんとした行の長さで貼り付けできる方法を教えてください。よろしくお願いします。

  • エクセル フィルタをかけたセルに貼り付け

    お世話になります。 エクセルのシートでフィルタをかけたセルの、選択した範囲のみをコピーして、 同じ範囲に値貼り付けしたいのですが、よい方法が浮かびません。 フィルタで表示するセルには、数式(VLOOKUP)が入っていて、別シートの値を参照しています。 元データが変更されると、数式で表示されている値も変わってしまうので、 VLOOKUPで引っ張ってきた後に、値貼り付けをして、値を確定させたいのです。 フィルタをかけたセルへのコピーは、マクロを使わないとできないことは分かったのですが、 実際にマクロを組むことができず困っています。 助けていただけませんでしょうか。 ----------------------------------------------------- 参考として、現在次のようなフォームを使い、生産・販売・在庫の管理をしています。   A     B    C   D   E   F   G    H    I 1顧客名 製品名     10/1 10/2 10/3 10/4 10/5 10/6・・・・ 2 A社   AAA  生産   3           販売 4           在庫  5 B社   BBB  生産 6           販売 7           在庫 8 C社   CCC  生産 9           販売 10          在庫 列は、日付になります。 行は、製品ごとの生産、販売、在庫が入ります。 在庫行は、「生産数-販売数」の数式が入っています。 生産行は、依頼先から送られてくる生産実績ファイルをもとに、VLOOKUPで参照しています。 フィルタで「生産」だけを表示し、任意の範囲をコピー⇒値貼り付けできるようにしたいです。 宜しくお願い致します。

  • Excel 隣接しない列に値貼り付け

    Excel 隣接しない列に値貼り付け ※「Excel 隣接しない列に一発で値貼り付け」の書き直しです。 ある一定の書式にしたがって作成された20~30のシートのデータを1つのシートに集約しており(集約シートを含み全てのシートは同じデータ内です。)、データを集約した集約シートの「表A」は下記の添付画像左側のようになります。 やりたいことは、「表A」のB列、C列、D列、E列をある条件のもとに右側の「表B」のH列、J列、L列、N列に値の貼り付けを行いたいのです。 現在の作業工程は、C列の空白行は必要ないため(C列が空白=他の列も空白)C列に文字入力があるとチェックが入るA列のオートフィルターで、「○」のみ表示にし、B~E列を順にそれぞれ、2行目からデータが記載された最終行までコピーし 「表B」のそれぞれの箇所に値貼り付けを行っています。 この時の注意点として、A列のオートフィルタ利用のためC列には空白がありませんが、B、D、E列には空白が存在します。 データがある最終行以下の空白は必要ありませんが、データ間の空白には意味があります。(下記の図で示すと「B3、4」や「D3、4」) 現在の作業工程でも問題はないのですが、この作業は最初に記載した20~30のシートに記載されたデータの校正に使うため取りこぼしをしたくなく、不特定多数の方が簡単に使えるようにしたいので、どうにか作業工程を減らしたいと考えています。 よろしくお願いします。 ▼書式シート *シートの数は増減する。 *集約シートが参照するセルには、必ずデータが入力されているわけではない。 *入力データは全て数値ではなく文字である。 ▼集約シート *他のブックと共通使用なため、一部の式は他のブックへのコピーに対応する形である。 *空白セルを参照している場合に結果として返される「0」は、オプション設定で非表示にて対応 *「表A」の行長は増減する。 *貼り付け先「表B」の列は飛び飛びである。 ▼ちなみに「表A」に使われている計算式(実際とは一部変えています) ■A列  :C列に文字入力がある場合「○」が表示されます     {=IF(OR($C1>""),"○","")} ■B-E列:他のシートの任意のセルの値をコピー     {=IF(ISERROR(INDIRECT("'シート名'!セル")),"",INDIRECT("'シート名'!セル"))} PC環境:Win XP / Excel 2003

  • エクセルのフィルタリングされたのデータコピー

    Excel(2003、またはそれ以降)の質問です。 フィルタで抽出(可視化された)したデータだけをコピーし 別シートのフィルタで抽出したセルだけに張り付けることは可能でしょうか? (例) フィルタにより、シートAの1・2・5行目を抽出し、可視化された項目セルのみをコピー ↓ フィルタにより、シートBの3・6・9行目を抽出し、可視化された項目セルに張り付け。 ※普通にやろうとすると、コピーした内容が、シートBの不可視セルにまで張り付けられてしまいます。 ※コピー元、貼り付け先のセルのサイズや書式は同じです。 今はVLOOKUPで、シートA・Bの共通項目をキーにセルの内容を引っ張ってきてるんですが もう少し楽にコピペできればな、と思い質問しました。 分かりにくい質問ですみません。 何か良い方法があれば、教えてください。

専門家に質問してみよう