|
▼会社員 さん:
>kanabunさん
>
>ご提示頂いたサンプルソースでこちらのCSVファイルを読み込んだところ、
>正常に2レコード(それぞれの2列目)を表示するダイアログが出ました。
>kanabunさんのソースでは全く問題ないようです。
>大変参考になりました。ありがとうございました。
>
>こちらのソースのどこに問題(差)があるのか未だ分かりませんが・・
>現在検証中です。
かみちゃんさん
kanabunさん
問題が解消しました。手厚いサポートを頂き本当にありがとうございました。
2レコード目がうまく取得できなかった主な原因は「FieldInfo」と「Array」を
よく理解していなかった事による不当なCells().Value参照だったようです。
Cells().Valueの全てを一旦ワーク領域に退避し、それを使用するようにしたところうまくいきました。具体的には以下のように対処しました。(これがBestかどうかは???ですが・・)
Dim ksdt(1000, 100)
Erase ksdt
Dim FieldInfo(1 To 100)
最大カラム = 100
For i = 1 To 最大カラム
FieldInfo(i) = Array(i, 2)
Next
' 入力ファイルオープン
myText = "inputdata.txt"
Workbooks.OpenText myText, Origin:=932, _
TextQualifier:=xlDoubleQuote, _
DataType:=xlDelimited, _
Tab:=False, Semicolon:=False, Comma:=True, _
Space:=False, Other:=False, _
FieldInfo:=FieldInfo
' 入力ファイルから取得したレコードデータを全て退避
For i = 1 To 2
For j = 1 To 最大カラム
ksdt(i, j) = Cells(i, j).Value
Next
Next
本当にありがとうございました。
以上
|
|