こんにちわ。
業務で、WEBレポーティングツールをいじっております。(特定のレポートを社内以外の人にブラウザで閲覧できるツール)
サーバーでDBよりデータ参照、レポート作成等の処理をしてクライアントにHTMLレポートを出力するという構造です。そのソフトにはサーバーでレポート閲覧やエラーなどの監査ログを残す機能があり、CSVファイルで出力されるのですが、ちょっと表示がおかしいのです。
そのCSVファイルをテキスト形式で開くと正しく表示されるのですが、MS/EXCEL2000で開くとカンマで区切られておらず、一行のデータが一つのセルにはいってしまいます。
具体的に言うと
A1セルに、「ABC,2000/01/08,あいうえお」
A2セルに、「DEF,2000/01/09,かきくけこ」
・・・・
なぜこういう現象が起きるのか検討しているのですが、文字コードが異なっているか、些細なゴミのようなものが混入されているか不明です。
ソフト会社に人に質問をしても、未だ回答がこないです。ただ、仕様によると吐き出すCSVファイルは、「unicodeでエンコーディングされている」ということはわかりました。
また、MS/ACCESS2000でそのCSVファイルをインポートすると、日付&数値の項目は、インポートエラーとなり読み込みできません。(文字は問題無し)
そのソフトは、米で販売されてた物を日本語仕様に直して販売しています。
上記の状況なのですが、どのように原因を推測されますでしょうか?
よろしくお願い致します。
No.3ベストアンサー
- 回答日時:
基本的なことですが、拡張子は.csvに成ってるのでしょうか?
それから、「MS/EXCEL2000で開く」とは、どのように開いているのでしょうか?
・Excelのメニューから開く
・エクスプローラーからDrug&Drop
・ファイルをダブルクリック
・エクスプローラーから「アプリケーションから開く」
等など
これに、よっても多少動きが違うような気もします。
回答ありがとうございます。
上記に掲げた方法を試しましたところ、「Excelのメニューから開く」→カンマの区切り文字を指定すれば正しく表記することがわかりました。
多少面倒ですが、一番簡易な方法でした。
ryoukunさんありがとうございました。
No.2
- 回答日時:
カンマを認識しないと言う点に、的を絞ってはどうですか。
(1)問題のCSVファイルを16進表示できる、Editorをお持ちならそれで「2c」(=Jisコード44)があるか調べる。ついでに「0d0a」(行の終わり)もあるか調べる。
(2)無ければエクセルをお持ちであると仮定して
ワークシートでALT+F11でVBE画面になり
ALT+I(挿入)、ALT+M(標準モジュール)で、標準モジュールの画面になるから、下記を貼り付ける。そしてコードの中へポインタを置いて、F5(実行)キーを押す。fnのCSVファイル名は適宜変更のこと。
flは表示文字数ですが適当に増減可。
下記はMsgboxで表示していますが,Worksheets("sheet1").Cells(x, 1) = sと x = x + 1の前の
’を消し、Msgboxの前に’を入れると、エクセルの表に出ます。
そこで「44」(カンマ)「1310」(改行復帰。横行の終わり)を確認してください。-xxxxxと出るのは漢字分です。
数字は48(0)から、また英字は97(a)からの連番です(JISコード)。
Sub test01()
fn = "c:\My Documents\aab.csv"
Open fn For Input As #1
ll = FileLen(fn)
fl = 10
rl = 0
For j = 1 To 1000
If ll < fl Then GoTo end1
a = Input(fl, #1)
ll = ll - fl
s = ""
For i = 1 To fl
b = Mid(a, i, 1)
s = s & Asc(b)
Next i
MsgBox s
' Worksheets("sheet1").Cells(x, 1) = s
' x = x + 1
Next j
end1:
Close #1
End Sub
ファイルの最後が上手く終わらないですが、よろしく。
回答ありがとうございます。
忙しくてVBAの方は試しておりませんが、
バイナリエディターで監査ログファイルを開いてみました。
突然、ちょっと話は反れますが・・・・
私のOSはWIN95で、そのメモ帳で開いたところ文字と文字の間に
スペースが挟んで表示されてました。
具体的に言いますと
"31/11/2000,/ReportViewing,9844383"
と言うログ表示が
" 3 1 / 1 1 / 2 0 0 0 , / R e p o r t V i e w i n g , 9 8 4 4 3 8 3 "
のようになってました。
ただし、Win NT4.0&Win2000でのメモ帳、Win95での秀丸では、スペースなし表記でした。
そして、話は戻って肝心のバイナリエディターで開いたところ、
すべてスペース(コードは00)が挟まれてある表記でありました。
おっしゃられたカンマコード(2C)は確かにありました。
が、改行コード(0d0a)は「0d 00 0a 00」のようにスペース(00)が
挿入されておりました。
スペースコード(00)を削除していけばなんとか、エクセルでの表記は
正しく行なわれたようです。(膨大なデータですのですべて確認できておりません)
もう少し、突っ込んで追求はしてみたいのですが、質問に対する回答で解決しましたのでこの質問は締め切らせて頂きます。
一応、この事実をソフト会社に投げて見ます。
いい知恵を拝借できたimogasiさんには大変感謝しております。
ありがとうございました。
No.1
- 回答日時:
全く的はずれかも知れないのですが・・・。
CSVファイルをワードパッドとかのテキストエディタで開いてカンマをカンマで検索/置換してみたらどうでしょうか。
同じもので検索/置換ってバカ見たいなんですけど・・。
ずーと以前、なんのアプリだったか覚えてないのですが、英語と日本語のバージョンで互換があるはずだったものが、カンマとアポストロフィーが(見た目は全く同じなのに)認識されなくなった事がありました。
その時、同じもので検索/置換して、取り合えず使えるようになりました。
その当時はコードの違うものが入ってたんだと勝手に思ってましたが、きちんと理由まで探らなかったので、今だに何故かは不明ですが・・(^_^;)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- Excel(エクセル) Excelのセル上の日付の不具合 3 2022/05/22 18:20
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) csvに別のExcelの文章を差し込む 2 2023/04/01 16:06
- Excel(エクセル) csvファイルをExcel形式で読み込むには 2 2023/07/03 13:09
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
複数のcsvファイルをExcelに一...
-
バッチでCSVを処理する時、空の...
-
csvファイル 項目数取得
-
【エクセル マクロ】読み込ん...
-
マクロから出力されるcsvのダブ...
-
vb2010でCSVファイルを並び替え...
-
COBOL85でのCSVファ...
-
データ解析ソフトRでのファイル...
-
CSV形式での保存時に”文字列...
-
【C#】パス名で無効な文字
-
Excelでcsvのフィールドが減る
-
Rについての質問です。 Abc.csv...
-
CSVファイル作成
-
VBSでソート&ファイル分割
-
複数のCSVファイルのAccessテー...
-
csvファイルのデータの間引きを...
-
csvファイルでの日付設定「yyyy...
-
特定ファイルの一括削除
-
エクセルVBA 大容量CSVファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
csvファイル 項目数取得
-
バッチでCSVを処理する時、空の...
-
csvファイルでの日付設定「yyyy...
-
マクロから出力されるcsvのダブ...
-
CSV形式での保存時に”文字列...
-
データ解析ソフトRでのファイル...
-
VBAでcsvファイルを読み込んで...
-
複数のcsvファイルをExcelに一...
-
COBOLでCSVをインプットにして...
-
エクセルVBA 大容量CSVファイル...
-
【C#】パス名で無効な文字
-
CSVファイル作成
-
csvファイルのデータの一部を取...
-
CSVファイルの項目行を削除...
-
EXCEL|csvで保存→開くcsvを閉じる
-
複数のCSVファイルのAccessテー...
-
巨大なCSVの加工(指定列のみの...
-
COBOL85でのCSVファ...
-
csvファイルのデータの間引きを...
おすすめ情報