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

エクセルで列と行を入れ替えたいのですが、かなり膨大なデータ
量のためアクセスでユニオンクエリを作成したのですが、
いくつもクエリを作成しなけらばいけなのでかなり面倒です。
VBAで一発ではできないでしょうか?

A 回答 (3件)

ではVBAを使った例を。


Sheet1の10行20列の値をSheet2の20行10列に
セットする処理例です。

Sub IREKAE()

 Dim intI As Integer
 Dim intJ As Integer

 For intI = 1 To 20
 For intJ = 1 To 10
  Sheers("Sheet2").Cells(intJ, intI).Value = _
   Sheers("Sheet1").Cells(intI, intJ).Value = _
 Next IntJ
 Next IntI

End Sub

この回答への補足

おお!すばらしい!
エクセルで実行してみました。
ありがとございます。
ただ、今回データ量が行で4万件以上あるので
小分けに実行しているわけにもいかないので
アクセスにおとし、できるだけ簡単に処理をしたいのですが
、このプログラムをアクセスで修正し使用できますでしょうか?

補足日時:2007/02/04 01:03
    • good
    • 0

おせっかいかもしれませんが、極めて根本的な問題があります。



エクセルでは、256列を超えるデータは扱えません。近々出るであろう最新バージョンでも、16384列までしか扱えないはずです。

なので、仮にそのデータをcsvに落として、外部の別ソフトで行列転置をやれたとしても、相手が4万行を超す大物なら、エクセルでは読めないデータができあがっておしまい…という悲しい結末になるのでは?

なので、何とかエクセルで扱える列数になるよう、データを256行ごとに分割するとか、行列転置しないで処理する方法を考えるという逃げも、検討しなければならないかも知れません。
    • good
    • 0

行と列を入れ替える機能はExcelの機能にあるようです。


Excelのバージョン次第ではわかりませんが。

1.コピーしたい箇所をコピー
2.貼り付けしたいセルで右クリックして
「形式を選択して貼り付け」
3.表示されたメニュー下部の「行と列を入れ替える」に
チェックして「OK」を押す。

この方法をお試しください。

この回答への補足

データ量が多いので、その機能が使えずユニオンクエリを
作成したんですよ。。。
ごめんなさい。説明不足でしたね。
回答ありがとうございます。

補足日時:2007/02/03 15:36
    • good
    • 0

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