|
こんばんわ。ご返事有難うございます。
すいません。うまく使えませんでした。
用途として詳しく説明しますと、
ファイル読み込みの際、Array関数を使うのですが、
読み込みたいカラムの列番号をシート、あるいは、ファイルに設定ファイルとして持ちます。
その際、
> str = "0,1,2,3"
> arr = Split(str, ",")
までは、OKなのですが、Array関数への格納がどうやるのかわかりません・・。。
'書き込み用配列の確保
vntColm = Array(0, 1, 2, 4, 5, 6)
~~~~~~~~~~~~~~~~
↑ここを可変で、設定ファイルとして持ちたい。
ReDim vntWrite(UBound(vntColm))
補足として、ソースとしましては、このようになっています。
Dim dfn As Integer
Dim strBuff As String
Dim vntColm As Variant
Dim vntData As Variant
Dim vntWrite As Variant
Dim lngWriteRow As Long
'書き込み用配列の確保
vntColm = Array(0, 1, 2, 4, 5, 6)
ReDim vntWrite(UBound(vntColm))
'貼付行設定
lngWriteRow = 1
'ファイルオープン
dfn = FreeFile
Open CStr(sTXTPATH & sTXTName_i) For Input As dfn
'ファイルの終わりまで繰り返し
With Workbooks(sNewbook_name).Worksheets(sSheetName)
Do Until EOF(dfn)
'1行(1レコード)読み込み
Line Input #dfn, strBuff
'区切文字(Tab)で文字列を区切配列に格納(列数と添え字が等しい)
vntData = Split(strBuff, vbTab, , vbBinaryCompare)
'読み込み列を書き込み用配列に代入
For i = 0 To UBound(vntColm)
vntWrite(i) = vntData(vntColm(i))
Next i
'書き込み位置にデータを書き込み
With .Cells(lngWriteRow, 1)
Range(.Offset(, 0), .Offset(, _
UBound(vntColm))).Value = vntWrite
End With
'書き込み行を更新
lngWriteRow = lngWriteRow + 1
Loop
End With
'ファイルを閉じます
Close #dfn
End If
|
|