- ベストアンサー
Ecelで取り込んだ外部データをばらす作業を、マクロで実行するとうまくいきません
WinXP/Excel2000: お世話になります。 Excelで毎日チャートを自動更新するファイルを作成しようとしてます。 それにあたり 日本ユニコムから毎日提供されてる四本値を毎日、“外部データの取り込み”で 入手してます。(http://www.unicom.co.jp/jyouhou/dx_/dd.asp?x=dd_1010) 1010,01/01/04,70.1,70.1,68.2,68.2,17444,211899,200106 1010,01/01/05,69.1,69.1,67.3,69.1,52074,218210,200106 ↑このような形で取り込まれたデータを 「データ」→「区切り位置」でばらして 1010 2001/1/4 70.1 70.1 68.2 68.2 17444 211899 200106 1010 2001/1/5 69.1 69.1 67.3 69.1 52074 218210 200106 ↑このようにすることはできるのですが、 しかし、一連の作業を短縮するため、その手順をマクロで記録して実行すると 2004/1/1 70.1 70.1 68.2 68.2 17444 211899 200106 2005/1/1 69.1 69.1 67.3 69.1 52074 218210 200106 ↑このようになってしまいます。 手作業(?)の時にはちゃんと出来るのに、なぜマクロでやるとダメなのか 答えが見つかりません。 ちなみに、区切り位置をばらす作業は列全体を選択して行ってます。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「↑このようになってしまいます」と曖昧に書くから、この質問を見た人は「先頭の1010が消えてしまっている。そんなはずはない」と読み取ってしまったのではないでしょうか。 たぶん質問の意図は「日付がYMD形式ではなく、欧米で一般的なMDY形式で判別されてしまった」でしょうか。FieldInfoの部分を以下のように変更してください。(VBAヘルプを見れば説明もありますよ) FieldInfo _ :=Array(Array(1, 1), Array(2, xlYMDFormat), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1), Array(9, 1))
その他の回答 (2)
- mu2011
- ベストアンサー率38% (1910/4994)
NO1です。 日付につてはMDY形式で認識されるみたいです。 マクロ記録の区切り位置ウィザード3/3で該当列のデータ形式を「日付」「YMD」を選択して完了として下さい。
お礼
何度もありがとうございます。 返事が遅くなってしまい申し訳ありませんでした。 無事解決しました。 ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
記録マクロで相違することはありませんので、もう一度マクロ登録し直して下さい。 (1)ツール→マクロ→新しいマクロの記録 (2)A列選択 (3)データ→区切り位置 (3)ツール→マクロ→記録終了
お礼
さっそく回答ありがとうございます。 何度もやり直してますが、やはりダメです。 詳細を補足に書きました。
補足
やはりダメです。 データの入手先が悪いのでしょうか??? やった手順↓ (1)ツール→マクロ→新しいマクロの記録 (2)データの更新(外部データを取得) (3)A列選択 (4)データ→区切り位置 (5)ツール→マクロ→記録終了 でやりました。 一応参考までに下にマクロ載せます。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2006/12/20 ユーザー名 : ' ' Columns("A:A").Select ActiveWorkbook.RefreshAll ActiveWorkbook.RefreshAll Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _ :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ Array(7, 1), Array(8, 1), Array(9, 1)) End Sub
お礼
返事が遅くなってしまいました。 大変申し訳ありません。その通りです。説明不足でしたね。 何が問題かわかりました。 ありがとうございました!