Excel2010 VBAでテキストファイル読込
初めて質問させていただきます。
Excel2010のVBAで下記のようなマクロを組み、テキストファイルを読込したところ、データの一部が誤変換されてしまいます。
誤変換内容
11/12/29 →2029/11/12
マクロを使用せず、Excelから直接テキストファイルウィサードを使って読み込んだ場合には、正しく「2011/12/29」となります。
(お恥ずかしい話ですが、Excelシートのセルに直接「11/12/29」と打ち込むと自動的に「2011/12/29」に変換されることを今回初めて知りました。)
同一項目には「11/12/29」形式と「20111229」形式が混在しており、「11/12/29は2011/12/29」、「20111229はそのまま」セルに格納するよう依頼されています。
従って、Array(1, 2)で文字列やArray(1, 5)でYMD形式の日付へ同一項目のデータを固定することはできなくなっております。
テキストデータは「カンマ区切り」の35項目です。
データはネットワーク内の他のPCドライブに保存されています。
因みに「 Workbooks.OpenText Filename:=」以下は、Excelのマクロ記録で取得したものです。
お忙しいところ恐縮ですが、よろしくお願いいたします。
【作成したマクロ】
Sub 読込()
With CreateObject("WScript.Shell")
.currentdirectory = "\\コンピューター名\c\フォルダ名\"
End With
Const cnsTITLE = "テキストファイル読み込み処理"
Const cnsFILTER = "全てのファイル (*.*),*.*"
Set xlAPP = Application
xlAPP.StatusBar = "読み込むファイル名を指定して下さい。"
strFILENAME = xlAPP.GetOpenFilename(FileFilter:=cnsFILTER, _
Title:=cnsTITLE)
If StrConv(strFILENAME, vbUpperCase) = "FALSE" Then Exit Sub
Workbooks.OpenText Filename:=strFILENAME, Origin:=932, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, 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), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1), _
Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), Array(27, 1), Array(28, 1), Array( _
29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array(33, 1), Array(34, 1), Array(35, 1)) _
, TrailingMinusNumbers:=True
End Sub
お礼
なるほど! やりたいことができました。 ありがとうございましたm(_ _)m