Excel VBA 質問スレ Part83 (856レス)
1-

405
(1): 07/15(火)13:45 ID:IENqpxZQ(2/2) AAS
>>401,403
ありがとう。やってみる。
406: 07/15(火)18:57 ID:F7nJfSiA(1) AAS
やっぱり馬鹿かよ
407
(2): 07/16(水)22:35 ID:6RqIkTEU(1) AAS
目的のフォルダを取得する効率的なコードを教えてください
1番効率的なのはフォルダのフルパスそのものを取得する事ですが、それも難しいので各階層の部分一致でお願い致します
408: 07/16(水)22:45 ID:NiCGeJue(1) AAS
パスが流動的ってこと?
指定する以外にやったことないわ
409: 07/16(水)23:01 ID:IRXrFh0B(1) AAS
部分一致が複数あるとして、その順番が入れ替わる可能性があるかどうかでコードが変わるね
410
(1): 07/17(木)00:19 ID:zBpNwhAR(1/4) AAS
コード\分類\フォルダ\期間別フォルダ\探したいファイル
みたいな感じですね
411: 07/17(木)00:24 ID:Nf2HlQRn(1) AAS
>>405
Powershellからcom呼ぶときはしっかりお片付けしてね
適当にやるとC#と一緒でゴミが残る(かも)だから
412: 07/17(木)01:52 ID:gLLqR9ZX(1) AAS
>>407
馬鹿は「効率的」は何が効率的なのかとかすら説明できない
413: 07/17(木)05:21 ID:tC2PFukj(1) AAS
馬鹿じゃなきゃこんなところで聞かない
414: 07/17(木)07:17 ID:wYenyBlK(1) AAS
こう言うことなんじゃないの? ディレクトリ(フォルダ)名が曖昧な記憶だから
漠然とした検索してファイル見付けたい とかなんじゃ
外部リンク:www.limecode.jp
3パターン提示してくれてるから、どれでもお好きなもので・若しくは全部使ってもいいし
一年365日ばかしか書けない誰かさんは無視しとけばいいよ
彼は馬鹿と書き込むのがじぶんのDutyだと思い込んでる節があるし 認知の病なんだろうきっと
415: 07/17(木)07:36 ID:rYvcj5zc(1) AAS
彼はこんなとこでしかマウントとれないかわいそうなやつなんだ
そっとしといてあげよう
416
(1): 07/17(木)07:41 ID:aYpECmLq(1) AAS
>>407
目的のフォルダはどうやって示されてるの?
効率的っていうのは、何に対するパフォーマンスを指してる?
417
(3): 07/17(木)08:47 ID:sGHKyXGW(1) AAS
>>410
Dirでワイルドカードが使えるので、こんな感じに仕上げてみた
※ヒットするパスの例 → C:\Documents\A001\B000X1\Excel\20250717\FileABC001.xlsx

HomePath = "C:\Documents"
SearchPath = "A???\B*\Excel\2025????\File*.xlsx"

ResultPath = HomePath
SearchPathList = Split(SearchPath, "\")
For I = 0 To UBound(SearchPathList)
 If Dir(ResultPath) <> "" Then
  ResultPath = "ファイルの下は何もないよ!"
省10
418: 07/17(木)09:28 ID:TqONBLPd(1) AAS
あたしゃ、ディレクトリ関係は「見える」の重視で、このあたり参考にしてワークシート関数でやっちゃうけど
外部リンク[php]:qwerty.work
419: 07/17(木)20:37 ID:zBpNwhAR(2/4) AAS
>>417
正規表現の様な事ができたのでしょうか?
420: 07/17(木)20:38 ID:zBpNwhAR(3/4) AAS
>>416
例えばファイルシステムオブジェクトの再帰処理で全フォルダをループしてしまうのは非効率だなぁという事です
421: 07/17(木)21:05 ID:zBpNwhAR(4/4) AAS
>>417
本当に複数の階層で部分一致できますでしょうか?
422: 07/17(木)23:17 ID:mypLb9KX(1) AAS
釣りでなければ真正馬鹿で確定
423: 07/17(木)23:26 ID:DMF1qliv(1) AAS
Chatさん。未検証
再帰使わずキュー処理
Sub FastSearchMinimal()
Dim fso As Object, q As Collection, f As Object, i As Object
Dim r As Long: r = 2
Dim k As String: k = "sample"
Set fso = CreateObject("Scripting.FileSystemObject")
Set q = New Collection: q.Add fso.GetFolder("C:\TestFolder")
With Sheets(1): .Cells.Clear: .Range("A1:C1").Value = Array("種類", "名前", "パス"): End With

Do While q.Count > 0
省11
424: 07/18(金)03:56 ID:kCxulfmG(1) AAS
若い子はChatGPTのことチャッピーと呼んでる
425: 07/18(金)08:09 ID:JhLn+KYd(1) AAS
Sub 探す()
Dim fso As Object,root As Object
Set fso = CreateObject("Scripting.FileSystemObject")
' ルートフォルダを取得して再帰処理スタート
Set root = fso.GetFolder("パス")
再帰処理 root
End Sub
'―――――――――――――――――――――――――――――――
Private Sub 再帰処理( ByVal f As Object)
Dim file as Object,fpath as string
省12
426: 07/18(金)08:22 ID:avd6O0J8(1) AAS
AA省
427
(1): 07/18(金)09:23 ID:J+L+9run(1) AAS
要件定義せず走り出すとこうなるという見本
428: 07/18(金)10:47 ID:kfpMJi4P(1/3) AAS
ま、それぞれがこれに取り組むことで、それなり成長する(こともある)んだから、いいじゃん
外野から思索も模索もせずにつべこべ小言書くことしかできないご老体には言わせときゃいいだけ
相談者、夜中にしか出張って来ないから、日中に迷走するのはやむを得ない

やりたいことは何となく見えてきたけど、それをどう実装したいのか?誰に使わせたいのか?何のために作るのか?
とかがイマイチ漠然としてて、方向ぐらいは提示して欲しいのはある
エクスプローラー開いて検索じゃあダメな理由とか、ファイルじゃ無くてフォルダ(名)に拘ってるように読めて
例えば、各々が勝手にフォルダ作ってファイル放り込んでるのを是正したいんだ、とかなのか
もう一歩踏み込んだ相談が出て来るまで待機、も有り得る
429
(1): 07/18(金)16:30 ID:aPZeO8n7(1) AAS
VBAの作り方が上手すぎて情シスに異動させられそうになったセンスの塊こと俺だけどよく構文を知ってるとかテキスト通りにとか気にしてる奴は3流よ
使用者の使いやすさにまず全振り
次に拡張性を気にすりゃメンテナンスもしやすくなる
エラー回避しない奴は論外
でも結局はどう動かすかなんよ
430: 07/18(金)16:43 ID:AbgnUBWx(1) AAS
Aという処理をVBAでさせようってお手本みたいなコードを書いてもそのA自体にセンスが無い奴が多いんだよな
それが役職も評価も年収も上がらないVBAを勉強しただけのおぢさん
431
(2): 07/18(金)17:25 ID:kfpMJi4P(2/3) AAS
>>427 読み直したら、ID末尾runだけに?
432: 07/18(金)18:03 ID:tx5irUc8(1) AAS
>>431
みんながみんなエスパーしながら好きに書いてる何を読み直すの?
433
(2): 07/18(金)20:55 ID:kfpMJi4P(3/3) AAS
わかんなきゃいいよw カリカリすんなよ
フォルダ名を取得する記事見付けた 検索文字で絞る事もできる *とか?とかも要らん
外部リンク[html]:tmkr7788.livedoor.blog
で、一番上のフォルダ指定するのが手入力っぽいから、それも自動取得するなら

Sub Sample()
Dim FPath As String
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = "C:\ほにゃらら"
.Title = "フォルダを選択してください"
If .Show = -1 Then
省7
434: 07/18(金)21:22 ID:VbDqcBb9(1) AAS
>>431
これ何言ってるのか理解できない
なにがrunだけに、なのか
1-
あと 422 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.034s