[[20071223001706]] 『マクロでのコピー、ペーストがうまくいかない』(あっはい) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロでのコピー、ペーストがうまくいかない』(あっはい)
 度々質問させていただいているものですが、マクロを用いてテキストファイル(CSV形式)をエクセルで開き、
特定の列をコピーし他のブックに貼り付ける作業なのですが、なぜか日付の列(シリアル値)が貼り付けられたときに
 例えば 元は2007/12/01 が 2001/07/12 や 2007/12/15 が 2015/07/12など めちゃくちゃになってしまいます。 
他の列の(文字列)などは正常に貼り付けられているようです。 マクロではなく手動でコピー、貼り付けを行った際は、
うまくいきます。書式やCSV形式に問題があるのでしょうか? ちなみに Copyメソッドと PasteSpecialメソッドを
使って実行しています。   Windows XP  Excel 2003 です。
                                よろしくお願いします。


 同じ現象になり調べた事があります。 Excel2003

 VBA マクロを使って、 Excel 2002 での CSV テキスト ファイルを変換すると、日付形式は正しくありません。
http://support.microsoft.com/kb/835718/ja

 [XL2000]VBAを使用してテキストを開くと正しい日付形式で認識されない
http://support.microsoft.com/kb/416875/ja

 私の場合レジストリには触れず、日付形式を強制指定した覚えがあります。
 「Web上からデータを取り込みCSV形式で保存する」の流れなので
 [あっはい]さんの現象と違うかもしれませんし、どれで解決したかあやふやなのですが

 CSVデータのほうの日付形式を

	.Columns("A:A").NumberFormatLocal = "yyyy/m/d"
           ↓
	.Columns("A:A").NumberFormatLocal = "yyyy/mm/dd;@"      ' 修正 ;@をつける

 ↑この方法か

 一度
MM/DD/YYYY
 形式に統一して
YYYY/MM/DD
 に指定し直す。

 この方法で今は正常に取り込みし、開く事が出来てますよ。
 私の場合特殊なのでだめかもしれませんが。       (jun53)

 jun53 さん、アドバイスありがとうございます、今朝 もう一度会社で確認したところコピーや貼り付け以前に
マクロでCSVファイルを開いたときに既に日付形式がおかしいことに気づきました。
とりあえず、今日はマクロの記録で外部データの取り込み、全てのフィールドを文字列とし取り込んでみましたが、
他の色々なファイルを開く上で問題が出そうなので jun53さんのを参考にさせていただき、明日やってみようと思います
ありがとうございました。     (あっはい)


 CSVファイルに、日付が07/12/02などと表記されていたものが混じっていたので、開いた後にyyyy/mm/ddと指定しても
2002/07/12となっていしまい、だめでしたが リンクを貼っていただいたところからヒントを得て 結局 Open の引数に 
local:=True を付け加えることで解決しました。   ありがとうございました。
(あっはい)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.