|
えっと、まずコードを少し改良しておきます。ファイル名が表示されて無いと、
どのブックのデータか分からなくなりますから。
Sub TEST1()
Dim MyF As String
Dim Cnum As Integer
Const Ph As String = _
"'C:\Documents and Settings\(中略)\"
MyF = Dir(Ph & "*.xls")
Do Until MyF = ""
Cnum = Cnum + 1
If Cnum > 256 Then Exit Do
With Worksheets("テスト1")
With .Range(.Cells(4, Cnum), .Cells(24, Cnum))
.Formula = "=' & Ph & "[" & MyF & "]TOTAL'!D12"
.Value = .Value
End With
.Cells(26, Cnum).Value = Left$(MyF, Len(MyF) - 4)
End With
MyF = Dir()
Loop
With Worksheets("テスト1")
.Range(.Cells(27, 1), .Cells(27, Cnum)).Formula = _
"=IF(ISNA(MATCH(""AAA"",A:A,0)),"""",MATCH(""AAA"",A:A,0))"
End With
End Sub
>Rangeの括弧の中にCellsがあるのはどういう意味
Rangeオブジェクトをヘルプで調べてみて下さい。その「プロパティ」に Cells が
あるはずです。なので、そーいう使い方も出来るというわけです。
一方、Cells は Worksheetオブジェクトのプロパティでもあるので、
Worksheets("テスト1").Cells(26, Cnum).Value = ・・・という書き方も
出来るのです。
>256列までしかない…ということでいいんでしょうか。
そうです。よって変数 Cnum が 256 を超えたら、ループを抜ける条件をつけて
おきました。
|
|