マルシェル新規登録で5000円分当たる

こんにちわ。

業務で、WEBレポーティングツールをいじっております。(特定のレポートを社内以外の人にブラウザで閲覧できるツール)

サーバーでDBよりデータ参照、レポート作成等の処理をしてクライアントにHTMLレポートを出力するという構造です。そのソフトにはサーバーでレポート閲覧やエラーなどの監査ログを残す機能があり、CSVファイルで出力されるのですが、ちょっと表示がおかしいのです。

そのCSVファイルをテキスト形式で開くと正しく表示されるのですが、MS/EXCEL2000で開くとカンマで区切られておらず、一行のデータが一つのセルにはいってしまいます。

具体的に言うと
A1セルに、「ABC,2000/01/08,あいうえお」
A2セルに、「DEF,2000/01/09,かきくけこ」
・・・・

なぜこういう現象が起きるのか検討しているのですが、文字コードが異なっているか、些細なゴミのようなものが混入されているか不明です。

ソフト会社に人に質問をしても、未だ回答がこないです。ただ、仕様によると吐き出すCSVファイルは、「unicodeでエンコーディングされている」ということはわかりました。

また、MS/ACCESS2000でそのCSVファイルをインポートすると、日付&数値の項目は、インポートエラーとなり読み込みできません。(文字は問題無し)

そのソフトは、米で販売されてた物を日本語仕様に直して販売しています。

上記の状況なのですが、どのように原因を推測されますでしょうか?
よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

基本的なことですが、拡張子は.csvに成ってるのでしょうか?



それから、「MS/EXCEL2000で開く」とは、どのように開いているのでしょうか?
・Excelのメニューから開く
・エクスプローラーからDrug&Drop
・ファイルをダブルクリック
・エクスプローラーから「アプリケーションから開く」
等など
これに、よっても多少動きが違うような気もします。
    • good
    • 2
この回答へのお礼

回答ありがとうございます。

上記に掲げた方法を試しましたところ、「Excelのメニューから開く」→カンマの区切り文字を指定すれば正しく表記することがわかりました。

多少面倒ですが、一番簡易な方法でした。
ryoukunさんありがとうございました。

お礼日時:2002/12/18 13:41

カンマを認識しないと言う点に、的を絞ってはどうですか。


(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
ファイルの最後が上手く終わらないですが、よろしく。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

忙しくて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さんには大変感謝しております。
ありがとうございました。

お礼日時:2002/12/18 13:33

全く的はずれかも知れないのですが・・・。



CSVファイルをワードパッドとかのテキストエディタで開いてカンマをカンマで検索/置換してみたらどうでしょうか。
同じもので検索/置換ってバカ見たいなんですけど・・。

ずーと以前、なんのアプリだったか覚えてないのですが、英語と日本語のバージョンで互換があるはずだったものが、カンマとアポストロフィーが(見た目は全く同じなのに)認識されなくなった事がありました。

その時、同じもので検索/置換して、取り合えず使えるようになりました。
その当時はコードの違うものが入ってたんだと勝手に思ってましたが、きちんと理由まで探らなかったので、今だに何故かは不明ですが・・(^_^;)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
0011Allenさんの言われるとおりやったのですがだめでした。
違う原因でしょうね。

お礼日時:2002/12/17 22:20

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QCSVファイルの中で、「 , 」カンマを使いたい

「 , 」で区切られたCSVファイルの中で、「 , 」カンマを使いたいのですが、可能でしょうか?

具体的には「これは1,500円でした。」というように、CSVファイルに収められた文章内で出てくる半角の数字(お金)の区切りに使いたいのです。
全角では代用したくないのですが、CSVファイルでデータを受け渡しする際に、困っています。

例えば、特殊文字などで対応可能でしょうか?

Aベストアンサー

受け渡しに使うと言うことは相手方のアプリケーションのことも考えなければいけないのですが・・・とりあえず対応が簡単そうな方法を。

1.各セルを""で囲む。(もちろんデータにダブルクォートがある場合はカンマと同様に困ります。
2.カンマで区切らずにタブで区切る。(比較的使われない文字ですが、やはりデータ中にタブがあるとカンマと同様です)

難しいけれど完璧に対応するためには、データ中の区切り文字は特殊な文字列に変更し、受け取り側のアプリケーションではその特殊な文字列をデータ中の区切り文字として扱うという方法が使われます。
例えば、データ中のカンマは\,にするとか。

データ作成側、受け取り側でそれぞれどこまで対応できるのか分かるともっと簡単かつ具体的な方法を回答できるかも知れません。

Qexcelデータをコンマ付きテキストで出力したい

おはようございます。
excelデータをコンマ付きテキストで出力したいのですが、その方法を教えてください。

Aベストアンサー

CSVなら
名前をつけて保存で
ファイルの種類でCSV(カンマ区切り)
を選ぶ

QCSVデータをエクセルのセルに入れたい・・・

よろしくお願いします。

CSVデータを当方ではエクセルで開いてます。
カンマ区切りごとのデータがエクセルのセルに1つずつ入力されてるので 不用データを行や列ごと削除できるので便利に使っていました。 が、他のPCでデータを同じように加工しようとしたところ、最初のセルに全て連続して入っているという状態で、上記のような作業が出来ませんでした。

5台のPCともXPでエクセル2003です。
テキスト形式・タブ区切り・カンマ区切りなどなど専門的なことが良く判っていないため、説明もうまくできませんが、PCの設定なのか?セルに1つづつ分ける方法があるのか?何でわたしのだけ? ??
引継ぎが出来ず困っておりますのでどなたかお願いします。教えてください!!

Aベストアンサー

お使いのPCが凄くラッキーだったとお考え下さい。
そのPCでも同じ作業が出来るかと言うと、なんらかの設定で出来ない場合があります。
ここでは別の方法を書きますね。
まず、エクセルを起動します。
メニューの[データ]から、[外部データの取り込み]を選択します。
ここで先ほどのCSVファイルを選択します。
テキスト ファイルウィザードの最初の画面で、
元のデータの形式にあるデータのファイル形式を選択で、
カンマやタブなどの区切り文字・・・を選択します。
次の画面、区切り文字は、カンマにします。
下のデータのプレビューできちんと列毎になっているのを確認して下さい。
最後の画面では、データの形式がきちんとなっているかを確認します。日付なら日付、文字なら文字列などねぇ。完了を押したら、どこから取り込むかを選択、通常はA1を選択していればいいと思います。

以上の操作をすれば、どのPCでも列毎に表示されると思います。ただし、文字数が極端な場合や、#表示されているものなど、Excelでいじった後に保存すると文字化けなどする場合があるので、バックアップはとるようにして下さいね。

頑張りましょう!!

お使いのPCが凄くラッキーだったとお考え下さい。
そのPCでも同じ作業が出来るかと言うと、なんらかの設定で出来ない場合があります。
ここでは別の方法を書きますね。
まず、エクセルを起動します。
メニューの[データ]から、[外部データの取り込み]を選択します。
ここで先ほどのCSVファイルを選択します。
テキスト ファイルウィザードの最初の画面で、
元のデータの形式にあるデータのファイル形式を選択で、
カンマやタブなどの区切り文字・・・を選択します。
次の画面、区切り文字は、カンマにし...続きを読む

QCSVでタブ区切り

はじめまして。エクセル2003を使用中です。

データのやり取りをする際に
「エクセルのデータをCSVでタブ区切り」に変換して送って欲しい
と言われました。

保存時に
「名前を付けて保存」→「ファイルの種類」で「SCV」を選択すると「,」で区切られますよね?
これを簡単にタブ区切りにしたいのですが・・そんな方法はありますでしょうか?

現在は一旦TXT形式で保存し、ファイル名を直接「CSV」に変更しています。
実は常時この作業を行う者がPCに詳しくない為、できる限りわかりやすく作業を行いたいのです。
不明点があれば補足させていただきますので
アドバイス等ございましたらどうぞよろしくお願いします。

Aベストアンサー

CSVではなくて、TSVですね。--拡張子は、txtでもよい。
 ・・・Windowsではtsvという拡張子は普通はないが他のOSではしばしばtsv・・
excellにて、名前をつけて保存メニューで、タブ区切りというのを選んで、保存すれば良いです。拡張子をtsvにしたければ、ファイル名に
"abc.tsv"と""で括ってやれば、強制的にtsvの拡張子が付く。
 excellから開くときは、テキストファイルとして開けば、区切り文字の有無や種類を聞いてくるので、それを順次指定して開けばよい。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qダブルクォーテーション囲いカンマ区切り形式で保存したい

お願いします。
エクセル2000使用してます。
【質問1】
"名前A","ナマエA","09011111111","aaa@docomo.ne.jp"
"名前B","ナマエB","09011111112","bbb@docomo.ne.jp"
"名前C","ナマエC","09011111113","ccc@docomo.ne.jp"
このように、ワークシートをダブルクォーテーション囲いカンマ区切り形式で保存するにはどうすればよいでしょうか。

【質問2】
上記のデータを読み込むときに電話番号部分の先頭の0が取れてしまうの防ぐために、ファイルの拡張子をtxtにリネームしておいて、エクセルから開くときにウィザードで列のデータ形式を文字列と指定しています。もっと簡単な方法が教えてください。(頻繁にファイルを開くので。。。)

Aベストアンサー

1.マクロを使わないと出来ません。
  こんな感じです。
 Open "CsvFileName.csv" for Output as #1
 For Row = 1 to 10
  For Col = 1 to 10
   Select Case Col
    Case 1
     Print #1 Chr$(&H22) & Cell(Row, Col).Text & Chr$(&H22);
    Case 2
     Print #1 Chr$(&H22) & Cell(Row, Col).Text & Chr$(&H22);
    Case Else
     Print #1 Cell(Row, Col).Text;
   End Select
   If Col = 10 Then
    Print #1, ""
   Else
    Print #1, ",";
   End If
  Next Col
 Next Row
 Close #1

2.マクロを使えば自動化できます。
「データ」メニューの「外部データの取り込み」で「テキストファイル」を指定してCSVファイルを選択します。
テキスト取り込みウィザードで列のデータ形式を文字列と指定します。
上記の操作を「マクロの記録」でマクロにしてから
実用になるようにマクロを修正します。

1.マクロを使わないと出来ません。
  こんな感じです。
 Open "CsvFileName.csv" for Output as #1
 For Row = 1 to 10
  For Col = 1 to 10
   Select Case Col
    Case 1
     Print #1 Chr$(&H22) & Cell(Row, Col).Text & Chr$(&H22);
    Case 2
     Print #1 Chr$(&H22) & Cell(Row, Col).Text & Chr$(&H22);
    Case Else
     Print #1 Cell(Row, Col).Text;
   End Select
   If Col = 10 Then
    Print #1, ""
   Else
   ...続きを読む

Qエクセル内のメールアドレスをメール送信先に一斉に移す方法

エクセル内に多数のメールアドレスを記録しています。(縦にズラーッとタイプしています。)1つ1つのアドレスが1行ずつ入っています。

これらのメールアドレスを簡単にメールの送信先に入れる方法はありますでしょうか。1つ1つコピー、貼り付けをしていくしかないのでしょうか。

詳しい方がいましたら教えてください。

Aベストアンサー

・メールアドレスが入力されているセル部分を選択し、Copy します。

・別のシートに、"形式を選択して貼り付け"
  [ 行列を入れ替える ] にチェックを入れてから、ok

・最後に、"名前をつけて保存" する際に、 ファイルの種類を CSV (カンマ区切り)にします。

 以上の作業で保存されたファイルを、「メモ帳」などで開けば良いと思います。

Qタブで区切られたXXX.csvファイルをエクセルで開くには

中身はタブで区切られた「XXX.csv」というファイルをエクセルでうまく開くにはどのようにすれば可能でしょうか?
Excell2000を使用しています。
XXX.csvファイルをクリックすると、エクセルで開きますが、タブ区切りされておらず、セルAにすべて入ってしまいます。(行への展開は正しい)
そのため、はじめにエクセルを開いておいて、ファイル名を指定しますが、これもうまくいきません。
どのようにすれば、タブ区切りという指定が出来て、Excellへ展開することが出来るのでしょうか?

Aベストアンサー

Excelで開いた後で、CNTL+Aですべてを選択して、メニューのデータから区切り位置を選択、ウイザードで、区切り文字をタブに指定して完了

Q【Excel】 csvの作成時、空白セルにもカンマ

こんにちは

A列のA10まで、に値が入ります。
B列は、B1=IF(A1="","",A1) として、B10までフィルしました。

A1からA5までに1、2、3、4、5と入力し、A6からA10は空白にします。
B1からB5までは、1、2、3、4、5が表示され、
B6からB10までは空白です。

このSheetを、csvで保存し、テキストで開きますと

1,1
2,2
3,3
4,4
5,5
,
,
,
,
,
,


となります。

この、6行から10行の「,」がないcsvを出力したいのですが、
元のSheetの式はどうしたらよいでしょうか。

Excel2007です。

宜しくお願いします。

Aベストアンサー

>この、6行から10行の「,」がないcsvを出力したいのですが、元のSheetの式はどうしたらよいでしょうか。
そんな都合の良い数式は見当たりません。

Excelのセルに数式を入力すると計算結果で""を代入すると何もない状態ではありません。
文字数が0の文字列としてデータが入りますのでA列が何もない場合(NUL)でもB列の位置を示すカンマ(,)が出力されます。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング