
excel vbaの初心者です
現在、フォルダ内にあるファイルの数をカウントするために、dir関数を使用してプログラミングしています。
このプログラムで問題が発生していて困っています
1.マクロを起動して、指定したフォルダ内のファイル数をカウントする
2.フォルダ内のファイルを増減させる
3.再度、マクロを実行してもファイル数は1.で起動したときのファイル数のままで、2.で変更した後のファイル数になりません。
このため、マクロを再実行しても正しいファイル数が取得できずに困っています。
もしかすると、マクロ実行前にメモリのガーベージコレクションみたいなことをしないといけないのかもしれないのですが、なんせvbaは初心者のためどうすればいいのか途方にくれています。
業務で使いたいのですが、小さい会社で周りには聞くことのできる人もいないので、どなたかご回答をよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
下記で問題なく動作しますよ?
1.マクロの入ったExcelを起動し、マクロでファイル数確認
2.Excelを閉じずに対象フォルダにファイルを追加
3.再度マクロを実行しファイル数を確認 → 結果は変わっている。
-------
Sub test()
Dim cnt As Long: cnt = 0
Dim file As String
file = Dir("C:\foo\*")
Do While file <> ""
cnt = cnt + 1
file = Dir()
Loop
MsgBox cnt
End Sub
本日、会社で再確認した結果何の問題もなく正常に動作しました。
やったこと
1.教えていただいたプログラムをフォルダ名のみ変更し、マクロが正常に動作することを確認(ファイル数の増減を2~3回変更しました)
2.自分で書いたプログラムに組み込んで、マクロが正常に動作すること確認
3.オリジナルのプログラムでマクロが正常に動作することを確認(ここは念のため5~6回は確認しました)
4.また、他機能を確認中も常にmsgboxでファイル数を表示させ、問題ないことを確認
原因は、不明ですが問題なく動いたので上長に作業完了を報告しました。
アドバイスをくださった皆様大変お世話になりました。ありがとうございます。
No.1
- 回答日時:
プログラムのバグじゃないでしょうか。
とりあえず、次のことを確認して、それでも問題が見つからないようであれば、補足にプログラムコードを挙げて頂ければ、誰かが突っ込んでくれると思います。
違うフォルダ内のファイル数をカウントしていないか?
*.txtだけをカウントしているのに、増減させたファイルが、.xlsxだったりしないか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/10 09:06
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) Excel VBA ファイル取得について フォルダの中に、ファイル名“会議“を含むファイルが1つまた 9 2022/10/12 01:18
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 11:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの特定行の削除
-
エクセルのファイル:「自分」が...
-
彼女の過去の恋愛に嫉妬してし...
-
ファイルが移動してもリンクの...
-
Excel: ファイル名になぜ、[...
-
EXCELVBAにて文字列にして「01...
-
VB6.0 Datagridに関する質問
-
VBA ファイル一覧を取得して全...
-
エクセル保存終了で一時ファイ...
-
iCloud for Windowsをアンイン...
-
FTPのgetとputの使いわけ。
-
WINDOWS CMDからゴミ箱のファ...
-
VBAにおいて、ファイルの移...
-
docxをmht形式で保存したファイ...
-
ファイルの同一性を判定するID...
-
File.delete()にてファイルを削...
-
Excelファイルを比較し、差分箇...
-
エクセルで移動したシートを復...
-
Googleドライブについて
-
batでファイル名を変更したい(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
彼女の過去の恋愛に嫉妬してし...
-
エクセルのファイル:「自分」が...
-
iCloud for Windowsをアンイン...
-
CSVファイルの特定行の削除
-
ファイルが移動してもリンクの...
-
[Unity]シーンファイルの中が消...
-
Excel: ファイル名になぜ、[...
-
複数のExcelファイルにある同名...
-
vbsからのExcelマクロ呼び出し...
-
EXCELVBAにて文字列にして「01...
-
FTPのgetとputの使いわけ。
-
WINDOWS CMDからゴミ箱のファ...
-
docxをmht形式で保存したファイ...
-
自動で.xlsを閉じて指定フォル...
-
5000個のtiffファイルをpdfへ変...
-
Excelに貼り付けた画像を圧縮す...
-
テキストファイル操作 実行時...
-
エクセル保存終了で一時ファイ...
-
C# リッチテキスト形式のファイ...
-
batでファイル名を変更したい(...
おすすめ情報