Excel VBA質問箱 IV

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

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


9964 / 13644 ツリー ←次へ | 前へ→

【24526】データ変換について 初心者 05/4/24(日) 11:24 質問[未読]
【24527】Re:データ変換について Kein 05/4/24(日) 13:17 回答[未読]
【24536】Re:データ変換について 初心者 05/4/24(日) 22:33 質問[未読]
【24541】Re:データ変換について Kein 05/4/25(月) 10:43 発言[未読]
【24542】Re:データ変換について 初心者 05/4/25(月) 13:18 お礼[未読]

【24526】データ変換について
質問  初心者  - 05/4/24(日) 11:24 -

引用なし
パスワード
   CZ027       
cd04/12/12
cc1234
cc1234
というテキストデータがあります。
これをエクセルで
  1   2   3   4
1     1234    04/12/12
2     1234    04/12/12
3     1234    04/12/12
というデータが作りたいのですが、4列目にcdの日付を2列目が入力されている最終行まで入れて行きたいのですがどうすればいいでしょうか?

【24527】Re:データ変換について
回答  Kein  - 05/4/24(日) 13:17 -

引用なし
パスワード
   テキストのデータが間違いなくUPされたとおりなら、このようなコードで出来ます。
もちろんB列には、予め入力範囲の基準となるデータが入れられているものとします。

Sub Test_GetText()
  Dim FSO As Object
  Dim MyD As Date
  Dim Buf As String
  Const MyF As String = _
  "C:\Documents and Settings\User\My Documents\test.txt"
  '↑実際のテキストファイルのフルパスに変更する。
 
  Set FSO = CreateObject("Scripting.FileSystemObject")
  With FSO.OpenTextFile(MyF, 1)
   .SkipLine
   .Skip (2)
   Buf = .Read(8)
   .Close
  End With
  If IsDate(Buf) Then
   MyD = DateValue(Buf)
   With Range("B1", Range("B65536").End(xlUp)).Offset(, 2)
     .NumberFormat = "yy/mm/dd"
     .Value = MyD
   End With
  Else
   MsgBox "日付のデータが見つかりません", 48
  End If
  Set FSO = Nothing
End Sub

【24536】Re:データ変換について
質問  初心者  - 05/4/24(日) 22:33 -

引用なし
パスワード
   keinさん回答ありがとうございます。
keinさんのコードで何度か試してみたのですが、
If IsDate(Buf) Thenの所でElseになって終わってしまいます。
なぜでしょうか?
すいません。私のデータが何か変なのでしょうか?
よろしくお願いします。

【24541】Re:データ変換について
発言  Kein  - 05/4/25(月) 10:43 -

引用なし
パスワード
   テキストのデータを調べて下さい。日付の位置はちゃんと「2行目の文字列の頭から
3文字目〜10文字目」になってますか ? こちらではそのような条件でテストファイル
を作り、テストして成功しましたが。

【24542】Re:データ変換について
お礼  初心者  - 05/4/25(月) 13:18 -

引用なし
パスワード
   すいません。テキストデータを確かめたところ日付のデータは3行目でした。
私の載せ間違いでした。
うまくいきました。
ありがとうございました。

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