先日、友人からこんな依頼をもらいました。
「同じ様式の50個のExcelブックの、同じ位置にある文字を取り出したい。」
いわれてみれば、ありそうな要望だ。 50個の製品別情報、50人の日報など、同じ様式で個単位で作成されたブックを集約する機会は多いでしょう。
ExecuteExcel4Macro をつかいます。
ブック名 + シート名 + 行番号 + 列番号 でセルの値が取得できます。
str = "'" & filelist(ii) & sSH & "'!R" & i & "C" & "j"
s = CStr(ExecuteExcel4Macro(str))
これで 変数s に セル値が入ります。
注意点は、参照したセルが 空白="" の時に s = 0 (ZERO) が返ってくることです。
空白を識別するには、次のようにします。
str = "'" & filelist(ii) & sSH & "'!R" & i & "C" & "j"
If CStr(ExecuteExcel4Macro("Len(" & str & ")")) > "0" Then '--- セルの文字数を調べる
s = CStr(ExecuteExcel4Macro(str))
Else
s = ""
End If
参考サイト