プロが教えるわが家の防犯対策術!

教えてください。

自分はエクセル2016を使っているのですが、今大量のデータを整理しなくてはいけなくて困っています。1万以上の行数があるエクセルデータから複数の行をコピーしたいのですが、これを手作業でやるには時間がかかる上に、ミスをすると最初からになってしまうためどうにかしたいです。
いくらか調べてみましたが、VBAを使用するとよいという事は分かったのですがうまく理解できませんでした。
データは画像の通りでメインのデータはシート2にあるデータです。

面倒な質問をして申し訳ございません。
お判りになる方いましたら教えていただけませんでしょうか。
よろしくお願いします。

「エクセルで複数の行を新しいシートまたは新」の質問画像

質問者からの補足コメント

  • 例として500行目と800行目といっただけで、実際には複数の行をコピーしたいと思っています。
    言葉足らずでした。申し訳ございません。

    No.5の回答に寄せられた補足コメントです。 補足日時:2017/01/02 13:47
  • わざわざありがとうございます。
    試してみたのですが、500行目と800行目のデータではなく1行目と2行目のデータがコピーされてしまいました。
    一応元データとしましては、シート1~1(50)までのA列にデータがあり、シート2にそれらのデータを=Sheet1!A1、='Sheet1 (2)'!A1 というようにまとめています。
    このまとめたデータが悪さをしているのかわからないのですがうまくいきませんでした。

    「エクセルで複数の行を新しいシートまたは新」の補足画像2
    No.4の回答に寄せられた補足コメントです。 補足日時:2017/01/02 13:55

A 回答 (6件)

VBAで出来ますが、どのようにしたいかを文章で説明お願いします。


小さい画像だけではわかりませんので。

データの中からメインというデータと何かが同じものだけを抽出してコピーしたいのですか?
    • good
    • 0
この回答へのお礼

言葉足らずでした。すいません。
シート2にある500行目と800行目のデータを新しいシートにコピーしたいと思っています。
500行目のD列のデータとかでは無く、500行目のデータ全部をコピーしたいです

お礼日時:2017/01/02 13:22

複数行ということは抽出する対象の行のデータには一定の条件があるのですよね?


その条件がわからないと回答のしようがありません。

抽出条件が決まっているならVBAを使わなくてもオートフィルタでできそうな気がしますが、オートフィルタは試しましたか?
    • good
    • 0

その複数の行(コピー対象)は、どうやって決まるのですか?


規則性があるのですか?

規則性があるとか、事前にパターンが決まっているとか
そう言うものであれば、マクロ等の活用も有効ですが

規則性が無くその都度、操作する人が目で見て決まるような場合にはいまいちでしょう

私なら
規則性が全くないようなケースであれば、A列前に一列追加して仮にマーク列のようにします
で、目で確認しながらコピー対象なら、マーク列に何か印を入力する

で全体の確認が終了した時点で、フィルター機能を使ってマーク列に印の有るモノだけを抽出してコピーするとかするでしょう
※この部分をマクロ化するとかなら容易に作成可能

結局、対象の選択の規則性次第ですね
    • good
    • 0
この回答へのお礼

ある一定の数値としての規則性はないのですが、500行目と800行目のデータを新しいシートにコピーするという風に考えてます。
あと同じようなデータがたくさんあるため、1列追加するような操作は時間がかかるのと、このデータを他にも使用するのでなるべく列の追加などはしたくありません

お礼日時:2017/01/02 13:28

固定の2行だけを新しいシートに、でいいのですね。


Sub Sample()
Dim sh1 As Worksheet, sh2 As Worksheet
Set sh1 = Worksheets("Sheet2")
Set sh2 = Worksheets.Add
sh1.Rows("500").Copy sh2.Rows("1")
sh1.Rows("800”).Copy sh2.Rows("2")
End Sub
この回答への補足あり
    • good
    • 0

>500行目と800行目のデータを新しいシートにコピーするという風に考えてます。


ならさぁ

「ミスをすると最初からになってしまうためどうにかしたいです。」
ミスする余地がほとんどないし、万が一ミスしてもやり直しなんてすぐじゃん

なんか最初の話と状況が違ってない?
この回答への補足あり
    • good
    • 0

シート名が間違っていませんか?


貴方がシート2と書いたものはSheet2としています。
Set sh1 = Worksheets("Sheet2")
sh1.Rows("500").Copy sh2.Rows("1")
sh1.Rows("800”).Copy sh2.Rows("2")
このコードでSheet2の1行目と2行目が新規シートにコピーするはずありません。
コピー先は1行目と2行目にしてあります。
新規シート(白紙の状態)これでいいのではないですか?

どうもシート名の勘違いのように思います。
もしかして別ブックにしたいとか・・
    • good
    • 0
この回答へのお礼

解決しました!
自分の勘違いがありました。
ありがとうございます

お礼日時:2017/01/02 14:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!