プロが教えるわが家の防犯対策術!

エクセル2003を使用しています。
CSV形式のファイルがあるのですが、エクセルで開くと列が256を越えているためにエラーがでて、全てが表示されません。行は256を越えていないので、エクセルで開くときに列と行を入れ替えたいのですが、何か方法はないでしょうか?
Windows2000を使用しているためエクセル2007は使えません。

A 回答 (4件)

>CSVファイルがカンマ区切りではなくタブ区切りでしたので


説明不足とは思うが、カンマ区切りでなくTAB区切りなら
s = Split(a, ",")
のところを
s = Split(a, vbTab)
と訂正すればよい。
これぐらい推測でき無いなら、質問の回答を出してもらっても、仕様が無いのではと思う。
ーー
A1に="as" & CHAR(9) & "ffff" と入れて
下記実行しうまくいくこと確認しました。
Sub test01()
a = Cells(1, "A")
s = Split(a, vbTab)
For i = 0 To UBound(s)
MsgBox s(i)
Next i
End Sub
    • good
    • 0

#2です。


翌日(11/3)になって、同じような質問を見ましたので
そちらに対し答えたものですが、VBAでのコードを作ってみたので挙げておきます。
ーー
Sub test01()
Open "C:\Documents and Settings\xxxx\My Documents\testcsv.csv" For Input As #1
j = 1
While Not EOF(1)
Line Input #1, a
s = Split(a, ",")
For i = 0 To UBound(s)
Cells(i + 1, j) = s(i)
Next i
j = j + 1
Wend
Close #1
End Sub
ーーー
Openの後のファイル名はパスも含めて質問者のケースのものに書き換えるkと。
標準モジュールに貼り付けて、実行。
ーー
例データ CSV ファイル
"aaabbb","ss",1
"aa","d",2
"dd","f",3
"ff","g",4
"gh","hh",5
"jjk","jj",6
"sd","k",1
"ss","a",2
結果
エクセルのシート
"aaabbb""aa""dd""ff""gh""jjk""sd""ss"
"ss""d""f""g""hh""jj""k""a"
12345612
ーー
付記
コードの書き方について2,3種類あり、一番旧い形のコードですが、コードの文字数が一番少ないので、上例を挙げておきます。
    • good
    • 0
この回答へのお礼

説明不足ですみません、CSVファイルがカンマ区切りではなくタブ区切りでしたので作っていただいたVBAではうまく処理できませんでした。参考にさせていただいて行列入れ替えのVBAをつくってみたいと思います。ありがとうございました。

お礼日時:2007/11/05 13:11

エクセルのシートに読み込めれば、ご存知の、編集ー形式を選択して張り付けー行と列を入れ替えるで済みますが、読み込めない以上どうしようもないですね。


ーー
(1)フリーのソフトを探す
(2)CSVファイルを250列とその右列で分割する(VBA)
(3)VBAでCSVレコード(各行)を読んで、データを列方向にセットする(VBA)
(4)2007を使えるところを見つける。
(2)、(3)とも10数行で済むプログラムなのですが、VBAの経験が無ければ、できない。(1)もVBAを知っているものには、10数行のプログラムで済むので、それだけを公表するのも、と思ってあまり無いと思う。
    • good
    • 0

似た質問と回答


http://q.hatena.ne.jp/1150805179
    • good
    • 0
この回答へのお礼

ありがとうございました。
参考にさせていただきます。

お礼日時:2007/11/05 09:16

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