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

不特定多数の行数(百列以上)と列数(千列以上)を持ったデータを以下にある結果1を結果2のように列と行を置換したいのですがどうしたらよろしいでしょうか?
もしよろしければ、プログラムを教えていただけたら助かります。
よろしくお願いします。
///////////結果1////////////////////
A1 B1 C1 →不特定の列数
A2 B2 C2
A3 B3 C3

不特定の行数
///////////結果2///////////////////
A2 A2 A3
B1 B2 B3
C1 C2 C3

A 回答 (2件)

プログラムを使わなくても「範囲のコピー」「形式を選択して貼り付け」で、[行列を入れ替える]チェックをOnというのがありますが。

    • good
    • 1
この回答へのお礼

お返事ありがとうございます。すいませんが今回はVBAで自動でやるのが目的ですので、プログラムで書きたいと思っています。

お礼日時:2008/03/24 22:49

マクロの記録でできると思いますが、コメント付きコードは以下のとおり。


Ctrl+Endで、不特定であっても行・列共に最大値(最終)セルを選択できます。
Ctrl+Shift+Endで、最大値(最終)セル「まで」を選択できます。

現在のデータがSheet1にあるとして、行列置換後のデータをSheet2に置くとします。


'コピー元を選択する
Sheets("Sheet1").Select
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

'クリップボードへコピーする
Selection.Copy

'コピー先を選択する
Sheets("Sheet2").Select

'クリップボードからコピー(ペースト)する
  ’Transpose:=Trueがミソ。形式を選択して貼り付けの行列入れ替え
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    • good
    • 2
この回答へのお礼

お返事ありがとうございます。’Transpose:=Trueですね!
確かにこれなら、1セルずつを置き換えさすプログラムよりも短かく、短時間の処理でできますね。 参考になります。

お礼日時:2008/03/24 22:58

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