次の方法で共有

Excel 2011 の VBA で CSV ファイルを開くと日付が変になる

Anonymous
2010-10-31T06:38:58+00:00

Excel 2004では正しく動いていたVBAで、CSVファイルを開くと、データの年が2桁のとき、日付がめちゃくちゃになってしまいます。

VBAからではなく、Excelから開くと、日付は正しく設定されています。

コーディングしてあるVBAは「Workbooks.Open inDir & inF, , True」です。

「環境設定」「編集」「2桁で入力された年が右記より小さいときは21世紀として扱う」を色々設定してみましたが、状況は変わりません。

回避策、もしくは無料問い合わせ先を知りませんか?

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

4 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2010-11-01T02:58:14+00:00

    countZero_Neuromancer さん、こんにちは。

    こちらは、Excel for Mac 2011 の VBA の機能で csv ファイルを読み込んだときの問題ですね。

    どのように出力されてしまうのかが分からないので、推測になってしまうのですが、もしかしたら、英語の日付の並びで読み込まれてしまうという現象でしょうか?

     例 : "10/11/11" と日付入力した CSV ファイルを Excel に読み込むと、"11/10/11" の表示で読み込まれてしまう。

    もしもこの現象という場合は、Open メソッドで読み込む際、Local パラメータを True に設定した場合はどうでしょうか?

     Workbooks.Open *FileName :=*inDir & inF, *ReadOnly:=*True, Local:=True"Local:=True" に設定することにより、VBA の言語設定(英語)ではなく、Excel の言語設定(日本語)で読み込むようになるため、問題の現象もなくなるのではと思います。

    もし、こちらの問題と違うという場合は、具体的にどのように入力した日付がどのように出力されるのかがわかるとよいと思います。

    countZero_Neuromancer さんの返信、お待ちしていますね。


    石田 優 – Microsoft Support

    この回答は役に立ちましたか?

    3 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. Anonymous
    2010-11-05T05:46:54+00:00

    石田様、返信ありがとうございます。

    サポートでは、マクロ・VBAに関してはほとんど、無償サポート対象外ですので、障害報告として挙げました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2010-11-05T02:59:31+00:00

    countZero_Neuromancer さん、こんにちは。

    申しわけありません。。。前回 Mac の環境が手元になく、Windows 版の Excel for VBA にて確認をとったため情報に誤りがあったようです。

    Excel 2011 for Mac にて確認してみたところ、countZero_Neuromancer さんのおっしゃるとおり 確かに "Local" のパラメーターは見つかりませんでした。

    その後、Excel 2011 for Mac にて、 "Local" に変わるようなパラメータや VBA の言語設定自体の変更が出来ないか探してみたのですが、残念ながら、見つける事ができませんでした。お役に立てずすみません。。。

    英語版のみとなってしまうのですが、Mac の Excel フォーラムが以下にありますので、こちらにご投稿いただくのもいいかもしれません。 

      ・Excel Forum

      http://www.officeformac.com/productforums/excel/

    ただ、お急ぎという場合は、サポートへご連絡いただければと思います。

     ・マイクロソフト サポート オンライン

     https://support.microsoft.com/oas/default.aspx?Gprid=15627&st=1&wfxredirect=1&sd=gn

    こちらでも引き続き、情報をお待ちしていますので、この現象について何か知っている方がいれば、ぜひご投稿よろしくお願いします。


    石田 優 – Microsoft Support

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2010-11-01T16:50:59+00:00

    石田様、返信ありがとうございます。

    csvの中身はこんな感じです。年/月/日です。

    10/08/23 06:00:00,132.91,133.33,128.78,132.42,261877

    10/08/30 06:00:00,132.56,133.61,128.65,130.51,252885

    10/09/06 06:00:00,129.94,130.66,127.90,129.29,232103

    10/09/13 06:00:00,129.34,135.05,127.64,134.03,355806

    10/09/20 06:00:00,134.23,134.44,131.71,133.36,218635

    10/09/27 06:00:00,133.17,133.77,130.86,131.91,228675

    10/10/04 06:00:00,131.56,133.01,129.92,130.95,236803

    10/10/11 06:00:00,130.61,131.00,128.97,130.14,175672

    10/10/18 06:00:00,129.94,130.23,127.08,127.57,212407

    10/10/25 06:00:00,127.43,129.59,126.44,128.96,227664

    これをマクロで開くと…

    2023/10/8 6:00 132.91133.33 128.78132.42 261877

    1930/10/8 6:00 132.56133.61 128.65130.51 252885

    2006/10/9 6:00 129.94130.66 127.9129.29 232103

    2013/10/9 6:00 129.34135.05 127.64134.03 355806

    2020/10/9 6:00 134.23134.44 131.71133.36 218635

    2027/10/9 6:00 133.17133.77 130.86131.91 228675

    2004/10/10 6:00 131.56133.01 129.92130.95 236803

    2011/10/10 6:00 130.61131 128.97130.14 175672

    2018/10/10 6:00 129.94130.23 127.08127.57 212407

    2025/10/10 6:00 127.43129.59 126.44128.96 227664

    Workbooks.Open *FileName :=*inDir & inF, *ReadOnly:=*True, Local:=True

    としたところ、「コンパイル エラーです。:(改行) 名前付き変数が見つかりません。」となり、コンパイルできません。

    Excel 2011のVBAには「Local」という変数はないようです。コーディング中に表示される変数の中にも「Local」という項目はございません。

    おっしゃられますとおり、入力の日付の書式を月/日/年と解析してしまっているようです(気づきませんでした)が、VBAの言語設定の変更、もしくは、Open時の言語設定の変更の方法が分かりません。

    よろしくお願い申し上げます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません