Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6856 / 13646 ツリー ←次へ | 前へ→

【42695】日付の編集にて 質問(煮詰まった) 06/9/19(火) 16:10 質問[未読]
【42701】Re:日付の編集にて りん 06/9/19(火) 18:29 回答[未読]
【42708】Re:日付の編集にて りん 06/9/19(火) 21:07 発言[未読]
【42736】Re:日付の編集にて 質問(煮詰まった) 06/9/20(水) 12:04 お礼[未読]
【42721】Re:日付の編集にて Jaka 06/9/20(水) 9:34 発言[未読]

【42695】日付の編集にて
質問  質問(煮詰まった)  - 06/9/19(火) 16:10 -

引用なし
パスワード
   1点教えて下さい。

CSVファイルの読み込みの時の日付の箇所の処理に関してです。

外人の方のEXCELの作成で
日付を

1.10/11/06   2006/10/11 のこと
2.3/11/06    2006/11/03 のこと 

1.や2.のデータでデータをもらいます。

CSVを読み込み、標準のセルに展開すると

1.2010/11/06
2.2003/11/06 となってしまします。

出力先のセルを文字列に指定すると読み込んだ内容
と同じように出力されます。

1.10/11/06 を 2006/10/11 と表示したい場合は
2.3/11/06  を 2006/11/03 と表示したい場合は、IF文とMID関数で

処理するほかないのでしょうか?

お手数ですが教えて下さい。

【42701】Re:日付の編集にて
回答  りん E-MAIL  - 06/9/19(火) 18:29 -

引用なし
パスワード
   質問(煮詰まった) さん、こんばんわ。

IfとMidを組み合わせてるのと基本的に同じですがSplitで分割し並べ替えてます。

>1.10/11/06 を 2006/10/11 と表示したい場合は
Sub test1()
  Dim dte As Variant
  dte = Split("10/11/06", "/")
  MsgBox DateValue(dte(2) & "/" & dte(0) & "/" & dte(1))
End Sub
>2.3/11/06  を 2006/11/03 と表示したい場合は
Sub test2()
  Dim dte As Variant
  dte = Split("3/11/06", "/")
  MsgBox DateValue(dte(2) & "/" & dte(1) & "/" & dte(0))
End Sub
XL2K以降ですが、お試しください。

なお、既にセルに入って日付になってる場合は、
Sub test1-2()
  MsgBox DateValue(Format(Range("A1").Value, "mm/dd/yy"))
End Sub
Sub test2-2()
  MsgBox DateValue(Format(Range("A1").Value, "dd/mm/yy"))
End Sub

【42708】Re:日付の編集にて
発言  りん E-MAIL  - 06/9/19(火) 21:07 -

引用なし
パスワード
   質問(煮詰まった) さん、こんばんわ。
さっきのマクロとは別の方法です。

>1.10/11/06   2006/10/11 のこと

読み込むファイルの拡張子をTXT(csv以外なら何でもいい)に変更し、

Workbooks.OpenText Filename:=フルパスファイル名, _
          DataType:=xlDelimited, Comma:=True, _
          FieldInfo:=Array(1, 3)

■■■,10/11/06,10
■■■,10/11/06,11
↑こんなテキストファイルを上のマクロで開いたとき、
セルには↓のように入りました。
■■■    2006/10/11    10
■■■    2006/10/11    11

FieldInfo等の詳細は、OpenTextのヘルプをみてください。
csvではこのFieldInfoがきかないのでうまく行きませんが、csv以外のテキストファイルをカンマ区切りで開くと設定できます。

ちなみに、手動でも同じです。

【42721】Re:日付の編集にて
発言  Jaka  - 06/9/20(水) 9:34 -

引用なし
パスワード
   ▼質問(煮詰まった) さん:
>1.10/11/06   2006/10/11 のこと
>2.3/11/06    2006/11/03 のこと 

>1.2010/11/06
>2.2003/11/06 となってしまします。

すみません。
上記法則が全くわからないんですけど....。
10/11/06 10月なのに
3/11/06  11月???。

【42736】Re:日付の編集にて
お礼  質問(煮詰まった)  - 06/9/20(水) 12:04 -

引用なし
パスワード
   色々ありがとうございました。

試してみます。

6856 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free