[過去ログ]
Excel VBA 質問スレ Part82 (1002レス)
Excel VBA 質問スレ Part82 http://mevius.5ch.net/test/read.cgi/tech/1737657075/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
963: デフォルトの名無しさん [sage] 2025/06/07(土) 13:32:49.76 ID:NHsDgqoS >>962 このサイトも見た hTaskBarの値は、C#版とVBA版で同じ値だったので、正しいと思う。 Chromeのウィンドウハンドルでやった場合は、ちゃんと動いた http://mevius.5ch.net/test/read.cgi/tech/1737657075/963
964: デフォルトの名無しさん [sage] 2025/06/07(土) 13:58:10.47 ID:QQtzQfGp これで最後の行まで動いたよ Dim hWndTray As LongPtr: hWndTray = FindWindow("Shell_TrayWnd", vbNullString) Dim hWndRebar As LongPtr: hWndRebar = FindWindowEx(hWndTray, 0, "ReBarWindow32", vbNullString) Dim hWndMSTaskSwWClass As LongPtr: hWndMSTaskSwWClass = FindWindowEx(hWndRebar, 0, "MSTaskSwWClass", vbNullString) Dim hWndMSTaskListWClass As LongPtr: hWndMSTaskListWClass = FindWindowEx(hWndMSTaskSwWClass, 0, "MSTaskListWClass", vbNullString) Dim pUIAutomation As New CUIAutomation Dim windowElementTray As IUIAutomationElement Set windowElementTray = pUIAutomation.ElementFromHandle(ByVal hWndMSTaskListWClass) MsgBox "終わり" http://mevius.5ch.net/test/read.cgi/tech/1737657075/964
965: デフォルトの名無しさん [sage] 2025/06/07(土) 14:07:56.34 ID:QQtzQfGp もうひとつの方もこれで動いた Dim hWndTray As LongPtr: hWndTray = FindWindow("Shell_TrayWnd", vbNullString0) Dim hWndTrayNotify As LongPtr: hWndTrayNotify = FindWindowEx(hWndTray, 0, "TrayNotifyWnd", vbNullString) Dim hWndSysPager As LongPtr: hWndSysPager = FindWindowEx(hWndTrayNotify, 0, "SysPager", vbNullString) Dim hWndToolbar As LongPtr: hWndToolbar = FindWindowEx(hWndSysPager, 0, "ToolbarWindow32", vbNullString) Dim pUIAutomation As New CUIAutomation Dim windowElementTray As IUIAutomationElement Set windowElementTray = pUIAutomation.ElementFromHandle(ByVal hWndToolbar) MsgBox "終わり" http://mevius.5ch.net/test/read.cgi/tech/1737657075/965
966: デフォルトの名無しさん [sage] 2025/06/07(土) 15:15:58.64 ID:NHsDgqoS >>965 あ、 Windows 11だと動かないな… >>964のタスクバーのボタンは動いたけど、 >>965のトレイアイコンは、最後の1行で、やっぱExcelごとハングアップで強制終了するわ (Set windowElementTray = pUIAutomation.ElementFromHandle(ByVal hWndToolbar)) C#版は、>>965のトレイアイコンもちゃんと動くんだけど… http://mevius.5ch.net/test/read.cgi/tech/1737657075/966
967: デフォルトの名無しさん [] 2025/06/07(土) 16:04:31.64 ID:I++ihMYF >>959 例えばファイルシステムで フォルダ1の中から指定の文字列を含むフォルダを探して 見つかったフォルダのパスを取得して さらにそのフォルダの中から指定の文字列を含むフォルダを探して 見つかったフォルダのパスを取得して そのフォルダの中に指定のフォルダがあるか確認してなかった場合はフォルダを作成するコードです 2〜3回同じ様な事を繰り返しているので冗長な気がしてなりません http://mevius.5ch.net/test/read.cgi/tech/1737657075/967
968: デフォルトの名無しさん [sage] 2025/06/07(土) 16:09:10.87 ID:WTKqP7i+ >>967 それそのままAIに投げたら一瞬で書いてくれるよ http://mevius.5ch.net/test/read.cgi/tech/1737657075/968
969: 947 [sage] 2025/06/07(土) 16:28:51.74 ID:ADmBeqPj >>948, 949, 950 ありがとうございます マイクロソフトのサイトは機械翻訳がどうも…、と敬遠していましたが、参照してみます それから洋書、かぁ… http://mevius.5ch.net/test/read.cgi/tech/1737657075/969
970: デフォルトの名無しさん [] 2025/06/07(土) 17:36:52.86 ID:hTJ86lb5 >>967 それを平で書いてるなら冗長 再帰処理でやるのがあるべき姿 まずは指定フォルダ下の全フォルダを出力する再帰処理書いてみ (全てが再帰処理ではない。呼び出し元処理と再帰処理の2つ書くことになる。念の為) http://mevius.5ch.net/test/read.cgi/tech/1737657075/970
971: デフォルトの名無しさん [sage] 2025/06/07(土) 17:47:31.26 ID:QQtzQfGp >>966 Windows11はタスクバーに使われてるクラスが変わってるらしいから関係あるかもよ https://www.autohotkey.com/boards/viewtopic.php?style=19&t=108539 AHKにクラス名を調べるツールがついてたような http://mevius.5ch.net/test/read.cgi/tech/1737657075/971
972: デフォルトの名無しさん [sage] 2025/06/07(土) 17:55:49.45 ID: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 あとは関数の中身を書くだけ http://mevius.5ch.net/test/read.cgi/tech/1737657075/972
973: デフォルトの名無しさん [sage] 2025/06/07(土) 18:21:21.32 ID: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 http://mevius.5ch.net/test/read.cgi/tech/1737657075/973
974: デフォルトの名無しさん [sage] 2025/06/07(土) 18:49:45.58 ID:NHsDgqoS >>971 んー でも、C#ではちゃんと動くので、VBA側の問題な気が… クラスが変わってるのも知ってる。 http://mevius.5ch.net/test/read.cgi/tech/1737657075/974
975: デフォルトの名無しさん [] 2025/06/07(土) 22:19:45.07 ID:I++ihMYF >>970 やっぱりそうですよね 再帰処理を頑張って覚えます http://mevius.5ch.net/test/read.cgi/tech/1737657075/975
976: デフォルトの名無しさん [] 2025/06/08(日) 02:30:07.18 ID:bVJzS0fI >>975 そやね たったこれだけでフォルダ階層どこまでも潜れるのかと感動すると思う (かもしれないw) フォルダ再帰ができたら各全ファイル名列挙も再帰処理の中に追加しとき いつか使う時が来る http://mevius.5ch.net/test/read.cgi/tech/1737657075/976
977: デフォルトの名無しさん [] 2025/06/08(日) 03:49:16.50 ID:kACuu3za こんなので偉そうにする馬鹿 http://mevius.5ch.net/test/read.cgi/tech/1737657075/977
978: デフォルトの名無しさん [] 2025/06/08(日) 10:13:48.24 ID:szoadHGe >>977 わざわざ「私バカです」って手を挙げて出てきてどうした http://mevius.5ch.net/test/read.cgi/tech/1737657075/978
979: 897 [] 2025/06/08(日) 10:59:09.81 ID:BE7fUg1L >>976 昔だったら stack overflowとか心配してたけど今はあまり気にしなくて良さそうだね http://mevius.5ch.net/test/read.cgi/tech/1737657075/979
980: デフォルトの名無しさん [sage] 2025/06/08(日) 11:01:04.08 ID:j4jIPbHU .netのAPIラッパー関数もソース見ると大抵泥臭い事やってんのよね http://mevius.5ch.net/test/read.cgi/tech/1737657075/980
981: デフォルトの名無しさん [sage] 2025/06/08(日) 11:03:50.75 ID:4qkaLQIW スタック領域は昔からほとんど変わってないから気にする必要はある http://mevius.5ch.net/test/read.cgi/tech/1737657075/981
982: デフォルトの名無しさん [sage] 2025/06/08(日) 11:07:37.10 ID:j4jIPbHU Excel VBA 質問スレ Part83 https://mevius.5ch.net/test/read.cgi/tech/1749348402/ http://mevius.5ch.net/test/read.cgi/tech/1737657075/982
983: 897 [] 2025/06/08(日) 11:11:01.02 ID:BE7fUg1L >>982 乙彼 >>981 共有サーバのアドレス変わった時、全フォルダの奥までショートカット探して書き換えたけど 何ともなかったからそんなもんだと思ってた http://mevius.5ch.net/test/read.cgi/tech/1737657075/983
984: デフォルトの名無しさん [] 2025/06/08(日) 12:43:48.49 ID:gXHyLlYW >>976 再帰処理のコード自体はわかるのですが、If文で再帰処理をする、しないまでは考えてなかったです http://mevius.5ch.net/test/read.cgi/tech/1737657075/984
985: デフォルトの名無しさん [] 2025/06/08(日) 14:43:09.01 ID:bVJzS0fI >>984 if? 途中から折り返す時のこと? それなら必要 http://mevius.5ch.net/test/read.cgi/tech/1737657075/985
986: デフォルトの名無しさん [sage] 2025/06/08(日) 16:28:21.07 ID:46RFXcFD 2階層しか掘らないのにわざわざ再帰処理にするかなぁ http://mevius.5ch.net/test/read.cgi/tech/1737657075/986
987: デフォルトの名無しさん [] 2025/06/08(日) 16:56:20.91 ID:DI4VVn6/ >>978 構ってもらうのも大変なんだぞ 察してあげなきゃ http://mevius.5ch.net/test/read.cgi/tech/1737657075/987
988: デフォルトの名無しさん [sage] 2025/06/08(日) 17:17:56.33 ID:8915HtnW >>983 スタックさせたまま全ファイル走査なんてしないだろうから、 ファイルの数何個あろうが同じでは? http://mevius.5ch.net/test/read.cgi/tech/1737657075/988
989: デフォルトの名無しさん [sage] 2025/06/08(日) 19:19:30.01 ID:4BwIalv3 ソース的に簡単にするなら全ファイルのフルパス取って正規表現だな http://mevius.5ch.net/test/read.cgi/tech/1737657075/989
990: デフォルトの名無しさん [] 2025/06/09(月) 07:30:24.52 ID:UIpY0QNU フォルダのショートカットファイルがある場合の動作確認はした方がいいぞ http://mevius.5ch.net/test/read.cgi/tech/1737657075/990
991: デフォルトの名無しさん [sage] 2025/06/09(月) 08:19:56.01 ID:EHQrQQev シンボリックリンクとジャンクションとハードリンクも動作確認した方がいいぞ パスが255文字超えた場合も動作確認した方がいいぞ http://mevius.5ch.net/test/read.cgi/tech/1737657075/991
992: デフォルトの名無しさん [] 2025/06/10(火) 20:52:05.68 ID:RKOrDLCJ VBAのfor eachやfor nextでif文を使用して条件に合わなかった時にnext するにはどうしたらいいでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1737657075/992
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 10 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s