VBAの1行目のコピー

このQ&Aのポイント
  • EXCEL2010のマクロで困っております。皆様のお力をお貸しください。
  • BookAとBookBがあります。BookAにはたくさんのSheetがあります。これを一つのSheetにまとめました。このSheetをBookBにコピーしました。
  • BookAのデータが少ない時にも一行目の項目をコピーしたいのですが、どうすれば良いかご教授願います。
回答を見る
  • ベストアンサー

VBAの1行目のコピー

EXCEL2010のマクロで困っております。皆様のお力をお貸しください。 環境:WindowsXPSP3 office2010 EXCEL2010です。 やりたい事、BookAとBookBがあります。BookAにはたくさんのSheetがあります。これを、これを一つのSheetにまとめました。このSheetをBookBにコピーしました。そこで、1行には、項目入っています。A1には、生徒の名前、A2には、男女別、・・・と言うふうにA1~AW1まで入っています。A2行以下にはたくさんのデータが入っています。このデータは、BookBの一つのSeetにコピーしました。BookAのデータ行が沢山ある場合は、良いのですが、少ないと、BookAの一行目の項目の入った部分だけがBookBの一つのSheetにコピーできません。一行目のコピーの仕方は下記の通りです。 Sheets(4).Range("A1:AW1").CurrentRegion.Copy Sheets("Sheet" & sheetsuu).Range("A1:AW1") そこで、BookAのデータが少ない時にも一行目の項目をコピーしたいのですが、どうすれば良いかご教授願います。宜しくお願い申し上げます。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>一行目のコピーの仕方は下記の通りです。 >Sheets(4).Range("A1:AW1").CurrentRegion.Copy Sheets("Sheet" & sheetsuu).Range("A1:AW1") 一行目だけなら With Sheets(4)   .Range("A1", .Cells(1, Columns.Count).End(xlToLeft)).Copy Sheets("Sheet" & sheetsuu).Range("A1") End With

19560816
質問者

お礼

皆さんどうも有難う御座います。watabe007の方法でも出来ませんでした。今後とも宜しくお願い致します。

その他の回答 (1)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

一行目、丸ごとコピーでは不具合でも? Sheets(4).Rows(1).Copy Sheets("Sheet" & sheetsuu).Range("A1")

19560816
質問者

お礼

皆さんどうも有難う御座います。しかし、watabe007方法でも出来ませんでした。今後とも宜しくお願い致します。

関連するQ&A

  • 参照先のブックを開かずに内容をコピーしたい

    エクセルのマクロ初心者です。 いつもここで他の方のQ&Aを参考にしたり、自分で質問したりしてお世話になっています。 今回は、参照先のブックを開かずにその内容をコピーする方法についてお聞きしたいです。 現在、下記のようなマクロを組んでいます。 Workbooks.Open FileName:="BookA.xls" Sheets("Sheet1").Activate Range("B4:H4").Copy Windows("BookB.xls").Activate Sheets("Sheet2").Select Range("B1").Select Sheets("Sheet2").Paste Workbooks("BookA").Close Windows("BookB").Activate つまり、BookAのセルの一部分をコピーしてBookBのセルに貼り付けるという内容なんですが、コピー参照先のBookAを一度開いてコピーしてからBookBに行って貼付け、さらにBookAを閉じた後でBookBに再び戻る、という動作になっているため、画面がパラパラと切り替わる時間があって少々うっとおしいのです。 BookAをいちいち開かずに内容をコピーする方法があると思うのですが、どのような構文を使えばいいでしょうか? ご回答よろしくお願いします。

  • 【Excel】2つのBook間のマクロ

    Excel2003を使用しています。 BookAのSheet1とSheet2のある範囲をそれぞれBookBのSheet1とSheet2に値のみコピーするというマクロを作成しようとしています。 (1)Sheet1を値のみコピーするコード   を書いて (2)Sheet2を値のみコピーするコード   を書こうと思っていたのですが、(1)から(2)へどのように続けて書いたらいいでしょうか? (1)のコードは  Sheets("Sheet1").Range("A1:G30").Select  Selection.Copy  Workbooks.Open Filename:="A:\B.xls"  Sheets("Sheet1").Range("A1").Select   Selection.PasteSpecial Paste:=xlPasteValues   Application.CutCopyMode = False と書いています。 また、こういう場合は、BookAとBookBのどちら側にコードを書いた方がいいのでしょうか?

  • VBA Selectの省略

    こんばんは、VBAのSelectメソッドの省略について質問させてください。 VBAにおいてSelectを使用すると処理が遅くなると聞いたことがあるので、なるべくSelectを避けるべく以下のVBAを記述しました。 内容は、シート「りんご」のA列~AN列に入っているデータを見出し項目を含めてコピー、そしてSheet1にペーストするというものです。(行数は毎回変化します。) ところが、以下を実行したところ、コピー&ペーストされたのは1行目の見出し項目のみでした。一方、「Range("A1:AN" ~」の前に「Sheets("りんご").Select」を入れたところ、全てのデータをコピー&ペーストすることができました。 この場合は、Selectを使用せずデータをコピー&ペーストすることは不可能なのでしょうか…?!どなたかご回答いただけると嬉しいです、よろしくお願いいたします。  '対象データのコピー&ペースト Sheets("りんご").Range("A1:AN" & Cells(1).CurrentRegion.Rows.Count).Copy Sheets("Sheet1").Paste

  • VBA 最終行を選んだシートにコピーする。

    VBAど初心者です。どうしても最終行のデータを選んだシートにコピーできません。 LastRow.Selectのところで、止まってしまいます。どのように行を設定していいのかさっぱりわかりません。どなたか、ご指導のほどよろしくお願いします。 Sub copy_last_line() Dim LastRow As Long Sheets("Sheet1").Select LastRow = Cells(Rows.Count, 1).End(xlUp).Row LastRow.Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("A1").Select End Sub

  • エクセル2002 winXP タイトルの列を入れ替えて他のブックへコピーしたい

    お世話になります。 簡単なマクロを使って、表題通り、あるブックの表を、他のブックへ コピーし、なおかつタイトル列を右へ左へと入れ替えた状態で表示する方法を 教えてください。 具体的には・・・ bookA には、A列から順番に、たとえば 日付 材料名 単価 入り数 金額 というタイトルの列が並んでいて(データの量は、3000行くらいです) 各列には文字列だったり数値だったりのデータが入っています。 このようなデータから、他ブック  bookB へ。 このbookB には、既にデータが何千行か入っていて、bookAと 同じデータなのですが、 見方を違えているので、タイトルがbookA と 並び方が違っています。 bookA のタイトルが、bookBでは 日付 単価 金額 入り数 (実際にはもう少し複雑なのですが)と並んでいます。 このbookBの、最終行に、bookA を、貼り付けたいのです。 bookA   日付 材料名 単価 入り数 金額    (3000行くらいデータが入ってるのでそれをコピーしたい) から、 bookB   日付 単価 金額 入り数        (既に何千行か入ってるので最終行の続きへ貼り付けたい)

  • エクセルVBAのコピー方法について。

    セル結合された表を別シートコピーする方法を教えてください。 以下のように記述しましが、実行時エラーとなり 「結合されたセルの一部を変更することはできません。」となります。 Range("A1").CurrentRegion.Copy Destination:=Sheets("Sheet2").Range("A1") よろしくお願いします。

  • 再質問 EXCEL データをコピーして別シートの最初の空白行に貼り付け

    再質問 EXCEL データをコピーして別シートの最初の空白行に貼り付けたい QNo.6023986でEXCEL データをコピーして別シートの最初の空白行に貼り付けたいと書き込んだものです。 質問内容は以下の通りです。 Sheet1はA列からR列までを使ったシートで、1行目は各項目があり、2行目からは当月のデータが入力されています。 Sheet2はSheet1の1行目と同じようにA列からR列までが項目になっていて、期中のデータを付け足していきたいと思っています。 マクロの記録でやってみたのですが、前月の最後の行(貼り付ける最初の空白行)の認識の仕方が分からず、Sheet2への貼付がうまくいきません。 どのような方法でやったらいいのか教えて下さい。 ----------------------------------------------------------------------------------- 回答で以下のマクロを教えていただき、テストではうまくいったのですが、 ひとつのブック内でsheet1をsheet2に、sheet3をsheet4に、sheet5をsheet6にと行いたいので、 以下のコードのシート名をそれぞれ書き換えてやってみました。 ところが、1を2にはできたのですが、3を4でやってみたところ、 なんどやっても『400』というエラーが出てしまいます。 シート名の他にも書き換えが必要なのか教えてください。 よろしくお願いします。 Sub Macro1() GYOU1 = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row GYOU2 = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row + 1 Sheets("Sheet1").Select Range(Cells(2, 1), Cells(GYOU1, 18)).Copy Sheets("Sheet2").Select Range("A" & GYOU2).Select ActiveSheet.Paste Application.CutCopyMode = False End Sub

  • Excel VBA 数式を参照範囲分コピーする方法

    作業環境は以下の通りで、Excelの知識は初心者です。 OS:Windws7 / 使用ソフト:Excel2003 商品.xlsには3つのシートが存在します。 シートはそれぞれ、1行目は見出し行としています。 ・商品データが入った「生データ」シート ・「生データ」シートから必要な情報を参照や加工する数式がA2~AG2に入った「詳細」シート ・「生データ」シートから必要な情報を参照や加工する数式がA2~G2入った「カテゴリ」シート。 「詳細」「カテゴリ」共に数式の入った行を「生データ」の数(行)に合わせて、オートフィルコピーし、最終的にcsvファイルを作成します。 他に、商品.xlsと同じ作りのファイルが複数あり、それらは「生データ」の行数がバラバラの為、VBAで処理したく検索したところ以下のページを発見しました。 http://www.excel.studio-kazu.jp/kw/20110513073632.html VBAは初心者の為、このVBAの意味を検索しながら以下の様に理解して修正したのですが、思うように処理できずにいます。 何が違っているか教えて頂けないでしょうか。 また、できれば数式だけが入ったファイルを雛形として用意し、 生データだけのファイルは別に持ち、処理する形が望ましいのですが VBAで可能な事なのでしょうか? lasとは、生データの最後尾を定義 詳細のA1~AG2セルから1つ下のセルの値を消去し、2行目をコピーし 生データの2行目~最後尾までの行分の数式を貼り付ける カテゴリにも同じ処理を与える Sub データ抽出() Dim las As Long las = Sheets("生データ").Range("A" & Rows.Count).End(xlUp).Row With Sheets("詳細") .Range("A1").CurrentRegion.Offset(1).ClearContents .Range("2:2").Copy .Range("2:" & las).PasteSpecial xlFormulas End With With Sheets("カテゴリ") .Range("A1").CurrentRegion.Offset(1).ClearContents .Range("2:2").Copy .Range("2:" & las).PasteSpecial xlFormulas End With End Sub

  • 任意の複数行をコピーするマクロ

    VBを勉強中の初心者です。 マクロの自動記録でシート1の5~6行目をシート2のセルA3へコピーすることはできました。マクロの内容は   Sheets("Sheet1").Select   Rows("5:6").Select   Selection.Copy   Sheets("Sheet2").Select   Range("A3").Select   ActiveSheet.Paste となっていました。 上記のシート1の5~6行目を任意の複数行(例えば A1 に 200306 A2 に 200307 A3 に 200307 A4 に 200307 A5 に 200308 A6 に 200309 A7 に 200309 のデータがあった場合、コピーしたい年月が 200307 の場合は A2 ~ A4 をシート2のA3へ)でコピーしたいのですが、どうすればよいのかどなたか教えて下さい。よろしくお願いします。

  • エクセルVBA:コピーの貼り付け先

    VBA初心者です。よろしくお願いします。 あるデータベースをセルB2に入力されている値で絞込み、 シート2に貼り付けるとき、下記の(1)がおそらく正解だと思いますが、 ★(質問1) (2)でも同じ結果が得られました。コピー先の目的地を示す「Destination:=」の部分は省略して全く問題なしと考えてよろしいのでしょうか? ★(質問2) (3)で試してみても同じ結果が得られました。range("sheet2!A1") なんて書き方は、たまたま、試してみたらできちゃった(同じ結果が得られた)のですが、使い方として問題ありませんか? ------------------------------------------------------------- (1) Sub test01() With Range("A1") .AutoFilter field:=2, Criteria1:=Range("B2") .CurrentRegion.Copy Destination:=Sheets("Sheet2").Range("A1") .AutoFilter End With End Sub -------------------------------------------------------------- (2) Sub test01() With Range("A1") .AutoFilter field:=2, Criteria1:=Range("B2") .CurrentRegion.Copy Sheets("Sheet2").Range("A1") .AutoFilter End With End Sub -------------------------------------------------------------- (3) Sub test01() With Range("A1") .AutoFilter field:=2, Criteria1:=Range("B2") .CurrentRegion.Copy Range("Sheet2!A1") .AutoFilter End With End Sub

専門家に質問してみよう