dポイントプレゼントキャンペーン実施中!

マクロ等について全くの初心者ですm(_ _)m
以下のマクロを組むにはどうしたらよいか教えて頂けませんでしょうか。
よろしくお願い致します。

サンプル1~10のデータを10回取ったとき、以下のようにデータが1列に100個並んでいて、No.1がサンプル1のデータ、No.2がサンプル2のデータ・・・No.11がサンプル1のデータ、No.12がサンプル2のデータ・・・となっています。これを別のシートに、横にNo.、縦にデータ値を並べ変えたいです。

No.  値
1  101
2  100

10 101
11 103
12 102
 :
100 102

↓以下のように別のシートに並び変えたい。

   サンプル1  サンプル.2 ・・・・ サンプル10
 1  101      100    ・・・・   101
 2  103      102          :
 :    :        :           :
10                      102

A 回答 (2件)

こんなのは、ロジックといって、経験していかないと良いものは作れない。

初心者はVBAのオブジェクトやプロパティ・メソッドのほかにこういう訓練をしないと。少し本を読んだ後でも、こちらで行き詰まるものが多い。
このロジックは、普通は、数通りは考えられる場合が多い。
要点は
・繰り返しを何処に見つけるか。
・それをどうコードで表現するか
一例で、2重ループといわれるものでやってみた。
Sheet2を中心にして考えている。Sheet2の在るセルは、Sheet1のドノセルから持ってくるのかと。
2つのシートを扱う問題なのも本当は、初心者向けじゃない。
Sub test01()
Dim sh1, sh2
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
d = sh1.Range("a65536").End(xlUp).Row
For i = 1 To Int(d / 10) + 1
For j = 1 To 10
sh2.Cells(i, j) = sh1.Cells((i - 1) * 10 + j, "A")
Next j
Next i
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

ご察しの通り、うまく表現できず困っておりました。
この例を参考に応用できるよう頑張っていきたいと思います。
またよろしくお願いします。

お礼日時:2011/09/28 22:15

一例です。


行見出し、列見出しは入力済みとしています。

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
Sheets(2).Cells(2, 2).Offset(Fix((i - 2) / 10), (i - 2) Mod 10) = Cells(i, 2)
Next
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

表現方法大変参考になりました。
初心者の私ではとてもこのような表現はできなかったと思います。
またよろしくお願いします。

お礼日時:2011/09/28 22:05

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