
No.4ベストアンサー
- 回答日時:
#2です。
>ファイル数の合計で結構です。ちょっと甘えていますが、先ほどのご回答のどこを改造すればよいのかがわかりません
Private Sub test02()
Dim fn As String
Dim hn As String
p01:
fn = InputBox("フォルダ名=", "フォルダ指定", "c:\My Documents\")
i = 1
sdirname = Dir(fn)
Do While sdirname <> ""
i = i + 1
'------
sdirname = Dir
Loop
MsgBox i & " 個のファイルあり"
End Sub
でやって見てください。
ファイル数やレコード数が取得できる、VBのプロパテイかメソッドがない場合は自分でそれらの数を算出し、変数にセットしないとなりません。プログレスバーを使うルーチンに入る前に。
これも1ファイルや1レコード当たりの処理時間が等しいと(違いは無視できると)言う前提で、全体300のうち60番目の処理をしている時は20%進行済みと表示すると言うことだと思います。
No.3
- 回答日時:
>ProgressBarを用いる場合、全体の処理数を求めますが、>Do Loopを用いる場合、For文と異なり必ずしもすぐに
>全処理数が分かるわけではありません。そのような場合、
>どのように全処理数を求めればよいですか?
通常は、件数がわからないものにプログレスバーは使いません。というか、使えません。
なので、事前に処理件数が大雑把でもわかる必要があります。
もちろん、さまざまな処理に対して全処理数を求める汎用的な方法はありません。
>私は、あるフォルダにあるファイルすべてを処理する
>プログラムを作りました。Do Loopで全てのファイルを
>参照し終わるまでをUntilの条件としています。
>したがって、いくつのファイルがあるかは分かりません。
で、件数を取得する方法ですが、やっぱりDirで取ってくるしかないのでは?
件数を取得するだけの処理を作るのもなんだかと思いますが、プログレスバーを使いたいのでしたらしょうがないと思ってください。
No.2
- 回答日時:
#1です。
あるフォルダの中のファイル数は#1を少し改造すると出ますのでそれの参考に上げたまでです。
>あくまでProgressBar表示のための全処理数を知りたいのですが
ProgressBarは汎用的なものです。例えば処理時間の経過を表す場合は、処理完了予定時間の合計は判らないことが多いと思います。だから何をもって、処理時間に関係付けるかではないのでしょうか。この質問では何を知りたいのでしょうか。推定するに、例えばファイル数でなければ、フォルダ内の通しのレコード数合計ですか。
これももし見当違いの場合はお許し下さい。
この回答への補足
有難う御座います。まだ不慣れでうまくお伝えすることができず申し訳御座いません。
ファイル数の合計で結構です。ちょっと甘えていますが、先ほどのご回答のどこを改造すればよいのかがわかりません。Do Loopでご説明通りDir関数を用いてみつけたファイルを全て処理するプログラムを作りました。私なりに考えるのは、Do Loop内で何回の処理が行われたかをカウントすることでのみ、その処理数、つまりファイル総数が求められるということで、ProgressBar作成のためDo loop以前に処理数を知ることはできないのではと考えます。やはり、はじめにDir関数を使いファイルの総数を数えるためのコードが新たに必要なのでしょうか?
No.1
- 回答日時:
他の質問の回答に使ったものですが(但しエクセルVBA)
Private Sub test01()
Dim fn As String
Dim hn As String
p01:
fn = InputBox("フォルダ名=", "フォルダ指定", "c:\My Documents\")
If fn = "end" Then Exit Sub
' fn = "c:\My Documents\"
i = 2
sdirname = Dir(fn)
Do While sdirname <> ""
If Right(sdirname, 4) = ".csv" Then
Cells(i, 1) = sdirname
hn = fn & sdirname
Cells(i, 2) = hn
i = i + 1
End If
'------
sdirname = Dir
Loop
GoTo p01
End Sub
の「Do While sdirname <> ""」の部分が参考になりませんか。
もし見当違いの場合はお許し下さい。
この回答への補足
有難う御座います。しかし、あくまでProgressBar表示のための全処理数を知りたいのですが。もし、お分かりになれば宜しくお願い致します。
補足日時:2004/04/15 23:26お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
- Ruby VBA 2 2023/01/14 14:14
- その他(プログラミング・Web制作) フォルダを一括で作成する方法 0 2022/07/27 19:19
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
Excel VBA セルの名前があるか...
-
vbaのエラー対応(実行時エラー...
-
RaiseEventのメリット
-
フォルダのアクセス権確認について
-
シグナル 6(SIGABRT)とは?
-
マクロで、次のコードへ行く前...
-
どう増強すべきか
-
IF文に時間(何時から何時ま...
-
どうやってもFor文を抜けてしま...
-
ExcelのVBAで、選択したファイ...
-
特定の名前のオートシェイプの...
-
VB6にてネットワーク上にある共...
-
複数個のTextBoxでいずれかの内...
-
winsockの非同期処理について
-
エクセル VBAで複数セル選択時...
-
ドリブン??
-
StatusStripの表示が更新されな...
-
“try/catch”と“if/else”
-
【Vb.net】プリンタジョブの取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
どう増強すべきか
-
private subモジュールを他のモ...
-
vbaのエラー対応(実行時エラー...
-
シグナル 6(SIGABRT)とは?
-
IF文に時間(何時から何時ま...
-
マクロで、次のコードへ行く前...
-
特定の名前のオートシェイプの...
-
ExcelのVBAで、選択したファイ...
-
Excel VBA セルの名前があるか...
-
どうやってもFor文を抜けてしま...
-
【VBA】エラー処理で別プロシー...
-
順番に処理させたい
-
VBAでBook読み込み時の非表示方...
-
特定のファイルを他のプロセス...
-
【C#】Page_Loadさせない方法に...
-
途中で処理を中断させたい (ア...
-
シェルスクリプトでファイル内...
-
エクセルVBAでロックをかけたい
-
VBA 複数の行を高速で削除する...
おすすめ情報