• 締切済み

2010 Excel VBA 測定結果を貼り付ける

VBA初心者です。 どなたか教えていただけませんか? 測定した結果を各シート別に貼り付けを行いたいのです。 シート名は「データ」で、貼り付けたいデータはG列とI列。 貼り付けたいシート名は1、2、3、・・・15まであります。 データをG列の8個分のデータで行列を入替えて貼り付け(E6~L6) I列も同様に8個分のデータを行列を入替えて貼り付け(E7~L7) ※シート1枚に行う作業はこれで終わりです。但し追記を行いますので基にデータが  ある場合は倍数分飛んで入力を行いたいです。(G列の場合E6,E8,E10,E12・・・、I列の場合E7,E9,E11,E13) マクロ開始時に貼り付けるシートを選択しその順番で各データの貼り付けを行いたいです。 データのG列、I列は連続データなので8個ずつのデータを選択したシート順に貼り付ける。 流れとしては マクロ開始→入力シートを選択→データから各シートへコピーペースト マクロ記録でやってみたのですがなかなかうまくいかず困っています。 大変申し訳ないですが教えて頂けないでしょうか? 知識はVBA入門編が理解できる程度なのでご指導宜しくお願いします。

みんなの回答

  • queuerev2
  • ベストアンサー率78% (96/122)
回答No.1

15枚のシートにある8x2のデータ(元データ)を「データ」というシートに集約するということですね。 もしも元データのあるシートが15枚と決まっていて順番を可変にするだけなら、シート選択にCtrl+PageDownを使ったりすればマクロの記録だけでも何とかなりますよね。マクロを使用する際の流れはたとえば 元データのあるシートを順に並べる→マクロ開始 のようになりますが。 シートの枚数が決まっていなかったり、どうしてもマクロ開始後に入力シートを選択する流れにしたい場合にはVBAのコードを書く必要があると思います。 質問者様は記録したマクロの書き換えを試みられたのでしょうか? もしそうであれば、記録ではどのあたりまでを行い、それを書き換えようとしてどのあたりがうまくいかないのでしょうか?

関連するQ&A

  • Excel VBAでオートフィルタで抽出したデータの一部だけ貼り付けるには

    いつもこのコーナーでは皆様にお世話になっております。以下のVBAマクロが組める方ご教示ください。 Sheet2にあるデータに複数条件でソートをかけ、ある数字(1から18まで)を入れたら、オートフィルタでE列のデータの選択部をSheet1のある部分に1行貼り付けるという作業です。以下のInputBoxに数字を入れるところからです。 (ソート後、どの数字を入れるか判断) ↓ InputBoxにある数字"○"(1から18まで)を入れる ↓ オートフィルタE列「"○-"で始まる」or「"-○"で終わる」 ↓ 抽出されたデータのE列(1列だけ)のデータ(上から17個分)を選択 ↓ 選択部をコピー ↓ Sheet1を選択。Sheet1の"K5"セルに行列を入れ替えて貼り付け という流れなのですが・・・ わかる方教えてください。よろしくお願いします。

  • EXCEL2000VBAの記述について

    e列~j列の5行目に 下記の項目が入っています。   e列 f列 g列 h列 i列 j列 5行目 4月 5月 6月 7月 8月 9月 別シートのE列の5行目に入っているデータと、上記の列(e列~j列)の5行目に入っているデータが 同じの場合は、別シートのE列の6行目から38行目に入っているデータをコピーして、上記の 同じ項目の場所の6行目から38行目にデータを貼り付けたい場合 VBAで記述の仕方を教えてください。

  • 【Excel VBA】重複行の削除

    はじめまして。 IDの重複を削除し、日付データを横1列にまとめるVBAについてご教示いただけますと幸いです。 ------------------------------------------------------- ▼シート1(データ入力がされているシート)    A   B   C   D   E   F    1   ID 日付 2  1234  1/1  1/6  1/10  1/20   3  1234  2/3  2/20 4  1234  3/2 5  7777  1/10  1/15  1/20 6  7777  2/2   2/12  2/22 7  9876  2/3 ⇓ マクロ起動後 ▼シート2(重複行を削除しまとめたシート)    A   B   C   D   E   F   G   H 1   ID 日付 2  1234  1/1  1/6  1/10  1/20  2/3  2/20  3/2 3  7777  1/10  1/15  1/20  2/2  2/12  2/22 4  9876  2/3 【補足】 列情報  ・A列…ID  ・B-F列…日付(左詰め) ※日付はIDごと月毎に行が変わるため、IDによって複数行存在する場合があります。 ※A列のIDは重複しない場合もあれば、4行以上ある場合があります。 ※シート1のデータはおおよそ1000-5000行です。 ※IDに対して、日付は5つあれば問題ありません。そのためG列以降の日付を削除しても支障はございません。 ------------------------------------------------------ VBAの知識があまりなく、調べて出てきたものをコピペ使用も試みたのですが、 上手く動かす事ができませんでした…。 お力添え頂けますと幸いです…。 Windows10でエクセル2016を使用しております。 何卒宜しくお願いいたします。

  • vbaで最終行に張り付け

    Excelマクロについて教えてください。 sheet2にsheet1から選択した範囲を貼り付けております sheet2のC列が連続した値になっておりそれを軸に貼り付けをしたいのです。 sheet1のA1:g40の範囲をcutしたものを sheet2のC列の最終入力行の一段下の行に A列から貼り付けしたいのです。 よろしくお願いします

  • Excel VBA 条件を満たすデータのコピーと計算結果の表示

    Excel2003を使用しています。 Sheet1のある選択範囲に対して(都度、手動で選択します) D列-E列が0でなかったら、その行のデータをSheet2のアクティブセル以下にコピーするという処理を下記のマクロでしています。 下記のマクロにコードを追加することによって、条件を満たすデータをコピーする際、D列-E列の計算結果をSheet2のD列に表示させることは可能でしょうか? 例えば、Sheet1のD5セルに100、E5セルに50と数値が入力されていた場合、Sheet2のD7セルに50と計算結果を表示させたいですのですが…。 (貼り付け先の行は、アクティブセルの行です) よろしくお願いします。 -------------------------------------------------- Sub Macro1()  Sheets("Sheet1").Activate '選択範囲のサイズ取得   With Selection    i = .Cells(1).Row    j = .Cells(1).Column    k = .Cells(.Count).Row    l = .Cells(.Count).Column   End With  Sheets("Sheet2").Activate   ActR = ActiveCell.Row   ActC = ActiveCell.Column  With Sheets("Sheet1")   For m = i To k    If .Cells(m, 4) - .Cells(m, 5) <> 0 Then     .Range(.Cells(m, j), .Cells(m, l)).Copy     Sheets("Sheet2").Cells(ActR, ActC).PasteSpecial Paste:=xlPasteAllExceptBorders     ActR = ActR + 1     Application.CutCopyMode = False    End If   Next  End With End Sub

  • EXCEL2010 VBA 繰り返し処理

    EXCEL2010でVBAを使用してシートを作成しています。 シート1のA1にヘッダ数・A2に項目数を入力します。 VBAのコードを実行するとA1のヘッダ数が1ならシート2のA列には何も表示せず A2の項目数の分だけB列の14行目から数字を入力していきます。 (例)シート1   A1:1   A2:20  の場合はシート2のB14から20行下まで1~20の値を自動入力させる。   シート2   B14:1   B15:2     ↓   B33:20 シート1のA1が2以上の場合はシート2のA14から、シート1のA2の数値分アルファベットを表示させていきます。 (例)シート1   A1:2   A2:10  の場合シート2のA14:A23に「A」を表示させます。(シート1のA2の数分この場合は10行ずつ)               A24:A33に「B」を表示させます。               B列にはアルファベットごとに数字を1~表示させます。   B14:B23 1~10   B24:B33  1~10 シート1のA1が2なのでA・Bを表示 A1が3だとA・B・C A1が10だとA・B・C・D・E・F・G・H・I・JがA2の数字で区切りながら表示される。 このようなコードを書きたいのですが、どなたかご教示お願いします。

  • Excel VLOOKUPをVBAでやりたいのですが、分からなくて困っ

    Excel VLOOKUPをVBAでやりたいのですが、分からなくて困ってます。 Sheet1のC列2行目行こうにSheet2のI列のデータを取得し (A列にデーターが入っている分、(時と場合により表示数が違う為)) なおかつ Sheet1のD列2行目以降にB-Cの差し引きをおこなう 以上のことをSheet1をアクティブにした時VBAでおこなうには、? 教えて下さい。宜しくお願い致します。

  • マクロ・VBA初心者です。

    マクロ・VBAについて下記のような処理を簡素化できるかどうかお伺いさせて頂きたいです。 Excelシート前提条件 定期的に3社から入金(同じタイミングで受けております)を受けており、その入金を管理しているシートとなります。 A列には第何回目の入金か、B列には入金日を、C,D,E列には3社ごとの入金額が他のシートからとんでくるようになっており、F列には3社からの入金額をsum(C○:E○)で計算しております。 ※A2には「第一回目」、A3には「第二回目」のように入力されています。 ※○には、最新回文の行番号が入力されています。 このような設定とはなっていますが、新たに入金を受けると、前回分の1つ下の行に、前回分の数式をコピペし、また前回分のは前回分の行に値貼り貼り付けをしなおし、数式ではなく手打ちの入力と同じ形にしております。 つまり、数式が入力されているのは最新回の行のみで、過年度分は全て値貼りされ直されている状況です。 説明がへたっぴでごめんなさい( i _ i ) 前提条件は上記のようになっておりますが、 (1)最新回の行に、1つ上の行の数式をコピペする (2)コピペ後、前回分の行に前回分のを値貼りしなおす この(1)、(2)の動作をマクロ・VBAでできますでしょうか。 マクロ・VBAは初心者であるためなかなかうまくいかずに困っております。 ご指導のほど、宜しくお願い致します。

  • Excel2007でBOOK間のシート移動をVBAで行うとエラーになる

    Excel VBAで開発されたソフトの改造を行ってますが、Excel2007で動作しないマクロがあり困ってます。 <開発環境> ・WindowsXP Pro SP3 ・Celeron 540(1.8GHz) ・メモリ1GB ・Excel2007 SP1 (Microsoft Office2007) 改造元ソフトはOffice2000で開発されており、Excel2007で動作するとマクロエラーが発生する処理があります。 因みにまだソフト改造はしてなく、そのままExcel2007で動作させるだけでマクロエラーが発生します。 発生する箇所はVBAで開発されており、下記のコマンドです。 Sheets(移動元シート名).Move Before:=Application.Workbooks(移動先ブック名).Sheets(1) 異常の内容は下記になります。 ------------------------------- ?err.Description 移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。 ?err.Number 1004 ------------------------------- 移動元BOOKは1シート、移動先BOOKは1シートあります。 これをExcel2000で実行すると正常にシートが移動できます。 (移動元BOOKのシートがなくなりBOOKが終了して、移動先BOOKは2シートになります) Excel画面の移動元シートを選択して、右クリックメニューの「移動またはコピー」で移動先ブックを指定して移動すると 「移動先またはコピー先のブックの行列数が元のブックの行列数よりも少ないため、シートを移動先またはコピー先のブックに挿入できません。データを別のブックに移動またはコピーするには、データを選択して、[コピー] コマンドと [貼り付け] コマンドを使用して移動先またはコピー先のブックのシートに挿入してください。」 とVBAから実行した時と同じ内容のエラーダイアログが表示されました。 (Excel2000では手動でも移動できました) Excel2007では1シートで構成されたBOOK間の移動はできないのでしょうか? また、これをVBAで対策しようとした場合にどうしたら良いのでしょうか? ネットで調べましたが判らず、ここで質問させて頂きました。 判りにくい説明で申し訳ありませんが、よろしくお願いします。

  • excel-vba

    エクセルVBAで Case Cells(50,"A") Case Cells(51,"A") Case Cells(52,"A") などを更にsheet1のCells(50,"A")とかするにはどう記述すればいいのでしょうか。 ただしこのマクロ(コード)はsheet2を処理対象としているsheet2に含まれているものとします。 (素人なのですがこういう言い方はおかしいですか。マクロってシートごとにも使うマクロを変えることできるんですよね?  Sheet1用のMACROsheet1、Sheet2用のMACROsheet2で互いのシートの上のデータを処理する。)