- ベストアンサー
エクセルVBA:日付データの変換がうまくいかない
- エクセルVBAで日付データを変換する際に問題が発生しています。入力された日付データが勝手に変換されてしまい、CSVファイルに出力した際に正しい形式で表示されません。
- VBAプログラムを使用してエクセルシート上のボタンを押すと、セルの内容を読み込み、CSVファイルに出力します。しかし、日付のデータの形が変になってしまい、修正できません。
- プログラム内で日付データをVariant型で扱っていますが、出力されたCSVファイルを確認すると、日付の形式が変わってしまっています。正しい形式で出力する方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>Range("A1").NumberFormatLocal = "yyyy/mm/dd" >にて書式を変えてみようとしましたが、エラーが出てうまくいきませんでした。 どんなエラーですか? Range("A1").NumberFormatLocal = "yyyy/mm/dd" で問題ないはずです。 Cells(1, 1).NumberFormatLocal = "yyyy/mm/dd" でもOKです。 local_dataシートのe行1列の場合は、 Worksheets("local_data").Cells(e, 1).NumberFormatLocal = "yyyy/mm/dd" もしかして、書式が変更できないようロックが掛かっているということはないですか。
その他の回答 (4)
- atamagawarui5
- ベストアンサー率25% (112/440)
Worksheets("local_data").Cells(i, i + 1) = tmp No.3はなかったことに・・・・・ Worksheets("local_data").Cells(i, i + 1) = Format(Date,tmp) これでいけませんか??
お礼
返信ありがとうございます。 問題が変わってしまったので、もう一度質問させていただきます。
- atamagawarui5
- ベストアンサー率25% (112/440)
Worksheets("local_data").Cells(i, i + 1) = tmp これを書き換えてもダメでしたか? Worksheets("local_data").Cells(i, i + 1) = Format(tmp,"yyyy/mm/dd")
- nag0720
- ベストアンサー率58% (1093/1860)
セルの値を変えるのではなくて、セルの書式の表示形式を変えたらどうですか。 というより、セルごとコピーして貼り付ければいいのでは。
お礼
回答ありがとうございます。 Range("A1").NumberFormatLocal = "yyyy/mm/dd" にて書式を変えてみようとしましたが、エラーが出てうまくいきませんでした。 Range("A1")がダメみたいですね・・・ Cellsなら使えるのですが・・・・・・
- atamagawarui5
- ベストアンサー率25% (112/440)
日付処理結構悩まされます。 Format(Date, "yyyy/mm/dd") 私は、Format()使って無理やり日付入力していますが。
お礼
回答ありがとうございます。 Formatも試してみましたがうまくいきませんでした。 PasteSpecialを試してみようと思います。
お礼
返信ありがとうございます。 デバッグしていたら、何が起こっていたのかがやっと解ったので、もう一度質問を作成します。 MSの仕様なのかもしれませんが・・・・・