マクロで特定行を含まずコピーする方法を教えてください

このQ&Aのポイント
  • 社内で使っている1ヶ月分の売り上げ表が重くなっており、過去日付の行だけ値で貼りつけたい。
  • 売り上げ表には計算式が入っているが、合計欄だけは計算式を残したままコピーする方法を教えてほしい。
  • どのようにマクロを使えば、特定行を含まずに売り上げ表をコピーして値で貼りつけることができるか教えてほしい。
回答を見る
  • ベストアンサー

マクロで特定行を含まずコピーする方法を教えてください。

マクロで特定行を含まずコピーする方法を教えてください。 社内で使っている1ヶ月分の売り上げを表にしていて、全てのセルに計算式が入っている為、とても重くなっています。ので、過去日付のところは、コピーして値で貼りつけたいと思っています。 名前  6/1  6/2  6/3  6/4  6/5・・・・ 田中(1)  数字・・・・ 田中(2)  数字・・・ 田中(3)  数字・・・ 田中(4)  数字・・・ 田中(5)  数字・・・ 田中(6)  数字・・・ 田中(7)  数字・・・ 合計   合計数 鈴木(1)  数字・・・ 鈴木(2)  数字・・・ 鈴木(3)  数字・・・ 鈴木(4)  数字・・・ 鈴木(5)  数字・・・ 鈴木(6)  数字・・・ 鈴木(7)  数字・・・ 鈴木合計  数字・・・   ・   ・   ・ (5000ほどの行があります) といったような表で、名前の(1)~(7)にも計算式が入っており、それをコピーして値で貼りつけをしたいのですが、合計欄は計算式を残したままコピーしたいのです。 どなたかお知恵をおねがいします。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

> というのを見つけましたが、★の部分が偶数行(?)の指定の為、私が作っている表には当てはまらなく困っています。 私が以前回答した時のコードですね。 コードの内容をちゃんと理解すればちょっとの修正で利用できます。 For i = 2 To Range("A" & CStr(Rows.Count)).End(xlUp).Row Step 2  Range(Cells(i, 2), Cells(i, nTargetCol)).Select ↓ For i = 2 To Range("A" & CStr(Rows.Count)).End(xlUp).Row Step 8  Range(Cells(i, 2), Cells(i+6, nTargetCol)).Select

jk1025
質問者

お礼

mt2008さん ありがとうございます。 私の勉強不足でした。もっとコードが理解できるように勉強したいと思います。 本当にたすかりました。ありがとうございます。

その他の回答 (1)

  • qyukip
  • ベストアンサー率40% (13/32)
回答No.1

合計欄に「合計」と付いているのが条件ですが、 まずオートフィルタをかけ、「合計」を含まない行を抽出してコピーします。 貼り付ける際に形式を指定して貼り付け→値 を選択して貼り付けます。 次にオートフィルタで「合計」を含む行を抽出してコピーし、貼り付けます。 参考になれば幸いです。

jk1025
質問者

補足

qvukipさん  早速の回答ありがとうございます。 私の説明不足なのですが、全体をコピーして貼り付けするのではなく、過去日付の部分のみをコピー貼り付けしたいんです。 いろいろ探してみて Sub Sample()   Dim nTargetCol As Long   Dim i As Long        Application.ScreenUpdating = False   nTargetCol = Evaluate("MATCH(TODAY()-1,1:1,1)")   For i = 2 To Range("A" & CStr(Rows.Count)).End(xlUp).Row Step 2 ★     Range(Cells(i, 2), Cells(i, nTargetCol)).Select     Selection.Copy     Selection.PasteSpecial Paste:=xlPasteValues     Application.CutCopyMode = False   Next i   Application.ScreenUpdating = True End Sub というのを見つけましたが、★の部分が偶数行(?)の指定の為、私が作っている表には当てはまらなく困っています。 偶数行ではなく8行目ごとを省くといった構文はないでしょうか?

関連するQ&A

  • 行コピーして、今日の日付の行に貼り付けるマクロ

    こんにちは、エクセルマクロについて、助けて頂きたく質問させていただきました。 添付しました画像のような表があり、 セルA2に「=TODAY()」が入っていて、セルB2から右は別シートのデータを参照しています。 マクロを実行すると、2行目を行コピーし、セルA3以下の日付からセルA2の日付(今日の日付)を探し出して、行貼り付けしてほしいです。 行コピーや値で貼り付けはマクロの記録を使って、詳しくない私でもなんとか作ることはできるのですが、 今日の日付を探し出して、そこに貼り付ける。というマクロは作れませんでした・・・。 お助け下さい、宜しくお願いします! ※補足します セルA2の今日の日付は便宜上入力しているだけです。無い方がマクロを組みやすいのなら、無くせます。

  • excel マクロで行番号の取得方法

    マクロ初心者です どうしてもできません お願いします! 集計合計値が記入されている行を(例えば、(c5:g5))をコピーをしてday関数を使って得たセルの値を取得してその値を行番号にして、例(k□)として貼り付けし、一日づつ(日付どうり)下にずらして貼り付けしていきたいのですがどうしてもできません また この式を利用して 日にちを集計表のファイル名として保存したいと思っています ご教授宜しくお願いします

  • 複数条件の行の値を集計する「マクロ」のコード

    複数条件の行の値を集計する「マクロ」のコードを教えて下さい。 セルA列には販売員、Bには販売日、C列には売上金額のリストで A列とB列の値が一致している場合その合計を各々のD列に表示させたいと考えております。 例(田中さんが5/5に2件で1000円の売上の場合) 田中 5/5 500 合計1000 田中 5/5 500 合計1000 リストは売上を立てた順に並んでいます。 分かりづらくて申し訳ございません。 宜しくお願い致します。

  • エクセルマクロ 指定した値をコピーしたい

    マクロを始めたばかりなのですが、下記のようなことは出来るのでしょうか? 任意の数字が入力されている表があります。この表の中で、別のセルに入力された数字の入力されている行を削除したいのですが、式が入っているため、削除が出来ません。 削除したい次の行から下をすべてコピーして、削除したい行に値だけコピーをするような(見た目は一段繰り上がったようにしたい)マクロを組みたいのですが。 出来ますでしょうか? 全く作り方が分かりません(;_;) 削除対象 00006 対象 入金額 00001 487,075 00003 120,796 00004 598,000 00005 107,940 00006 1,234 00008 74,750 00009 0 00010 712,816 00011 211,094

  • 特定のセルをフィルタするマクロを作りたい

    特定のキーワードが含まれるセルをフィルタするマクロを作りたいです。 使用環境はExcel2010です。 口頭ではわかりにくいので、画像を添付します。 添付画像のように、それぞれの人物名と点数が一覧になった表があります。 特定の名前の人で点数が一定以下の行をフィルターしたいのですが、毎回フィルターで名前を選ぶのが面倒なので、マクロの記録機能で下記のマクロを作成しました。 Selection.AutoFilter ActiveSheet.Range("$A$1:$C$7").AutoFilter Field:=2, Criteria1:="=鈴木", _ Operator:=xlOr, Criteria2:="=田中" ActiveSheet.Range("$A$1:$C$7").AutoFilter Field:=3, Criteria1:="<70", _ Operator:=xlAnd 上記のマクロで、「田中」と「鈴木」のみ、点数が70点に満たなかった行を抜き出しています。 しかし、他部署の人物も調査の対処に含めるため、E2:E7セルに調査したい対象の名前を入れ、自動的にセルに入力された名前でフィルタリングされるようにしたいです。 この際のマクロの記載方法を知りたいです。 *部署によって人数が異なるため、E2:E7セルに入力する名前がすべて埋まるとは限りません。 *実際の名前と点数は毎月新しいExcelブックで送られてくるので、フィルター用のExcelシートにコピーペーストで張り付けて使用予定です。 *記載されている名前や点数は例です。

  • マクロでコピーしたセルを4行目毎に挿入する方法

    こんにちは!よろしくお願いいたします。 Excel2003で計算式が入力されている1行をコピーして 4行目にコピーしたセルを挿入したいのですが、複数 あるため、マクロを作りたいと思っています。   A   B  C 1 氏名 住所 件数  → 計算式が入力されている 2 氏名 住所 電話 3 氏名 住所 郵便 4 氏名 住所 ふりがな            → 1行目の計算式も含めコピーしたい この操作を繰り返すマクロを作成したいと思っています。 マクロは初心者です。ご指導よろしくお願いいたします。

  • マクロで・・・・

    マクロの設定で困っています 表作成をしているのですが 名前 個数   単価   合計 山田 11    100    1100 田中 10    100    1000 広瀬 10    200    1000 山本 木村 高野 合計 31         3100 というような表作成しています。 入力する毎に数値は入力の度に変ります。 にたとえば 名前 個数   単価   合計 山田 11    100    1100 田中 10    100    1000 広瀬 山本 木村 高野 合計 21         2100 とこういう場合があったりするのですが、“セルを表示しない”を使ってマクロで空白セルの箇所を認識してセルを折りたたむことが出来ないでしょうか?

  • マクロで可能ですか。

    1ヶ月の売上表があり、下記のように 日付毎の合計を、その日付の最終行に表示するのはマクロなどで可能でしょうか。 関数をセルにコピーしていたのですが、 最終行を探し、31日分コピーするのが不評です。 (下記では簡略化しておりますが、1日分の行数が何十行とあります。) もっと簡単に出来ないのかと言われ、ご教授いただけると幸いです。 Excel2010です。 誰でも使用可能なように、シート名に依存しない仕様だと有難いです。 ご協力宜しくお願い致します。 A列       B列    C列   D列 2014/11/01  商品A  \1000 2014/11/01  商品B  \1200  \2200 ←11/1の合計  2014/11/02  商品A  \1000  \1000 ←11/2の合計 2014/11/03  商品C  \1500  2014/11/03  商品B  \1200  \2700 ←11/3の合計 : : 2014/11/30  商品A  \1000 2014/11/30  商品A  \1000  \2000 ←11/30の合計

  • Excelマクロで行を分割してコピーしたいのですが・・・

    いろいろなサイトで調べたのですが、方法が見つからずご質問させて頂きます。 Excelシートの中で値が入っている行まで順番に読み、A列のセルの値が'東京'かつB列の値が'2'以上の行があった場合に、その行をB列の値の数だけその行の下にコピーで挿入したいのですが、どのようなマクロにすれば良いかご教授頂けないでしょうか? 例) セルA1='東京' セルB1='3' の場合、 ---------------------------------- セルA1='東京' セルB1='1' セルA1='東京' セルB1='1' セルA1='東京' セルB1='1' ※セルB1を値の数だけ分割し、なおかつ値を'1'にする ※分割が終わったら、分割元の行を削除する ※その他の列の値はそのままコピーする 以上、宜しくお願い致します!

  • エクセルで、毎回違う行数をコピーするマクロ

    こんにちは Excel2003 を使用しています。 マクロを使って毎回行数が違うデータをコピー貼り付けをしたいのですが よく分かりません。コピー先の最終行そろえのコピーの方法もお願いします。 毎回データ行数が違う2つの表を、新しい表の上の部分と下の部分に分けてコピーしたいのです。 コピー元1 0~20行 コピー元2 0~20行  1と2の合計は、0~20行です。多くても20行まで。 コピー元1を1行目から、コピー元2の最下行を20行目に揃えて、 貼り付け先の表には、上部と下部の間に空白行が入っOKです。 (例) コピー元1          コピー元2  X   Y   Z         AA   AB   AC 1鈴木 千葉 男      1山本 大阪 男 2田中 東京 女      2高橋 京都 女 3                3  ↓↓ 貼り付け先  A   B   C 1鈴木 千葉 男 2田中 東京 女 3 ・ ・ 18 19山本 大阪 男 20高橋 京都 女 のように上部と下部に分けてコピーしたいのです。 行数は毎回ちがい、合わせて20行の場合は、空白行はなくなります。 説明が、つたなく申し訳ありませんが よろしくお願いいたします。

専門家に質問してみよう