プロが教える店舗&オフィスのセキュリティ対策術

Excel VBA 並び替えについて
お手数をおかけします
下記条件のようなプログラムを作りたいのですがご教授をお願いいたします

sheet1
A1 みかん
A2 りんご
B1 ブドウ
C1 メロン
D1 柿
D2 イチゴ
と記載されているのを
sheet2のB2から縦に並び替えたい
B2 みかん
B3 りんご
B4 ブドウ
B5 メロン
B6 柿
B7イチゴ

ご教授をお願いいたします

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

  • 列ごとにソートしたものを続けて表示を行いたいです
    柿は入力時にかきで変換しました

      補足日時:2017/09/14 12:24
  • 説明不足で申し訳ありません
    表現を間違えておりました
    今回 考えていることは続けて表示を行いたいだけですので並べ替えるなどの行為は不要です
    紛らわしい質問内容をしてしまい申し訳ありません

      補足日時:2017/09/14 13:09

A 回答 (5件)

No.3 追補



もちろん、以下でもいいです。

Sub 並び替え()
Dim 元行 As Long
Dim 元列 As Long
Dim 先行 As Long
先行 = 2
Sheets("Sheet1").Select
For 元列 = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
For 元行 = 1 To Cells(Rows.Count, 元列).End(xlUp).Row
Sheets("Sheet2").Cells(先行, 2).Value = Cells(元行, 元列).Value
先行 = 先行 + 1
Next
Next
Sheets("Sheet2").Select
End Sub
    • good
    • 1
この回答へのお礼

対応出来ましたありがとうございます

お礼日時:2017/09/16 09:14

何でそんなプログラム作りたいの?

    • good
    • 1

以下のようなものではどうでしょうか?



Sub 並び替え()
Dim 元行 As Long
Dim 元列 As Long
Dim 先行 As Long
Dim 行終 As Long
Dim 列終 As Long
先行 = 2
Sheets("Sheet1").Select
列終 = Cells(1, Columns.Count).End(xlToLeft).Column
For 元列 = 1 To 列終
行終 = Cells(Rows.Count, 元列).End(xlUp).Row
For 元行 = 1 To 行終
Sheets("Sheet2").Cells(先行, 2).Value = Cells(元行, 元列).Value
先行 = 先行 + 1
Next
Next
Sheets("Sheet2").Select
End Sub
    • good
    • 0

もう一度確認ですが「柿」と「イチゴ」の順番ですが、「昇順」で並び替えると逆になりそうですが、もしかしたらソートするわけではなく、た

だ続けて表示するだけでしょうか?
    • good
    • 0

念の為に確認しておきます。


・ 列ごとにソートした物を続けて表示すると言う事でしょうか?
・「柿」は入力時に「かき」を変換したもので、内部的にフリガナが「カキ」となっているとして考えて良いのでしょうか?
    • good
    • 0

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