人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルのあるシートに

1 2 3 ・・・・
B F A
C W H
D L L
E P M

という表があるとします。
横と縦は何百行になると可能性があります。
また、上記表は空欄である可能性もあります。
これを別シートで

1B
1C
1D
1L
1P
2F
2W
2L
2P
3A
3H
3L
3<

というように並び替えるマクロを組みたいと思います。

どのように組めばよろしいでしょうか。


●質問者: martytaka
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● smithy250
●100ポイント

Function test()

'元のシートの名前
originalSheetname = "sheet1"
'処理先のシートの名前
fixedSheetname = "sheet2"

Worksheets(originalSheetname).Activate

'行数と列数を調査
With Worksheets(originalSheetname).UsedRange
maxRow = .Rows(.Rows.Count).Row
maxCol = .Columns(.Columns.Count).Column
End With

'全範囲を配列にぶっこむ
all = Range(Cells(1, 1), Cells(maxRow, maxCol))

'処理先の行数
fixedRow = 1

For tempCol = 1 To maxCol
For tempRow = 2 To maxRow
Worksheets(fixedSheetname).Cells(fixedRow, 1).Value = all(1, tempCol)
Worksheets(fixedSheetname).Cells(fixedRow, 2).Value = all(tempRow, tempCol)
fixedRow = fixedRow + 1
Next
Next
End Function


smithy250さんのコメント
最大の行数をD1に入れて A1==INT( (ROW()-1)/($D$1-1))+1 B1==HLOOKUP(A1,Sheet1!$A$1:最終セル,MOD(ROW()-1,$D$1-1)+2,FALSE) で心ゆくまでフィルを楽しむ方法もあります。 ただし、空欄が0になります。

martytakaさんのコメント
ありがとうございます!園児が遅くなり申しわけありません。試してみます!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ