- ベストアンサー
ExcelマクロでCSVファイルを開く際の書式設定について
ExcelマクロでCSVファイルを開く際に、日付の表示がおかしくなってしまい困っています。 CSVファイルをテキストで開いた時の値が、08/12/12(2008/12/12)の値を、 Excelで開いた時には2008/12/12と表示して欲しいところを 2012/08/12と勝手に変換して表示されてしまうといった感じです。 書式設定を色々設定して試してみたのですが、どうもうまく表示されません。 同ファイルをExcelマクロではなく、手動でExcelで開くとちゃんと 2008/12/12と表示されます。 いい方法があればご教授下さい。。。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
気になって先ほど調べましたが問題は解決していますでしょうか? 回答にコメント等も書かれていないようなので・・・ 何も指定しないとVBAで実行するとやはりUSモードで実行されるようです ExcelのHELPからの引用です Workbooks コレクション オブジェクト Open メソッド Local 省略可能です。バリアント型 (Variant) の値を使用します。Excel の言語設定 (コントロール パネルの設定を含む) に合わせてファイルを保存するには、True を指定します。Visual Basic for Applications (VBA) の言語設定に合わせてファイルを保存するには、False (既定値) を指定します。通常この設定は、Workbooks.Open を実行する VBA プロジェクトが Excel バージョン 5 または 95 の各国語版で作成されたプロジェクトでない限り、英語 (U.S.) になります。 なのでコントロールパネルで地域を日本にしている場合はLocal:=Trueと指定すれば良いみたいです。 私の環境下では下記構文を実行してExcel2003で正しく動作する事を確認しました。 Workbooks.Open Filename:="C:\Book2.csv", local:=True
その他の回答 (2)
- noah7150
- ベストアンサー率46% (116/251)
あら、本当ですね 出ました2012年問題。 日本ではyy/mm/ddですが欧米ではmm/dd/yyが一般的だそうで 13年以降は13月が無いのでyymmddと判断すると聞きました が、しかし現実これに対応する方法となると・・・ 拡張子をcsvからtxtに変えてフォーマットを作成するしかなさそうです 一度マクロ記録で各カラムの属性指定したものを作成するしか無いかも でも、カラム属性指定してもマクロ中のファイル拡張子をtxtからcsvに変え、ファイル名も変えて実行するとカラム属性無視されてるようです マイクロソフトの馬鹿・アホ・マヌケ!っと絶叫
Excelマクロでテキストファイル((CSVファイル))を開く際、 日付を書き込むセルの書式設定を、文字列にした後、 値を書き込んでみてください。 CSVファイルのデータが、08/12/12ならば、 変換せず表示してくれるはずです。
お礼
ご回答ありがとうございます!! お礼遅くなってしまい申し訳ございません。。。 日付のセルに書式設定を指定しても、どうやら値を設定する時に 勝手に書式設定を書き換えられていたようなんです…。 色々勉強になりました☆
お礼
ご回答ありがとうございます!! もしかしてLocal属性かなぁ…とは思ってたのですが、 偶然うまくいっただけかなーーとイマイチ確信を得られていませんでした☆ 詳しくご教授頂き、感謝致します。 本当にありがとうございました♪