[過去ログ]
Excel VBA 質問スレ Part82 (1002レス)
Excel VBA 質問スレ Part82 http://mevius.5ch.net/test/read.cgi/tech/1737657075/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
1: デフォルトの名無しさん [] 2025/01/24(金) 03:31:15.25 ID:l239yW+P 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/ http://mevius.5ch.net/test/read.cgi/tech/1737657075/1
903: デフォルトの名無しさん [sage] 2025/06/04(水) 05:30:19.54 ID:3c6clsCg 独学って、大半の人は言語に固有の文法と、開発環境に依存する実行方法を覚えただけでしょ だからデータ型の違いとか文字コードとかアルゴリズムとかファイルシステムとか、基本がわかってないから別の言語に手を出せない http://mevius.5ch.net/test/read.cgi/tech/1737657075/903
904: デフォルトの名無しさん [] 2025/06/04(水) 06:02:44.09 ID:/hC9EQXc ここ見てりゃわかるけど、コピペで動いて偉くなったつもりの馬鹿ばっかだから http://mevius.5ch.net/test/read.cgi/tech/1737657075/904
905: デフォルトの名無しさん [] 2025/06/04(水) 07:11:35.77 ID:jKpT1SFo >>903 そうね それはその通りだと思うわ だから>>894の言ってる教えている人が そもそものVBAの基本的な型やら 分岐や演算とかよく使うObjectの扱いとかを 最初に教えていることを切に願うわ http://mevius.5ch.net/test/read.cgi/tech/1737657075/905
906: デフォルトの名無しさん [] 2025/06/04(水) 07:34:51.95 ID:BFbm2+Cn >>900 覚えるのは自分、教わったのに覚えてないようでは学べてない あと文法は覚えてもアルゴリズムは考えるもの 教わってないからできないって言ってるのは初心者以下な http://mevius.5ch.net/test/read.cgi/tech/1737657075/906
907: デフォルトの名無しさん [] 2025/06/04(水) 07:44:26.54 ID:f2CAL3f8 やる必要性がないからやらないけど、Pythonが簡単というならPythonだってわかる気がするし、C言語がFor eachもない様な単純な言語だというならそれはそれでできそうな気もする(Copilotがあるから尚更)。 ローコードにしろスクラッチにしろそれは同じ。 既製品のソフトウェアを導入するか、VBAで作成するかならどちらが安いと思いますか? もしVBAの方が安いなら世の中マクロだらけだと思うのです。 http://mevius.5ch.net/test/read.cgi/tech/1737657075/907
908: デフォルトの名無しさん [sage] 2025/06/04(水) 08:21:45.39 ID:B6zQeN2g 誰も責任を負いたくない、率先して矢面に立ちたくない方々だらけだから http://mevius.5ch.net/test/read.cgi/tech/1737657075/908
909: デフォルトの名無しさん [sage] 2025/06/04(水) 08:50:54.30 ID:yTwvetl9 >>907 マクロだらけだよ それらを管理する人(作成者)が抜けていくから管理不能になる そういった事象を解決する銀の弾丸としてRPAやノーコードツールが喧伝されたけど、 管理する人がいないって意味では同じなので同じことが繰り返されてる http://mevius.5ch.net/test/read.cgi/tech/1737657075/909
910: デフォルトの名無しさん [sage] 2025/06/04(水) 10:16:27.04 ID:pOYKhOcI >改行コードが CRLF と LF が混じったお行儀のよろしくないファイル CSVなら普通にあるな 行儀の問題じゃない http://mevius.5ch.net/test/read.cgi/tech/1737657075/910
911: デフォルトの名無しさん [sage] 2025/06/04(水) 10:36:26.59 ID:yTwvetl9 行儀だよ 少なくともRFC上においては行末がCRLFであると規定されてる ファイルの最後のみがどうでもよい http://mevius.5ch.net/test/read.cgi/tech/1737657075/911
912: デフォルトの名無しさん [sage] 2025/06/04(水) 11:22:31.03 ID:ZuFYF6Nx >>907 どっちが安いって、保守コストまで考えて言ってる? そりゃ作りっぱなしならVBAのが安上がりだけど、それじゃ後で困るって話をしてるんでしょ http://mevius.5ch.net/test/read.cgi/tech/1737657075/912
913: デフォルトの名無しさん [] 2025/06/04(水) 12:21:29.23 ID:pOYKhOcI LFは行末じゃないよ http://mevius.5ch.net/test/read.cgi/tech/1737657075/913
914: デフォルトの名無しさん [] 2025/06/04(水) 14:36:42.79 ID:p0LJP29f CSVの行改行と項目内改行が使い分けられてないわけが無い 使い分けられてなければ復元不可能になる http://mevius.5ch.net/test/read.cgi/tech/1737657075/914
915: デフォルトの名無しさん [] 2025/06/04(水) 14:39:56.22 ID:p0LJP29f >>914 "あれば可能だが無いの見たことあるのよね… http://mevius.5ch.net/test/read.cgi/tech/1737657075/915
916: デフォルトの名無しさん [sage] 2025/06/04(水) 16:28:29.01 ID:3c6clsCg 標準の改行コードはOSによって違う CR、LF、CR+LF、LF+CR、すべてのパターンが実在する フィールドに改行やコンマを含めたい場合、レコードの区切りと違うコードを割り当てる場合もあれば、クォートなどの記号でフィールドの範囲を明示する場合もある Windows版Excelはダブルクォートでフィールドの範囲を指定するのが基本 http://mevius.5ch.net/test/read.cgi/tech/1737657075/916
917: デフォルトの名無しさん [sage] 2025/06/04(水) 16:30:20.58 ID:3c6clsCg >>915 それは固定長かセパレータ(コンマ)の数をカウントしてるかどっちかかな http://mevius.5ch.net/test/read.cgi/tech/1737657075/917
918: デフォルトの名無しさん [sage] 2025/06/04(水) 18:23:31.04 ID:RQn0r/Lq >>916 CR MacOS(UNIX化前) LF UNIX、MacOS(UNIX化後) CR+LF Windows、DOS LF+CR ← なんてOS? http://mevius.5ch.net/test/read.cgi/tech/1737657075/918
919: デフォルトの名無しさん [] 2025/06/04(水) 18:39:20.47 ID:f2CAL3f8 >>909 RPAにしろ、ノーコードにしろ、なんにしろ、そうなりますよね。 結局社内でどれだけ学習意欲のある人を揃えるかによりそう。 http://mevius.5ch.net/test/read.cgi/tech/1737657075/919
920: デフォルトの名無しさん [sage] 2025/06/04(水) 19:22:49.50 ID:7S8kDVf/ >>913 由来のタイプライターを鑑みたらLFは本来行頭に来るべきものだけど、 現実的には行末 http://mevius.5ch.net/test/read.cgi/tech/1737657075/920
921: デフォルトの名無しさん [sage] 2025/06/04(水) 19:55:51.24 ID:frrYvMiA 頑張ってVBA勉強したところでプログラミングスキルとしては流石に時代遅れ&最底辺だし、 事務員としてスキルアップしたいならツールに入れ込むより業務知識を強化した方がいいし、 組織の中で出世したいなら自分でVBA書くより他人に書かせて継続的にスケールする仕組みを作るべき そして、めでたく業務効率化できたとして、いず」行き着く先は「脱Excelで属人化解消&業務効率化」でVBA職人は悪者扱いだ 本当にVBAを広めたいのなら、個人の意欲に頼るのではなく、組織として適切なインセンティブを設けることだな http://mevius.5ch.net/test/read.cgi/tech/1737657075/921
922: デフォルトの名無しさん [] 2025/06/04(水) 20:02:53.71 ID:f2CAL3f8 >>921 結局、経営者次第だよね まるでITや業務効率化に興味がないなら何もできない 社員の進言に耳を傾けないなら騙されもするし、せっかく導入したツールは社員にとって非常に使いづらい http://mevius.5ch.net/test/read.cgi/tech/1737657075/922
923: デフォルトの名無しさん [] 2025/06/05(木) 00:29:50.41 ID:Nu77Yg2O >>921 そっか あなたはこのスレ卒業だね http://mevius.5ch.net/test/read.cgi/tech/1737657075/923
924: デフォルトの名無しさん [sage] 2025/06/05(木) 08:17:29.72 ID:FSpPjL7A 四行目までは自虐だろ? 言いたいのは五行目だけって意味と捉えたが、どうなんだ まあ、ちょっと過剰に反応し過ぎなきらいは否めないが http://mevius.5ch.net/test/read.cgi/tech/1737657075/924
925: デフォルトの名無しさん [sage] 2025/06/05(木) 08:45:28.01 ID:Lp1WVm/I >>921 組織の中で継続してスケールする仕組み作ったなら属人化してないんだから悪者になる理由なくない? http://mevius.5ch.net/test/read.cgi/tech/1737657075/925
926: デフォルトの名無しさん [sage] 2025/06/05(木) 09:07:39.20 ID:FSpPjL7A お利口さんに成ろうとしてアタマでっかちに成り過ぎ 大工だっていろんなレベルもあるし色んな層が大工してる その場しのぎのやっつけ大工も居れば、客の要望を叶えるために青写真から描ける熟練大工もいる 新人大工なら木の特性とか部材同士の相性とかもよく理解しないまま最新部材使って威張ってみたり ガルバリウムには使ってはいけない釘平気で使って1〜2年後にはその部分からサビを拡げる原因作って顰蹙買うし それでも世の中は回ってる 改善なんか数年で変化してくものだ、という前提を踏まえてれば、それに見合うコストで運用出来てれば御の字 http://mevius.5ch.net/test/read.cgi/tech/1737657075/926
927: デフォルトの名無しさん [sage] 2025/06/05(木) 10:31:37.20 ID:1teg7ITB >>925 コンサルはいわゆるExcelバケツリレーの非効率さを指摘してくるのが常道 VBAで個々人の作業が省力化されてようとフローは変わらないので、実際非合理だから仕方ない その上で現行業務の調査として関係者全員にヒアリングして介在するワークシートやマクロをつぶさに調査するのにかかる莫大な費用の見積りを提示されると、 もう経営層からはVBA職人なんて非効率な業務を助長するだけの排除すべき敵としか見えなくなるわけよ http://mevius.5ch.net/test/read.cgi/tech/1737657075/927
928: デフォルトの名無しさん [sage] 2025/06/05(木) 10:49:41.34 ID:1teg7ITB あと、業務を見直してシステム化しようとした際にVBAが悪者になる大きな原因として、 一見簡単な処理に見えて蓋を開けたらたまに複雑怪奇な難攻不落の化け物が出てくる、ってのがある これ、Excel中心のワークフローをシステム化する際にはよくある話で、スケジュール遅延や予算超過を引き起こすことが多い そうなるとシステム部門や現場が経営層に頭下げるのは当然として、上場企業だと株主に経営層が謝罪なんてケースもある ここまでくるともうVBAなんて悪者もいいとこよ http://mevius.5ch.net/test/read.cgi/tech/1737657075/928
929: デフォルトの名無しさん [sage] 2025/06/05(木) 10:55:09.32 ID:Lp1WVm/I それらは継続してスケールする仕組みを作れていない場合の話じゃないの? 複雑怪奇な難攻不落の化け物って、それスケールできる仕組み作れてなくない? そもそもの話が噛み合ってないよ http://mevius.5ch.net/test/read.cgi/tech/1737657075/929
930: デフォルトの名無しさん [sage] 2025/06/05(木) 11:09:55.37 ID:1teg7ITB >>929 隅々まで適切にガバナンスを効かせながら使うならいいんじゃない? それができるほどの優秀なリーダーがVBAを選ぶかは疑問だけどな どんな組織でも、人が増えれば馬鹿も増えるし目も行き届かなくなるものだ http://mevius.5ch.net/test/read.cgi/tech/1737657075/930
931: デフォルトの名無しさん [sage] 2025/06/05(木) 11:27:50.93 ID:Z5osrhWk Excelバケツリレーは業務や人員を追加していく分にはスケールするよ 後から変更するのが困難でありシステム化が前提なら極めて非合理だけ http://mevius.5ch.net/test/read.cgi/tech/1737657075/931
932: デフォルトの名無しさん [] 2025/06/05(木) 17:48:57.22 ID:lb5raFks >>928 IR出すレベルのVBAは確実に一見簡単そうな処理では無いと思います。 そこまでの規模のシステムなら、それこそ何かしらの製品やサービスを導入してください。 http://mevius.5ch.net/test/read.cgi/tech/1737657075/932
933: デフォルトの名無しさん [] 2025/06/05(木) 17:54:18.01 ID:lb5raFks ローコードツールや多言語の方がいいのはその通りだと思います VBAはOfficeしか扱えないのだから http://mevius.5ch.net/test/read.cgi/tech/1737657075/933
934: デフォルトの名無しさん [sage] 2025/06/05(木) 18:20:52.21 ID:uYkJABQ4 > VBAはOfficeしか扱えないのだから AutoCAD、SOLIDWORKS、・・・ http://mevius.5ch.net/test/read.cgi/tech/1737657075/934
935: デフォルトの名無しさん [sage] 2025/06/05(木) 18:33:57.70 ID:Lp1WVm/I >>933 そうなんだ?知らなかった http://mevius.5ch.net/test/read.cgi/tech/1737657075/935
936: デフォルトの名無しさん [] 2025/06/05(木) 20:15:40.58 ID:r0Qxvap7 そもそもパッケージやクラウドサービス使えば、中身は全くわからない 手の出しようがない 自前なら何とかなる そこをどう捉えるかよ そもそも基幹システムをVBAで作らないし (小企業は知らんが) 作っても枝葉よ http://mevius.5ch.net/test/read.cgi/tech/1737657075/936
937: デフォルトの名無しさん [] 2025/06/05(木) 20:29:53.99 ID:lb5raFks >>936 C、CSVで吐き出せればなんとか(震え声) TYPEを全く使ってこなかったのです。 しかし、この度同じモジュールで多数のstring型の変数を宣言する必要があります。 TYPEデビューしようと思うのですがどうでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1737657075/937
938: デフォルトの名無しさん [] 2025/06/05(木) 23:29:45.76 ID:fxlZJI+h ここで聞かなきゃいけないような馬鹿はやめとけ http://mevius.5ch.net/test/read.cgi/tech/1737657075/938
939: デフォルトの名無しさん [] 2025/06/05(木) 23:53:54.23 ID:r0Qxvap7 >>937 type稀にしか使わないので調べたら CollectionやDictionaryに格納できないと マジか、知らなかったわ これに使うならクラスにしたらいいかもね http://mevius.5ch.net/test/read.cgi/tech/1737657075/939
940: デフォルトの名無しさん [sage] 2025/06/05(木) 23:57:55.29 ID:0HOZWCXV >>920 リアルタイプライターではLFの位置は任意だよ 行頭とか行末とか関係なく、行の途中でも好きな所でline feedは可能 http://mevius.5ch.net/test/read.cgi/tech/1737657075/940
941: デフォルトの名無しさん [sage] 2025/06/06(金) 01:00:59.18 ID:gfk/0ela >>940 CRLFはCRが来る時点でLFが行末じゃなくなるって話 http://mevius.5ch.net/test/read.cgi/tech/1737657075/941
942: デフォルトの名無しさん [sage] 2025/06/06(金) 08:39:00.12 ID:cx/TERMm Enterキーの矢印ってLF-CRだよね ↓ ← CR-LFならこういう向きじゃないとおかしい ← ↓ http://mevius.5ch.net/test/read.cgi/tech/1737657075/942
943: デフォルトの名無しさん [sage] 2025/06/06(金) 09:32:23.47 ID:rGtsPzUl VBAでクラスモジュールを使っていろいろやるのもなしとは言わないけれど、それなら正直JavaとかPythonとかの普通の言語を勉強した方が良いような気もするかな。クラスモジュールって、よくある普通の言語とはちょっと違ったVBA固有の仕様に過ぎないし。 http://mevius.5ch.net/test/read.cgi/tech/1737657075/943
944: デフォルトの名無しさん [sage] 2025/06/06(金) 09:44:39.10 ID:4a1tHPn5 >>943 JavaScript様のプロトタイプに喧嘩売る気か http://mevius.5ch.net/test/read.cgi/tech/1737657075/944
945: デフォルトの名無しさん [sage] 2025/06/06(金) 10:07:22.76 ID:NfW6LToZ クラスモジュールはVBA固有というかCOMの仕様 COMの絡まない処理で無理に使う必要は全く無いし、COMを理解してないと不可解な仕様が多い http://mevius.5ch.net/test/read.cgi/tech/1737657075/945
946: デフォルトの名無しさん [sage] 2025/06/06(金) 10:45:07.80 ID:c6RrnkVo 他言語でクラス使ってたらクラスモジュール作りたくなる病 http://mevius.5ch.net/test/read.cgi/tech/1737657075/946
947: デフォルトの名無しさん [sage] 2025/06/06(金) 11:16:07.96 ID:FmZludjM COMってどう勉強するんだろ 漠として簡潔な説明がなかなかなく IUnknownやらなんやら、 http://mevius.5ch.net/test/read.cgi/tech/1737657075/947
948: デフォルトの名無しさん [] 2025/06/06(金) 11:35:48.78 ID:3VaYoART InsideCOMを辛抱強く読むのが唯一の道 それ以上の資料もかみくだいた解説書もない http://mevius.5ch.net/test/read.cgi/tech/1737657075/948
949: デフォルトの名無しさん [] 2025/06/06(金) 18:33:04.93 ID:lAxJJHmL っ https://learn.microsoft.com/ja-jp/cpp/mfc/ole-in-mfc?view=msvc-170 https://learn.microsoft.com/ja-jp/windows/win32/learnwin32/module-2--using-com-in-your-windows-program http://mevius.5ch.net/test/read.cgi/tech/1737657075/949
950: デフォルトの名無しさん [sage] 2025/06/06(金) 18:52:09.71 ID:4a1tHPn5 COMの解説 https://learn.microsoft.com/ja-jp/windows/win32/com/component-object-model--com--portal http://mevius.5ch.net/test/read.cgi/tech/1737657075/950
951: デフォルトの名無しさん [] 2025/06/06(金) 19:13:06.68 ID:fJneNGsq >>939 TYPEは他のオブジェクトに引き渡せないとは聞いていました 結局ディクショナリーで登録しました http://mevius.5ch.net/test/read.cgi/tech/1737657075/951
952: デフォルトの名無しさん [] 2025/06/06(金) 20:17:15.03 ID:tc8PGxli >>951 ディクショナリだとインテリ使えんけど、まあそれでいいなら http://mevius.5ch.net/test/read.cgi/tech/1737657075/952
953: デフォルトの名無しさん [sage] 2025/06/06(金) 20:34:48.52 ID:2QLQ97JJ たまにいる勘違い人間 「自分、CやJavaできるから低レベルのVBA(笑)なんてすぐマスターできるし」とか豪語するヤツ http://mevius.5ch.net/test/read.cgi/tech/1737657075/953
954: デフォルトの名無しさん [] 2025/06/06(金) 21:03:29.16 ID:fJneNGsq 私はファイルパスやフォルダパスの取得や設定、ファイル名やフォルダ名の作成に冗長なコードを書いている気がしてならないのですが、何かいいコードはないでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1737657075/954
955: 897 [] 2025/06/06(金) 21:52:26.62 ID:CfJ/EVmD Typeの代わりにRecordSet使ったりする Field設定いちいちするの面倒だけど Filterとか使えるしCopyFromRecorSetとかできるし http://mevius.5ch.net/test/read.cgi/tech/1737657075/955
956: デフォルトの名無しさん [] 2025/06/07(土) 01:20:40.40 ID:hTJ86lb5 >>954 昔はdirやnameだったけど、今はfso使ってればいいんじゃね http://mevius.5ch.net/test/read.cgi/tech/1737657075/956
957: デフォルトの名無しさん [sage] 2025/06/07(土) 04:19:49.26 ID:GCIZhVy1 >>954 その程度の処理なら、冗長で困ることなんかほとんどないよ 自分に理解できる形で書くのが、長い目で見れば一番保守性が高いんだから ちゃんと動いてる物を直そうとして壊すことも多いから、そっとしとけ http://mevius.5ch.net/test/read.cgi/tech/1737657075/957
958: デフォルトの名無しさん [sage] 2025/06/07(土) 07:03:08.54 ID:QQtzQfGp >>954 末尾の円マーク有無で毎回処理を分岐させてるのならBuildPathを使え http://mevius.5ch.net/test/read.cgi/tech/1737657075/958
959: デフォルトの名無しさん [sage] 2025/06/07(土) 09:36:28.54 ID:zGsllLLl >>954 その冗長なコードとやらを貼ってみれば何が悪いか指摘してもらえると思うぞ http://mevius.5ch.net/test/read.cgi/tech/1737657075/959
960: デフォルトの名無しさん [sage] 2025/06/07(土) 10:26:27.74 ID:pGBLBsE0 .netの文字列操作ライブラリとか見たらいたせりつくせりで贅沢過ぎるわ!って怒り出しそう http://mevius.5ch.net/test/read.cgi/tech/1737657075/960
961: デフォルトの名無しさん [sage] 2025/06/07(土) 12:33:58.98 ID:NHsDgqoS タスクバーのアイコンを取得したくて、下記のサイトのC#をVBAに移植しても、Excelがハングアップする C#ではちゃんと動く なぜ? Dim pUIAutomation As New CUIAutomation Dim windowElementTray As IUIAutomationElement Set windowElementTray = pUIAutomation.ElementFromHandle(ByVal hTaskBar) ↓ https://learn.microsoft.com/en-us/answers/questions/115440/how-to-find-taskbar-button-screen-rect-of-a-window http://mevius.5ch.net/test/read.cgi/tech/1737657075/961
962: デフォルトの名無しさん [sage] 2025/06/07(土) 13:25:32.25 ID:QQtzQfGp https://qiita.com/Mrs_P/items/5c8070fd880b9deb284a ↑ここの人がVBAで似たようなことやってますね GetReferenceElementという関数の中に >>961 と同等のコードが書かれているから hTaskBarの値がおかしいんじゃないの? これでブラウザの自動操縦できるのかぁ 便利そうだな http://mevius.5ch.net/test/read.cgi/tech/1737657075/962
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
993: デフォルトの名無しさん [sage] 2025/06/10(火) 21:05:38.20 ID:94f6xD2K forの中をDo-Loopで囲んで脱出したい時はExit Doする http://mevius.5ch.net/test/read.cgi/tech/1737657075/993
994: デフォルトの名無しさん [sage] 2025/06/10(火) 21:05:45.22 ID: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ブロックを記述しないことで、条件が合わない場合は自動的に次のループへ進みます。 http://mevius.5ch.net/test/read.cgi/tech/1737657075/994
995: デフォルトの名無しさん [sage] 2025/06/10(火) 21:17:29.25 ID:KLsW+s5l next の手前にgoto http://mevius.5ch.net/test/read.cgi/tech/1737657075/995
996: デフォルトの名無しさん [] 2025/06/10(火) 21:35:49.89 ID:chtn5cci gotoでnext前のラベルに飛ぶ。ラベルは CONTINUE_1: など http://mevius.5ch.net/test/read.cgi/tech/1737657075/996
997: 897 [] 2025/06/10(火) 21:41:20.79 ID:4RtejL7X C言語の呪いから解けずにGoTo使いにくい俺 http://mevius.5ch.net/test/read.cgi/tech/1737657075/997
998: デフォルトの名無しさん [sage] 2025/06/10(火) 21:55:14.34 ID:qJv58WHL 無理して使うもんじゃない そもそもifで処理せずにnextさせたいなら、 逆にifで処理させれば条件に当てはまらなければnextになるんだし http://mevius.5ch.net/test/read.cgi/tech/1737657075/998
999: デフォルトの名無しさん [] 2025/06/10(火) 21:57:34.45 ID:YNq6kTxr 馬鹿ばっかで呆れるスレ http://mevius.5ch.net/test/read.cgi/tech/1737657075/999
1000: デフォルトの名無しさん [] 2025/06/10(火) 21:58:07.04 ID:YNq6kTxr 馬鹿ばっか http://mevius.5ch.net/test/read.cgi/tech/1737657075/1000
1001: 1001 [] ID:Thread このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 137日 18時間 26分 52秒 http://mevius.5ch.net/test/read.cgi/tech/1737657075/1001
1002: 1002 [] ID:Thread 5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《UPLIFT会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 4 USD/mon. から匿名でご購入いただけます。 ▼ UPLIFT会員登録はこちら ▼ https://uplift.5ch.net/ ▼ UPLIFTログインはこちら ▼ https://uplift.5ch.net/login http://mevius.5ch.net/test/read.cgi/tech/1737657075/1002
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s