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

エクセルで作ったデータを思うようにマクロで並べ替えられないです。
どうかアドバイスをお願いします。

エクセル2010を使っており、
やりたいことはシート3に画像の通りの並び方でシート1,2に入力した値を参照して書き出す、というマクロを組みたいです。

もしくはオートフィルで楽に繰り返すことができる方法があれば教えていただきたいです。
よろしくお願いします。

「エクセルで作ったデータを思うようにマクロ」の質問画像

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

  • 状況説明があまりにも不足でしたので補足です。

    シート1には
    Aに検体ナンバー、B~Dには各試験項目の値が入力されている表があります。

    シート2には
    Aに検体ナンバー、B・Cにはその検体の性状、D~Gには各測定項目が入っている表があります。

    私はシート3に
    各検体ごとの試験項目の値と測定項目の値をまとめた表を作りたいです。
    それが添付画像のような配置になります。

    既に検体No.2までの配置は終えているのでナンバー1~2のすべての項目を指定し、オートフィルでドラッグすれば同じ配置で望むセルから値を参照してくれると思ったら、
    1の次に5の検体の値がでてきてしまいます。
    手入力で指定していくにはあまりにも膨大な数の検体があるのでマクロで一括処理できないでしょうか。

    「エクセルで作ったデータを思うようにマクロ」の補足画像1
      補足日時:2016/11/29 16:37
  • ありがとうございます。
    シート1・2の表はその様な形で間違いありません。

    試験結果がcsvで出力されてくるのですが、それを別のソフトに読み込ませるには並べかえをする必要があり、作業時間短縮のために今回の質問をしました。
    このようなマクロは組むことができるのでしょうか?

    他の質問にあったマクロをいじればなんとかならないかと調べたり考えてはいるのですが、crng とはなんなのか、
    なぜDim が二回出てきているのか、どこを弄れば何が変わるのか、標準モジュールとはどこまでの範囲に効果があるのか、など暗中模索しております。
    どうかご助言よろしくお願いいたします。

      補足日時:2016/11/30 07:20
  • おはようございます。
    質問の回答は以下の通りです。

    ①タイトル行はありません。
     試験結果のCSVからタイトル行を抜いてコピーペーストして使う予定なのでタイトル行はその時点で削除します。

    ②シート1とシート2の表は添付画像の通りです。
     ほとんど同じような数値がならんでいるものの、別の値です。


    ③罫線は必要ありません。

    ④セル結合は必要ありません。

    「エクセルで作ったデータを思うようにマクロ」の補足画像3
      補足日時:2016/11/30 09:38
  • 勉強不足で申し訳ないですが、対応が必要ないというのはどういった意味なのでしょう。

    行が同じであればシートが違っていても同じ検体です、という返答で大丈夫でしょうか?

      補足日時:2016/11/30 09:55

A 回答 (7件)

質問されている内容がまったく判りません。


常に指定されているセルの値を貼り付けるだけなら式だけで済むと思います?
「データを思うようにマクロで並べ替えられない」とは、まさかとは思いますが「頭で考えただけでコードも書かず思った通り勝手に並べ替えられる」なんて思っていたりしませんよね?
○○の時に△△を□□のようにやりたいとかを、言わないと誰にもわかりませんよ!
    • good
    • 3

シート名!セル名で表示できます。


例 Sheet1のA1のセルの値を表示
=Sheet1!A1

例 Sheet2のB2のセルの値を表示
=Sheet2!B2
    • good
    • 0

元のシートのイメージが載っていませんが下図の様になっているのでしょうか?

「エクセルで作ったデータを思うようにマクロ」の回答画像3
    • good
    • 2

念の為にもういくつか質問があります。


① シート1やシート2にはタイトル行はありませんか?
② シート1とシート2には同じ順番で同じ数が並んでいますか?
③ シート3は罫線を引く必要がありますか?
 (多分ここが一番時間がかかる)
④ シート3はセル結合は不要ですか?
    • good
    • 0

No.4 追補



念の為一応確認しておきます。シート1とシート2のA列は行が同じならば同じと考えていいですか?(対応を探す必要はない?)
    • good
    • 0

「行が同じであればシートが違っていても同じ検体です」


了解いたしました。少々お時間下さい。
    • good
    • 0

こんな感じでいかがですか?


-----------------------------------------------------------------
Sub Sample()
Dim 行 As Long
Application.ScreenUpdating = False
Sheets("Sheet3").Select
行 = 1
Do While Sheets("Sheet1").Cells(行, 1).Value <> ""
Cells(行 * 4 - 3, 1).Value = Sheets("Sheet1").Cells(行, 1).Value
Cells(行 * 4 - 3, 2).Value = Sheets("Sheet1").Cells(行, 2).Value
Cells(行 * 4 - 2, 3).Value = Sheets("Sheet1").Cells(行, 3).Value
Cells(行 * 4, 3).Value = Sheets("Sheet1").Cells(行, 4).Value
Cells(行 * 4 - 3, 4).Value = Sheets("Sheet2").Cells(行, 4).Value
Cells(行 * 4 - 2, 4).Value = Sheets("Sheet2").Cells(行, 5).Value
Cells(行 * 4 - 1, 4).Value = Sheets("Sheet2").Cells(行, 6).Value
Cells(行 * 4, 4).Value = Sheets("Sheet2").Cells(行, 7).Value
行 = 行 + 1
Loop
Application.ScreenUpdating = True
End Sub
-----------------------------------------------------------------
    • good
    • 0
この回答へのお礼

助かりました

今動作確認をしました!これで完璧です!
一気に108個の検体データを並べ替えることができました!
最初から最後まで丁寧かつ素早くお答えいただきありがとうございました!
ホームなんとお礼を言ったらいいのかわかりません!
ありがとうございました!

お礼日時:2016/11/30 10:34

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