ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
関連スレ
Excel VBA 質問スレ Part79(ワッチョイあり)
https://mevius.5ch.net/test/read.cgi/tech/1674875532/
Excel VBA 質問スレ Part80(ワッチョイあり)
https://mevius.5ch.net/test/read.cgi/tech/1700826110/
※前スレ
Excel VBA 質問スレ Part79
https://mevius.5ch.net/test/read.cgi/tech/1674874007/
Excel VBA 質問スレ Part80
https://mevius.5ch.net/test/read.cgi/tech/1685489018/
Excel VBA 質問スレ Part81
https://mevius.5ch.net/test/read.cgi/tech/1713416618/
探検
Excel VBA 質問スレ Part82
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2025/01/24(金) 03:31:15.25ID:l239yW+P967デフォルトの名無しさん
2025/06/07(土) 16:04:31.64ID:I++ihMYF >>959
例えばファイルシステムで
フォルダ1の中から指定の文字列を含むフォルダを探して
見つかったフォルダのパスを取得して
さらにそのフォルダの中から指定の文字列を含むフォルダを探して
見つかったフォルダのパスを取得して
そのフォルダの中に指定のフォルダがあるか確認してなかった場合はフォルダを作成するコードです
2〜3回同じ様な事を繰り返しているので冗長な気がしてなりません
例えばファイルシステムで
フォルダ1の中から指定の文字列を含むフォルダを探して
見つかったフォルダのパスを取得して
さらにそのフォルダの中から指定の文字列を含むフォルダを探して
見つかったフォルダのパスを取得して
そのフォルダの中に指定のフォルダがあるか確認してなかった場合はフォルダを作成するコードです
2〜3回同じ様な事を繰り返しているので冗長な気がしてなりません
968デフォルトの名無しさん
2025/06/07(土) 16:09:10.87ID:WTKqP7i+ >>967
それそのままAIに投げたら一瞬で書いてくれるよ
それそのままAIに投げたら一瞬で書いてくれるよ
969947
2025/06/07(土) 16:28:51.74ID:ADmBeqPj970デフォルトの名無しさん
2025/06/07(土) 17:36:52.86ID:hTJ86lb5 >>967
それを平で書いてるなら冗長
再帰処理でやるのがあるべき姿
まずは指定フォルダ下の全フォルダを出力する再帰処理書いてみ
(全てが再帰処理ではない。呼び出し元処理と再帰処理の2つ書くことになる。念の為)
それを平で書いてるなら冗長
再帰処理でやるのがあるべき姿
まずは指定フォルダ下の全フォルダを出力する再帰処理書いてみ
(全てが再帰処理ではない。呼び出し元処理と再帰処理の2つ書くことになる。念の為)
971デフォルトの名無しさん
2025/06/07(土) 17:47:31.26ID:QQtzQfGp >>966
Windows11はタスクバーに使われてるクラスが変わってるらしいから関係あるかもよ
https://www.autohotkey.com/boards/viewtopic.php?style=19&t=108539
AHKにクラス名を調べるツールがついてたような
Windows11はタスクバーに使われてるクラスが変わってるらしいから関係あるかもよ
https://www.autohotkey.com/boards/viewtopic.php?style=19&t=108539
AHKにクラス名を調べるツールがついてたような
972デフォルトの名無しさん
2025/06/07(土) 17:55:49.45ID:nK7i38Q0 >>967
こんなのかな
>フォルダ1(Path1)の中から指定の文字列を含むフォルダ(Pattern1)を探して見つかったフォルダのパス(Path2)を取得する
Path2 = GetPatternPath(Path1, Pattern1) As String
>さらにそのフォルダ(Path2)の中から指定の文字列(Pattern2)を含むフォルダを探して
>見つかったフォルダのパス(Path3)を取得する
Path3 = FindPatternPath(Path2, Pattern2) As String
>そのフォルダ(Path3)の中に指定のフォルダ(Pattern3)があるか確認してなかった場合はフォルダを作成するコードです
result = CheckPatternPath(Path3, Pattern3) As Boolean
If result Then
Call MakePatternPath(Path3, Pattern3)
End If
あとは関数の中身を書くだけ
こんなのかな
>フォルダ1(Path1)の中から指定の文字列を含むフォルダ(Pattern1)を探して見つかったフォルダのパス(Path2)を取得する
Path2 = GetPatternPath(Path1, Pattern1) As String
>さらにそのフォルダ(Path2)の中から指定の文字列(Pattern2)を含むフォルダを探して
>見つかったフォルダのパス(Path3)を取得する
Path3 = FindPatternPath(Path2, Pattern2) As String
>そのフォルダ(Path3)の中に指定のフォルダ(Pattern3)があるか確認してなかった場合はフォルダを作成するコードです
result = CheckPatternPath(Path3, Pattern3) As Boolean
If result Then
Call MakePatternPath(Path3, Pattern3)
End If
あとは関数の中身を書くだけ
973デフォルトの名無しさん
2025/06/07(土) 18:21:21.32ID:QQtzQfGp >>967
ShiteiNoMojiretsu = "指定の文字列"
Shitei = "指定"
Path = "C:\フォルダ1"
Path = Path & "\" & Dir(Path & "\*" & ShiteiNoMojiretsu & "*", vbDirectory)
Path = Path & "\" & Dir(Path & "\*" & ShiteiNoMojiretsu & "*", vbDirectory)
If Dir(Path & "\" & Shitei, vbDirectory) = "" Then
MkDir Path & "\" & Shitei
End If
ShiteiNoMojiretsu = "指定の文字列"
Shitei = "指定"
Path = "C:\フォルダ1"
Path = Path & "\" & Dir(Path & "\*" & ShiteiNoMojiretsu & "*", vbDirectory)
Path = Path & "\" & Dir(Path & "\*" & ShiteiNoMojiretsu & "*", vbDirectory)
If Dir(Path & "\" & Shitei, vbDirectory) = "" Then
MkDir Path & "\" & Shitei
End If
974デフォルトの名無しさん
2025/06/07(土) 18:49:45.58ID:NHsDgqoS975デフォルトの名無しさん
2025/06/07(土) 22:19:45.07ID:I++ihMYF976デフォルトの名無しさん
2025/06/08(日) 02:30:07.18ID:bVJzS0fI977デフォルトの名無しさん
2025/06/08(日) 03:49:16.50ID:kACuu3za こんなので偉そうにする馬鹿
978デフォルトの名無しさん
2025/06/08(日) 10:13:48.24ID:szoadHGe >>977
わざわざ「私バカです」って手を挙げて出てきてどうした
わざわざ「私バカです」って手を挙げて出てきてどうした
979897
2025/06/08(日) 10:59:09.81ID:BE7fUg1L >>976
昔だったら stack overflowとか心配してたけど今はあまり気にしなくて良さそうだね
昔だったら stack overflowとか心配してたけど今はあまり気にしなくて良さそうだね
980デフォルトの名無しさん
2025/06/08(日) 11:01:04.08ID:j4jIPbHU .netのAPIラッパー関数もソース見ると大抵泥臭い事やってんのよね
981デフォルトの名無しさん
2025/06/08(日) 11:03:50.75ID:4qkaLQIW スタック領域は昔からほとんど変わってないから気にする必要はある
982デフォルトの名無しさん
2025/06/08(日) 11:07:37.10ID:j4jIPbHU Excel VBA 質問スレ Part83
https://mevius.5ch.net/test/read.cgi/tech/1749348402/
https://mevius.5ch.net/test/read.cgi/tech/1749348402/
983897
2025/06/08(日) 11:11:01.02ID:BE7fUg1L984デフォルトの名無しさん
2025/06/08(日) 12:43:48.49ID:gXHyLlYW >>976
再帰処理のコード自体はわかるのですが、If文で再帰処理をする、しないまでは考えてなかったです
再帰処理のコード自体はわかるのですが、If文で再帰処理をする、しないまでは考えてなかったです
985デフォルトの名無しさん
2025/06/08(日) 14:43:09.01ID:bVJzS0fI986デフォルトの名無しさん
2025/06/08(日) 16:28:21.07ID:46RFXcFD 2階層しか掘らないのにわざわざ再帰処理にするかなぁ
987デフォルトの名無しさん
2025/06/08(日) 16:56:20.91ID:DI4VVn6/988デフォルトの名無しさん
2025/06/08(日) 17:17:56.33ID:8915HtnW989デフォルトの名無しさん
2025/06/08(日) 19:19:30.01ID:4BwIalv3 ソース的に簡単にするなら全ファイルのフルパス取って正規表現だな
990デフォルトの名無しさん
2025/06/09(月) 07:30:24.52ID:UIpY0QNU フォルダのショートカットファイルがある場合の動作確認はした方がいいぞ
991デフォルトの名無しさん
2025/06/09(月) 08:19:56.01ID:EHQrQQev シンボリックリンクとジャンクションとハードリンクも動作確認した方がいいぞ
パスが255文字超えた場合も動作確認した方がいいぞ
パスが255文字超えた場合も動作確認した方がいいぞ
992デフォルトの名無しさん
2025/06/10(火) 20:52:05.68ID:RKOrDLCJ VBAのfor eachやfor nextでif文を使用して条件に合わなかった時にnext するにはどうしたらいいでしょうか?
993デフォルトの名無しさん
2025/06/10(火) 21:05:38.20ID:94f6xD2K forの中をDo-Loopで囲んで脱出したい時はExit Doする
994デフォルトの名無しさん
2025/06/10(火) 21:05:45.22ID:zK5HBYNC >>992
VBAでFor EachやFor Nextループ中に条件に合わない場合に次のループに進むには、If文を使い、条件が合致した場合のみ処理を記述します。
' For Each の例
For Each item In collection
If 条件 Then
' 条件に合った場合の処理をここに書く
End If
Next item
' For Next の例
For i = 1 To 10
If 条件 Then
' 条件に合った場合の処理をここに書く
End If
Next i
Elseブロックを記述しないことで、条件が合わない場合は自動的に次のループへ進みます。
VBAでFor EachやFor Nextループ中に条件に合わない場合に次のループに進むには、If文を使い、条件が合致した場合のみ処理を記述します。
' For Each の例
For Each item In collection
If 条件 Then
' 条件に合った場合の処理をここに書く
End If
Next item
' For Next の例
For i = 1 To 10
If 条件 Then
' 条件に合った場合の処理をここに書く
End If
Next i
Elseブロックを記述しないことで、条件が合わない場合は自動的に次のループへ進みます。
995デフォルトの名無しさん
2025/06/10(火) 21:17:29.25ID:KLsW+s5l next の手前にgoto
996デフォルトの名無しさん
2025/06/10(火) 21:35:49.89ID:chtn5cci gotoでnext前のラベルに飛ぶ。ラベルは
CONTINUE_1:
など
CONTINUE_1:
など
997897
2025/06/10(火) 21:41:20.79ID:4RtejL7X C言語の呪いから解けずにGoTo使いにくい俺
998デフォルトの名無しさん
2025/06/10(火) 21:55:14.34ID:qJv58WHL 無理して使うもんじゃない
そもそもifで処理せずにnextさせたいなら、
逆にifで処理させれば条件に当てはまらなければnextになるんだし
そもそもifで処理せずにnextさせたいなら、
逆にifで処理させれば条件に当てはまらなければnextになるんだし
999デフォルトの名無しさん
2025/06/10(火) 21:57:34.45ID:YNq6kTxr 馬鹿ばっかで呆れるスレ
1000デフォルトの名無しさん
2025/06/10(火) 21:58:07.04ID:YNq6kTxr 馬鹿ばっか
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 137日 18時間 26分 52秒
新しいスレッドを立ててください。
life time: 137日 18時間 26分 52秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 浜崎あゆみ、上海公演中止を発表「急遽中止の要請を受け…まだ信じられず、言葉になりません」 [征夷大将軍★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★3 [ぐれ★]
- 【プロ野球】巨人 オコエ瑠偉外野手が自由契約 [あずささん★]
- 立憲・原口議員がキレキレ「日本にレアアース来なければ中国は精製できない」「“旧敵国条項”明らかなやりすぎ」 [少考さん★]
- 「おこめ券知られていない」農水省が説明会実施へ 「税金でおこめ券配ると、発行2団体に利益集中するのでは?」記者の問いに鈴木農水大臣 [ぐれ★]
- 登山中の男性死亡、クマ被害か 顔や首に傷 新潟 [どどん★]
- 大阪府議会、中国総領事に「汚い首を斬ってやる」投稿の謝罪を求める非難決議可決。高市「謝罪なさい!」 [931948549]
- 【高市悲報】経団連会長、政府が話にならないので中国大使と直接会談🥺経済交流の重要性訴える [359965264]
- 【悲報】浜崎あゆみさんの上海コンサートが前日に急きょ中止 [452836546]
- 立憲原口「レアアースを精製する技術は日本が持ってる。中国は日本に頼らないと精製できない」高市「そうなの?!」 [931948549]
- コンパクトカーに詳しいやつ来いや
- 【画像】夫に買い物を頼む妻、有能すぎるwwwwwwwwwwwwwwwwww [242521385]
