こんにちは。 エクセルVBAを勉強しているものです。 自身の作成したマクロが正しく動作しないので有識者の皆様に原因を教えていただきたいです。以下具体的な内容になります。

補足

補足です。 より詳しくは以下のようなコードを使用しています。 Dim A As String, ST As String, cnt As Long, SheetName As String, h(100, 1) As Variant A = Dir(フォルダパス & "\*.csv") Do While A <> "" cnt = cnt + 1 SheetName = Left(A, InStr(1, A, ".") - 1)'シート名に間違いはありません h(cnt - 1, 0) = A h(cnt - 1, 1) = ExecuteExcel4Macro("'" & フォルダパス & "\[" & A & "]" & SheetName & "'!R15C3") A = Dir() Loop Range(Cells(1, 1), Cells(101, 2)) = h End Sub

Excel | Visual Basic139閲覧

ベストアンサー

0

ご回答ありがとうございます。 読みづらいかと思いコードを簡単にしてしまいましたが、ご指摘の通り詳しく載せるべきでした。 後ほど補足の欄に記載させていただきます。

ThanksImg質問者からのお礼コメント

なるほど... 根本のところで違っていたのですね。 勉強になりました。 ありがとうございます!

お礼日時:10/15 9:51

その他の回答(1件)

0

>なにか改善する方法はないでしょうか... ExecuteExcel4Macro を使用せず、 ・ファイルを開いて ・セルを参照して ・ファイルを閉じる というループにすべき。

ExecuteExcel4Macro はファイルを開いていないように見えるだけで、ファイルを開いて処理されてます。 結果 ・シートが再計算をするようなファイルになっていた場合には変化する前だと正しいデータにならない ・参照シートがなければエラーになる などが考えられます。 それを回避するには、 手順を踏んでファイルを開いて取得する という方法の方が良いと思います。 https://excel-ubara.com/excelvba5/EXCELVBA242.html