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

エクセルでCSVファイル保存するとき下記のようなメッセージがでますが
この時はいをマクロで選択したいのですが通常の保存方法だと
年月日の順序が変わってしまうことが起こり困っています。
下記のようなメッセージがでたときマクロで[はい]としたいのです。
よろしくお願いいたします。

○○○.csvには、CSV(カンマ)と互換性のない機能が含まれている可能性があります。
・このまま保存するには、[はい]をクリックします。
・機能を保存するには、[いいえ]をクリックしてから、最新のExcel形式で保存します。
・失われる可能性がある内容については、[ヘルプ]をクリックしてください。

A 回答 (7件)

>このことができないために次のようになるのです


>  2013/8/28 20:30 が
>  8/28/2013 20:30 のようになるのです。
前者の日付表示は日本式で日本語版では日付と時刻をキーボードから入力したときにセルの書式が yyyy/m/d h:mm のように設定されます。
テキストファイルからのデータの取り込みでも同じになります。
後者は英語(US)版のときの日付と時刻の書式です。
あなたのExcelは英語(US)モードで動作させているのではないですか?

この現象は保存のときに起こるのか、テキストファイルを読み込んだ時に起こるのかを確認してください。
前者の表示形式のシートをCSV形式で保存したときのデータをメモ帳でチェックして頂ければ後者の形式になったか否かが分かります。
悩む前に現象を良く観察して何をしたときにどうなるかを見極めることで解決策が見つかります。
言語の違うPCで処理したものを自己のPCで引き継ぐには何らかのトラブルが発生するでしょう。
出来るだけ影響のない方法でCSV形式に出力するよう仕掛けをすることも視野に入れてください。
例えばCSV形式ファイルで渡す相手によって保存手順を変えることも必要でしょう。
受ける側で対応するときは前処理用の手順が必要になります。

B1セルに "8/28/2013 20:30" と取り込まれたときは以下の式で "2013/8/28 20:30" のシリアル値に変換できます。

=VALUE(MID(B1,FIND(" ",B1)-4,4)&"/"&LEFT(B1,FIND(" ",B1)-6)&MID(B1,FIND(" ",B1),LEN(B1)-FIND(" ",B1)+1))
    • good
    • 0
この回答へのお礼

多数の方からご回答ありがとうございます。
Office Personal 2010 ですが 2003~2007 にしています。

 ○○○.csv のまま開かれています。
bunjii様の説明のような方法で元に戻していますが
毎回このような作業をしなければならずマクロでの意味が
無いものですから皆様のお力をお借りしたく質問させて
頂いた次第です。

 この場をお借りしてbunjii様 ・ 皆様 本当にありがとうございました。

お礼日時:2014/01/06 00:03

>2013/8/28 20:30 が


>8/28/2013 20:30 のようになるのです。

エクセルの書式設定で日付の形式を2013/8/28 20:30にしていてCSVで保存したファイルを、再度エクセルで開いたときになるのでしたら、Windowsの地域と言語の設定で日付の設定がそのような設定になっていませんか?

ちなみにマクロで(エクセル2003です)

Workbooks("Book2.xls").SaveAs Filename:="d:\test.csv", FileFormat:=xlCSV

みたいに保存したら、メッセージは出ませんし、保存された日付の部分は、他の方が言われているようなシリアル値ではなく、2013/8/28 20:30で保存されてますが…どのように保存したらシリアル値になるのか興味があるところです。単に他の方たちの思い込みでしょうか。
    • good
    • 0

>エクセルでCSVファイル保存するとき下記のようなメッセージがでますがこの時はいをマクロで選択したいのですが通常の保存方法だと年月日の順序が変わってしまうことが起こり困っています。


CSV形式で保存する仕様であれば当然のことでメッセージに対して「はい」としなければ保存できません。

「年月日の順序が変わってしまう」とはどのようなことですか?
Excelでは日付をシリアル値(数値)として強制的に変換する機能が有りますが、このことでしたらCSV形式ファイルをExcelで直接開く場合に起こることです。
回避策は空のExcelファイルを開いて「外部データの取り込み」で対応します。
取り込むときに列毎に書式を指定すれば目的に合った状況になるはずです。

この回答への補足

多数の方からご回答ありがとうございます。
 説明の仕方がたりずご迷惑をおかけしました。
 私のやりたかったことは保存するとき[はい]をマクロで押したのと
 同じようにしたかったのです
このことができないために次のようになるのです
  2013/8/28 20:30 が
  8/28/2013 20:30 のようになるのです。
もう少しがばってみます。
 皆様、大変ありがとうございました。

補足日時:2014/01/05 19:12
    • good
    • 0

> 年月日の順序が変わってしまうことが起こり困っています。


保存したCSVファイルをEXCELで開き直した場合のことなら、
確認方法が誤っています。
メモ帳やテキストエディタで開いて確認して下さい。

EXCELはCSVファイルを開くとき、いろいろと「勝手な解釈」をやらかします。

それを確認できれば、「保存がうまくいかない」と悩まなくて良くなります。
    • good
    • 0

>・・・年月日の順序が変わってしまうことが起こり・・・・


CVS ファイルでは ”日付”データーは シリアル値で保存されてますので
これを Excel で開けば 英文表記になるのです。

セルの表示を ”和暦”等のご希望の形式絵を選べば良いだけですが・・・?

如何ですか?
    • good
    • 0

通常の保存方法で年月日の順序が変わってしまうという事がどういう意味なのか分かりませんが、とりあえずメッセージを出なくすれば結果的に「はい」と同じですから



 Application.DisplayAlerts = False
 CSVファイルを保存するコード
 Application.DisplayAlerts = True

としてください。
    • good
    • 0

CSVで保存したいなら はい の選択で問題ないですけど。


このメッセージは、CSVで保存した時に、失われる情報について警告しているだけなので、その失われた情報を利用しないのならこのメッセージを無視すれば居良いのです。
    • good
    • 0

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