• ベストアンサー

複数のワークシートから循環してペースト

エクセルのマクロについて質問です。 複数のワークシートを循環して貼り付けれるマクロを作りたいのですが わかる方教えてください。 やりたいことは、sheet1のD列の3行目の数値を空白にまでコピーし、別ブックのsheet1のB列の4行にはりつけし 次にもとのブックのsheet2のD列の3行目の数値を空白にまでコピーし、別ブックのsheet2のB列の貼り付けた最後尾に貼り付けし また、もとのブックのsheet3のD列の3行目の数値を空白にまでコピーし、別ブックのsheet3のB列の貼り付けた最後尾に貼り付け という作業を循環してほしいです。 よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

(1)エクセルの1つのブックの全シート(名)を1つずつとらえる方法(コード) (2)指定シートのデータの最終行までをとらえる方法(コード) (3) 別ブックの所定セル以下に貼り付け (1)も(2)も毎日のように質問や回答で出てくるコードだ。 WEBででも照会すればコード例がたくさんでる。 勉強不足(丸投げ)。 Googleででも「VBA シート 全シート名 取得」で照会 Sub test01() For Each ws In Worksheets MsgBox ws.Name MsgBox ws.Range("a1") Next End Sub をやってみること。 ーー Googleででも「VBA データ 最終行 取得」で照会 Sub test02() Set ws = Worksheets("Sheet1") d = ws.Range("a65536").End(xlUp).Row MsgBox d End Sub をやってみること。 各ブック各シートを指定して、同様のことをするヒントは、 Set ws = Worksheets("Sheet1") にある。その他ブック版を調べて勉強すること。 ーー 貼り付け先は、貼り付ける直前に、そのシートのデータ最終行(前段階のコピペ作業で行が増えていっている結果を見ている)をとらえて、その1行下から貼り付けすれば仕舞い。

その他の回答 (1)

  • foitec
  • ベストアンサー率43% (1079/2453)
回答No.1

特定のソフトウエアのマクロ設定ですよね? [技術者向] コンピューター のカテゴリでする質問ですか?

関連するQ&A

  • 複数のセルをコピーし、別シートの任意のセルへペーストをするためのマクロ

    ブック(1)のシート(1)にある複数の離れたセル(A1,B2,C3,D4:F4)をコピーし、別ブックのシート(1)のセル(E1,F2,G3,B4:F4)へリンク貼り付けを実行するためのマクロを教えてください。 なお、ブック(1)とブック(2)は同一階層に置いてあります。 このブック(1)とブック(2)の表のフォーマットが違っており、ブック(1)のセルA1をコピーして ブック(2)のセルE1へ貼り付けし、 また同様にブック(1)のセルB2をコピーして ブック(2)のセルF2へ貼り付けをしていきます。 (A1→E1、B2→F2、C3→G3、D4:F4→B4:F4 へ貼り付ける) この作業をマクロを使って自動実行させたいと思っています。 御手数お掛け致しますが、何卒よろしくお願いいたします。

  • エクセルマクロで空欄と空欄の間のデータを取得する

    添付画像のようなデータが並んだエクセルシートがあります。(ブックA) ブックAsheet1のA列に数値が入っている行のB列~D列のデータを別のブックBから取得したいのです。 ブックBにsheet1~sheet20まであります。 ブックAsheet1のA列に数値が入っている行のB列~D列のデータを1セットとして、ブックBのsheet1のB1にコピーする。 次のグループをブックBのsheet2のB1にコピーする、 また次のグループをブックBのsheet3のB1にコピーする。 ブックBには書式設定してあるので、値のみコピーします。 ブックAのB列~D列の数値の配置はそのままでコピーします。 この作業をブックBからマクロで行う方法を教えて下さい。 宜しくお願いします。

  • 複数のシートのデータをひとつのシートに纏める

    EXCELにおいて、複数のシートのA列のデータをひとつのシートにまとめるにはどのようなマクロを組めばよいのでしょうか。 (内容) ”Cycle1”SheetのA列をコピー⇒”まとめ”SheetのA列に貼り付け ⇒”Cycle2”SheetのA列をコピー⇒”まとめ”SheetのB列に貼り付け ⇒”Cycle3”SheetのA列をコピー⇒”まとめ”SheetのC列に貼り付け ⇒”Cycle4”SheetのA列をコピー⇒”まとめ”SheetのD列に貼り付け ・・・。 現在は、上記の内容を手動でやっており、シート数が多い場合大変です。 よろしくお願いします。

  • 複数シートのコピーペースト(+文字列の行削除)

    エクセルで、複数シートをまとめる作業をしているのですが、 幾つかの壁にあたりました。 1.複数シートのCD列コピー、FG列コピーし、他ブックのAB列に1列に貼り付けることができないでしょうか? 複数シートを選択し、クリップボードにコピーし、全て貼り付けをしますが、 1シート分しか貼り付けできません。 もしできるならついでに、シート1のCDシート1のFG続いてシート2のCD、シート2のFGといった、 順番にしたいと考えています。 2.A列に数字と文字があるが、文字の行を削除したい。   A(列)B(列)  コード 名前   1  あ   2  い   3  う  コード 名前   4  え   5  お   ・ ・ ・ ・ 上図で、コードの行を削除したいのです。 ほかに分からないことは、こちらで検索し、解決したんですが、これらは見つからなかったので、お願いします。

  • Excel VLOOKUPで複数の関数

    どなたかわかる方教えて下さい!! わかりにくい説明かと思いますが、よろしくお願い致します。 Aシートにコードが入力されています。 Bシートにコード、文字列、数値が入力されています。 AシートのコードでVLOOKUPを使い、Bシートから数値を呼ぶことはできるのですが、 数値が空白の場合は、空白にする。B列の文字も検索したい場合はどのようにすればよろしいでしょうか? 例 Aシートには、コード001が入っています。 Bシートから、コード001、「あ」の行を検索し、数値をもってきて、空白の場合は空白にしたいです。     A列   B列   C列   D列 1行  001   あ   10   空白 2行  001   い   20   30 3行  002   あ   30   空白

  • EXCELのシート間コピーについて教えてください!

    いつもお世話になります。 また、皆様のお知恵をお貸しください。 ブックにSHEET(1)とSHEET(2)があります。 SHEET(1)のD列の1行目から300行程度まで文字列が入力されております。 下記の作業をSHEET(1)のD列の文字列が終了するまでマクロ等を使って自動化したいです。 1    SHEET(2)のD列の1行目から12行目までの文字列をSHEET(2)のB1,B4,B7,B10,E1,E4,E7,E10,H1,H4,H7,H10の順にコピー 2   印刷 3   SHEET(2)のD列の13行目から24行目までの文字列をSHEET(2)のB1,B4,B7,B10,E1,E4,E7,E10,H1,H4,H7,H10の順にコピー 4   印刷 よろしくお願いします。

  • マクロを途中まで組んで後半どう入力すればいいかで躓いてます

    「記録→実行」が出来る程度のマクロ初心者です。 分かりにくいかもしれませんが、現在の状況です。 内容が仕事の話になるので、例としてのファイル名&データになります。 BOOKファイルが『1月』~『12月』までありまして 1つずつのBOOKファイルには【朝】【昼】【夕】【晩】と4つのsheetがあるとします。 sheet内は    A B~H列 3行:0 12 4行:0 25 5行:0 10 6行:1 13 7行:1 14 ~ 300行:23 15 このような感じで数値が入ってます。 やりたいことは例えば『2月』のファイルを開き、そこでマクロを実行したら4つのsheetの"A列"の"0"の数値を判断し、"0"の数値がある複数の行を指定する。 次にあらかじめ開いてある『2009年』という別のBOOK(同様に各sheetに【朝】【昼】【夕】【晩】があります)にその【朝】【昼】【夕】【晩】の空白の行に"0"の行をコピーする。 次に『3月』を開き、マクロを実行し同様に"0"の部分を指定し開きっぱなしの『2009年』の空白行(先ほどコピーした後のところ)に"0"の行をコピーする。 という感じでやりたいのですが、できるでしょうか? 拙い文章で分かりにくい質問ですが、よろしければ注釈付きで教えて頂けると幸いです。

  • 特定列の転記とシート作成とシート名変更。

    A1からBU160までの表があります(1行目はタイトル行 表は可変です) この表の特定列(例えばBU列)の文字が入っているところまで選択し(タイトル行を除き)コピーするにはどうすればよいですか? また、貼付け先の転記用ブックにおいて、もともとあるシートをコピーし、新たにシートを作りたいのですが、できたシート名に日付をいれるには、どのようなマクロを組めばよいですか?

  • 複数シートの対象範囲セルを1つのシートに集約

    共通の条件で作成された複数シートの対象範囲セルを1つのシートに集約したく望んでおります。 月毎の身体測定結果を集約することが目的で、不特定の人数、名前の情報を管理しております。 (人数の最大は10名程度) 既存ブック(測定結果.xls)を予め設け、内部に「表紙」と「集計」シートを作成。 提出されたファイル内の各シートは測定結果.xls内に全て格納。(シート名は全て氏名です) 「表紙」シートに氏名の入力欄を設定(D列2行目から下方へそれぞれ入力) 入力された氏名からブック内のシートを検索し、対象となるシートの指定セルを「集計」シートの指定セルへコピー 説明が解り辛いと思いますので、例を伴ってご説明致します。 当月の身体測定結果をAさん・Bさん・Cさん・Dさん・Eさんの5名が提出したとします。 ※各人の測定結果はそれぞれのシート名「Aさん」、「Bさん」、「Cさん」、「Dさん」、「Eさん」で構成され、シート内の記載配列等も全て同様としております。(共通する書式フォーマットで作成) これらのシートは全て測定結果.xls内に存在するものとします。 1列目はタイトル、2列目から入力された必要数値となります。 A列には日付(A2セルから1日→A32セル=31日まで) B列には体温(B2から数値記載) C列には体重(C2から数値記載) D列には体脂肪率(D2から数値記載) E列にはBMI(E2から数値記載) F列には血圧(F2から数値記載) ※ ブック内の「集計」シートにタイトルやA列の日付も予め入力。 (1) ブック内「表紙」シートの氏名入力欄に測定者名を入力 (例:D2セル=Aさん、D3セル=Bさん、D4セル=Cさん、D5セル=Dさん、D6セル=Eさん) (2) マクロ実行 (3) 入力された測定者名から合致する対象シートを検索 (4) 「表紙」シートの氏名入力欄D2セルの対象であるAさんの情報(シート内B2::F32までの範囲)を「集計」シートB2::F32へコピー (5) D3セルの対象であるBさんの情報(同じくシート内B2::F32までの範囲)を「集計」シートG2::K32へコピー(コピー先を5列毎変える) (6) 優先順位に従い、動作を繰り返して全ての情報を「集計」シートに集約 ※ コピー先への優先順位は「表紙」シートの氏名入力欄上部より判定(D2→D3→D4・・・) このような動作をマクロ化したく望んでおります。 マクロの記録や相談箱を参考に何度かチャレンジしているのですが、コードの意味が理解できず、近づくことすら出来ません。 恐れ入りますが、ご教授いただきたくお願い致します。 以上

  • Excel VBA 他のシートからセル範囲をコピー

    宜しくお願いします。 Excel2003でVBAを利用しています。 他のブック内にある(sheet1)のセル範囲(B9:D64)の値を 現在開いているブック内の(sheet8)の指定した位置に貼り付けたいと 思っています。 コピーしたセルはB,C,Dと3列あるのですが、 B列を(sheet8)のB列に、C列を(sheet8)のF列に、 D列を(sheet8)のJ列のそれぞれ12行目を頭にして 貼り付ける、という作業をしたいのです。 上記のようなコピー作業が、列や行がばらばらで50箇所くらい あります。 マクロ記録で、2,3箇所試しにやってみたのですが、 1列づつ、クリップボードを経由して行わなければならず、 冗長なコードになってしまい、もっと良い方法があるのでは ないかと思い、書込みしました。 現在のコードです。 workbook(1).Activate 'コピー元のセルを選択してクリップボードへ Worksheets(sheet1).Range("B9:B64").Copy '1枚目 日付列 '現在のブックを選択して貼り付け ThisWorkbook.Activate Range("B12").Select '1枚目 日付列 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False '形式を選択して値を貼り付け 上記のように、1列づつコピーしては貼り付けている状態です。 もっとスマートな方法がありましたら教えてください。 宜しくお願いします。