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
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2025/01/24(金) 03:31:15.25ID:l239yW+P586デフォルトの名無しさん
2025/05/05(月) 11:03:49.52ID:20YqVkB+587デフォルトの名無しさん
2025/05/05(月) 11:43:00.38ID:EffckoF6 VBAにもInterfaceという機能があり見た目はJavaに似ている
しかし実質的にはCOM相互運用専用の機能であり、JavaのようなInterfaceは無いと考えて差し支えない
そもそもクラスメンバへのアクセスは常にダックタイピングなのでInterfaceはあってもなくても何の影響もなく、特に意味はない
しかし実質的にはCOM相互運用専用の機能であり、JavaのようなInterfaceは無いと考えて差し支えない
そもそもクラスメンバへのアクセスは常にダックタイピングなのでInterfaceはあってもなくても何の影響もなく、特に意味はない
588デフォルトの名無しさん
2025/05/05(月) 13:17:06.42ID:bvP/AgOh 今時のプログラミングの考え方とか、関数型プログラミングというのは、ワークシート関数でいうindex関数とmatch関数の組み合わせの検索関数や、
マッチ関数とoffset関数とcount if関数の組み合わせによるプルダウンリストの絞り込みの様な、
一つのセルに対して関数のネストはやめましょう、
一つの関数は一つの答えを返しましょう、という認識なのですがどうなのでしょうか?
マッチ関数とoffset関数とcount if関数の組み合わせによるプルダウンリストの絞り込みの様な、
一つのセルに対して関数のネストはやめましょう、
一つの関数は一つの答えを返しましょう、という認識なのですがどうなのでしょうか?
589デフォルトの名無しさん
2025/05/05(月) 13:26:58.67ID:qohU83nC 入門書読んだこと無いの?
590デフォルトの名無しさん
2025/05/05(月) 13:37:24.10ID:EffckoF6 違う
関数型プログラミングってのは、VBAなんか使わずにワークシートの式と関数だけで作りましょう、というものだと考えるとイメージしやすい
正確には、副作用のない式や関数だけを組み合わせてプログラムを作るのが関数型プログラミングで、Excelのワークシートはその一例
VBAでも注意深くやれば副作用のない関数だけで作ることは可能だが、それができるスキルの奴はVBAなんか使わないだろうね
関数型プログラミングってのは、VBAなんか使わずにワークシートの式と関数だけで作りましょう、というものだと考えるとイメージしやすい
正確には、副作用のない式や関数だけを組み合わせてプログラムを作るのが関数型プログラミングで、Excelのワークシートはその一例
VBAでも注意深くやれば副作用のない関数だけで作ることは可能だが、それができるスキルの奴はVBAなんか使わないだろうね
591デフォルトの名無しさん
2025/05/05(月) 17:39:10.53ID:ueUnqmHR 関数型プログラミングは入門記事でちょっと齧ったくらいだけど自分にはムリそうだなーと思った。
VBAとかPythonとかの手続型言語で書く分には、@決定性や副作用を意識する、A言語に取り入れられた関数型言語由来の構文(Pythonでいえば、イテレーター、内包表記、構造的パターンマッチとか?)を使うというくらいで十分じゃんじゃないかなぁ。
本格的に関数型でやるぞっていう人なら関数型言語(HaskellとかOCamlとか?)を使うんだろうし、そこまでは頑張れないけど手続型言語を書く際に関数型言語の考え方を参考にしたいという程度なら、上記@Aくらいでお茶を濁しておく感じになるのではないかと。
VBAとかPythonとかの手続型言語で書く分には、@決定性や副作用を意識する、A言語に取り入れられた関数型言語由来の構文(Pythonでいえば、イテレーター、内包表記、構造的パターンマッチとか?)を使うというくらいで十分じゃんじゃないかなぁ。
本格的に関数型でやるぞっていう人なら関数型言語(HaskellとかOCamlとか?)を使うんだろうし、そこまでは頑張れないけど手続型言語を書く際に関数型言語の考え方を参考にしたいという程度なら、上記@Aくらいでお茶を濁しておく感じになるのではないかと。
592デフォルトの名無しさん
2025/05/05(月) 22:54:48.45ID:bvP/AgOh オブジェクト指向でカプセル化とか言っていたけど、結局はその理想通りにはならなかった。
その反省で生まれたのが関数型プログラミングという理解です。
関数には引数を引き渡す事と戻り値を受け取る事しか絶対にできない。
横槍も茶々入れも鶴の一声もない。
関数は一つのだけの事しかできない。
だからバグらない、誰がやっても結果は同じ。
その反省で生まれたのが関数型プログラミングという理解です。
関数には引数を引き渡す事と戻り値を受け取る事しか絶対にできない。
横槍も茶々入れも鶴の一声もない。
関数は一つのだけの事しかできない。
だからバグらない、誰がやっても結果は同じ。
593デフォルトの名無しさん
2025/05/05(月) 23:40:24.40ID:fQ8xBj6s 関数型プログラミングはオブジェクト指向よりも圧倒的に古い
594デフォルトの名無しさん
2025/05/06(火) 01:25:53.28ID:AZSw2w0R 関数型において関数は引数を受けることと戻り値を返すことしかできないというのは正しいのだけど、
鬼門なのは関数そのものを引数として渡したり関数の戻り値として関数を返したりできるところ
それにより関数型プログラミングは飛躍的に自由度と難易度が上がり、>>592の頭だとたぶんそこで挫折する
鬼門なのは関数そのものを引数として渡したり関数の戻り値として関数を返したりできるところ
それにより関数型プログラミングは飛躍的に自由度と難易度が上がり、>>592の頭だとたぶんそこで挫折する
595デフォルトの名無しさん
2025/05/06(火) 06:45:59.65ID:j1SFEq5D596デフォルトの名無しさん
2025/05/06(火) 07:24:57.73ID:Gnnon1y6 引数として関数そのものを渡したり、戻り値として関数そのものを返したりできるかは言語仕様の問題だから、言語によってできるかできないかは決まっている。VBAではできない。
597デフォルトの名無しさん
2025/05/06(火) 08:15:59.98ID:Gnnon1y6 念のためだけど、
@ある関数(関数A)の引数の一つとして、他の関数(関数B)からの戻り値を渡すこと(大袈裟に言えば、関数呼び出し式のネスト?)と
Aある関数(関数A)の引数の一つとして、他の関数(関数B)そのものを渡すこととは、違うことだよ。
C言語もVBAと同じく、関数そのものを他の関数の引数として渡したりすること(上記A)はできないが(もっとも、関数へのポインタを渡すことによって同等のことは実現できる)、上記@はできる。
さらにいえば、関数を引数として渡せたり、戻り値として返したりできる(関数が第1級の値である等と表現されることも多い)というのは、関数型プログラミングのおそらく必要条件にはなるのだと思うけど、だからといってこれらの性質があれば関数型言語というわけでもない。JavaScriptとかPythonとかは関数が第1級の値である言語だけと、いわゆる関数型言語とは言われていないと思うし。
VBAは、構文的にはJavaScript、Pytnon、C辺りと比べても関数型プログラミングからより遠い位置にいる言語だと思うので、あまり関数型にこだわる必要はないのでは? 実践的には、関数の決定性と副作用の有無に意識的になるだけでも、それなりのメリットはあると思う。
@ある関数(関数A)の引数の一つとして、他の関数(関数B)からの戻り値を渡すこと(大袈裟に言えば、関数呼び出し式のネスト?)と
Aある関数(関数A)の引数の一つとして、他の関数(関数B)そのものを渡すこととは、違うことだよ。
C言語もVBAと同じく、関数そのものを他の関数の引数として渡したりすること(上記A)はできないが(もっとも、関数へのポインタを渡すことによって同等のことは実現できる)、上記@はできる。
さらにいえば、関数を引数として渡せたり、戻り値として返したりできる(関数が第1級の値である等と表現されることも多い)というのは、関数型プログラミングのおそらく必要条件にはなるのだと思うけど、だからといってこれらの性質があれば関数型言語というわけでもない。JavaScriptとかPythonとかは関数が第1級の値である言語だけと、いわゆる関数型言語とは言われていないと思うし。
VBAは、構文的にはJavaScript、Pytnon、C辺りと比べても関数型プログラミングからより遠い位置にいる言語だと思うので、あまり関数型にこだわる必要はないのでは? 実践的には、関数の決定性と副作用の有無に意識的になるだけでも、それなりのメリットはあると思う。
598デフォルトの名無しさん
2025/05/06(火) 09:32:02.27ID:ePr8aXMn あとこれは割とどうでもいいことだけど、関数の戻り値を他の関数の引数にすることを「関数のネスト」ということは、普通はあまりないのではないかなぁ(関数呼び出し式のネストという趣旨だとすれば意図は通じるけれども)。
普通は「関数のネスト」といわれれば、関数定義のネスト(関数内で定義された関数)の方を想起すると思う。
普通は「関数のネスト」といわれれば、関数定義のネスト(関数内で定義された関数)の方を想起すると思う。
599デフォルトの名無しさん
2025/05/06(火) 09:47:26.27ID:K1Pjz07i pythonの凸レータは関数型らしいし関数のネストっぽく観える
600デフォルトの名無しさん
2025/05/07(水) 23:18:41.10ID:5rQjCI4p 関数型プログラミングは手続きという処理を見せないだけで、ロジックを隠すことでシンプルな見た目にするもの。
歴史上、常にこういう発想が何度も出てきているが、見た目をきれいにしたいだけで仕様の変更に耐えられない構文であることから、一度も主流になったことがない。
歴史上、常にこういう発想が何度も出てきているが、見た目をきれいにしたいだけで仕様の変更に耐えられない構文であることから、一度も主流になったことがない。
601デフォルトの名無しさん
2025/05/07(水) 23:48:45.09ID:8NEt0qiL602デフォルトの名無しさん
2025/05/08(木) 01:43:07.29ID:eAkjlYW3 VBA使ってる人間が他言語批判は草
603デフォルトの名無しさん
2025/05/08(木) 01:56:21.88ID:hlDlUBWZ VBAは俗人化するのでは?なんて質問を会議でこのご時世に言われるとは思わなんだ
優しく答えて大恥かかせてしまったけど少し悪かったかも
優しく答えて大恥かかせてしまったけど少し悪かったかも
604デフォルトの名無しさん
2025/05/08(木) 03:20:26.19ID:Mm7IQCJP 設計と管理がちゃんとしてれば関数型だろうがプログラムは作れる
だいたいは見積もりが甘いかドキュメントの整備がおろそかになってるだけ
だいたいは見積もりが甘いかドキュメントの整備がおろそかになってるだけ
605デフォルトの名無しさん
2025/05/08(木) 06:36:17.83ID:rpgtocHg VBAの何が属人化するの?
他の本格言語、例えばC++と何が違うの?
他の本格言語、例えばC++と何が違うの?
606デフォルトの名無しさん
2025/05/08(木) 07:04:16.42ID:KsTAlec+ 単純に用途が限定的なのでわざわざ覚える人が少ないのよ
607デフォルトの名無しさん
2025/05/08(木) 07:25:23.15ID:jLg0E+bB 関数型言語が主流になったことがないというのは事実だろうけど、関数型言語による宣言的なプログラミングスタイルに何かしら限界とか制約があるからなのか、それとも単に難しいからなのかはわからないな。関数型言語をある程度使いこなした経験がある人には分かるのかもしれないが。
608デフォルトの名無しさん
2025/05/08(木) 07:39:13.07ID:jLg0E+bB 状態を数多く管理しなければならないようなプログラム(GUIとか?)はちょっと苦手と聞いたことごあるような気もするが、今はどうなんだろう。
609デフォルトの名無しさん
2025/05/08(木) 08:15:37.11ID:Im8CJRBo VBAに限らず、属人化のリスクは「協業の仕事」共通やな
当たり前っちゃ、当たり前だが
なんつうか、丁寧さというか共同作業のセンスというか・・・
当たり前っちゃ、当たり前だが
なんつうか、丁寧さというか共同作業のセンスというか・・・
610デフォルトの名無しさん
2025/05/08(木) 09:23:26.41ID:v93ye6LH どだい、現場の最前線で使われる省力化目的の小アプリ(業務の簡素化含め)なんか
その寿命は3〜5年使えれば御の字
その間にもいろいろ業務形態も変化するし欲しい成果物もその都度変わったりする
その変化に逐次対応できるものなら属人化してようとも目的は果たしてる
その期間内に制作者が辞めたところでそれが何だってんだ 属人化させたのは上の責任
属人化がいけないなんてのは、上の方の言い訳に過ぎない 何故一人に任せた
10年も使い続けられるような制作物ならとっくに償却できてるし、その会社の立派な資産
その寿命は3〜5年使えれば御の字
その間にもいろいろ業務形態も変化するし欲しい成果物もその都度変わったりする
その変化に逐次対応できるものなら属人化してようとも目的は果たしてる
その期間内に制作者が辞めたところでそれが何だってんだ 属人化させたのは上の責任
属人化がいけないなんてのは、上の方の言い訳に過ぎない 何故一人に任せた
10年も使い続けられるような制作物ならとっくに償却できてるし、その会社の立派な資産
611デフォルトの名無しさん
2025/05/08(木) 10:03:03.06ID:a9PTljx+ 話がループしてるな
612デフォルトの名無しさん
2025/05/08(木) 10:09:29.45ID:D3KgMrbS Exit vba
613デフォルトの名無しさん
2025/05/08(木) 10:11:28.02ID:RKaJBu95 属人化の話題はVBAスレの華だからね。VBAがアイデンティティになっているタイプの人には譲れない話題なんでしょ。
今は、昔と比べて他の言語に触れてからVBAもやるという人が増えているのかな。VBAが最初に触れた言語ですという人の割合ってどれくらいなんだろう。
今は、昔と比べて他の言語に触れてからVBAもやるという人が増えているのかな。VBAが最初に触れた言語ですという人の割合ってどれくらいなんだろう。
614デフォルトの名無しさん
2025/05/08(木) 10:29:57.11ID:a9PTljx+ モジュール分ける意味と基準が判らない
全部のプロシージャを一つのモジュールに詰め込むのは何が悪いの?
全部のプロシージャを一つのモジュールに詰め込むのは何が悪いの?
615デフォルトの名無しさん
2025/05/08(木) 10:32:44.22ID:G5GTs1je Exile VIVA!
616デフォルトの名無しさん
2025/05/08(木) 10:41:00.38ID:719LxqHN617デフォルトの名無しさん
2025/05/08(木) 10:54:42.11ID:RKaJBu95 一般的な言語だと、機能分割や名前空間の分割のためにモジュールを分けるのでは。
モジュール分割の基準については、凝集度(高い方が良い)とか、結合度(低い方が良い)とかの概念でいろいろ議論されているみたい。
ただ、正直、VBAのモジュールっていろいろと特徴的なので(クラス定義はクラスモジュールで行う必要があるとか)、モジュール分割が必要な規模ならVBAではあんまり書きたくないかな。
モジュール分割の基準については、凝集度(高い方が良い)とか、結合度(低い方が良い)とかの概念でいろいろ議論されているみたい。
ただ、正直、VBAのモジュールっていろいろと特徴的なので(クラス定義はクラスモジュールで行う必要があるとか)、モジュール分割が必要な規模ならVBAではあんまり書きたくないかな。
618デフォルトの名無しさん
2025/05/08(木) 12:10:22.44ID:8ptxnmrn 今は改善されてるのかも知れないが
名前ちょっと変えただけで行方不明になることは良くあった
名前ちょっと変えただけで行方不明になることは良くあった
619デフォルトの名無しさん
2025/05/08(木) 18:48:55.03ID:rpgtocHg 私はモジュールをコードの使用目的で分けているな
ブックマークみたいな感じ
あと特定のアプリケーションを操作する時は、関係する変数、オブジェクトをひとまとめにしたりとか
もっと何も気にせず使えるのなら、アドインにコードをまとめて共有したりもするんだろうな
ブックマークみたいな感じ
あと特定のアプリケーションを操作する時は、関係する変数、オブジェクトをひとまとめにしたりとか
もっと何も気にせず使えるのなら、アドインにコードをまとめて共有したりもするんだろうな
620デフォルトの名無しさん
2025/05/08(木) 20:28:48.50ID:Qp1M/T2r 皆さんVBAでどのくらいコードを書きます?
1000行くらい?
1000行くらい?
621デフォルトの名無しさん
2025/05/08(木) 21:11:25.68ID:kNzCbrU5 シートごとにモジュール分けてる...
622デフォルトの名無しさん
2025/05/08(木) 21:26:36.63ID:ownVsw/K623デフォルトの名無しさん
2025/05/08(木) 21:34:26.78ID:hlDlUBWZ そういうところがセンスないんだよな
僕は詳しい僕は長くかける
で自己満足して社内の評価も年収も低いっしょ
火の玉ストレートでごめん
僕は詳しい僕は長くかける
で自己満足して社内の評価も年収も低いっしょ
火の玉ストレートでごめん
624デフォルトの名無しさん
2025/05/08(木) 21:49:23.37ID:rpgtocHg 可読性の高いコードは、処理を一つ一つ、行を書く事だと思います
あと、エクセルだとRangeだのCellsだの、英語や数字になるから、それぞれ変数で名前をつけて変数に代入して可読性を上げるとか
あと、エクセルだとRangeだのCellsだの、英語や数字になるから、それぞれ変数で名前をつけて変数に代入して可読性を上げるとか
625デフォルトの名無しさん
2025/05/09(金) 07:31:44.14ID:Y+GhIEwV うちの職場だけ特殊なので
全体のシステムが大きいからコードも必然的に大きくなるだけ
その中の個々の機能では1000行以下の機能もたくさんあるよ
全体のシステムが大きいからコードも必然的に大きくなるだけ
その中の個々の機能では1000行以下の機能もたくさんあるよ
626デフォルトの名無しさん
2025/05/09(金) 08:00:17.09ID:zNQNct04 RPA!RPA!って少し前もてはやされてたけど、
速度的にも手順的にもVBAでよくねって案件多かったよね
速度的にも手順的にもVBAでよくねって案件多かったよね
627デフォルトの名無しさん
2025/05/09(金) 12:28:57.25ID:piOnFv34 そうなか、自分のとこだけで精一杯で世間知らずになってるかも
628デフォルトの名無しさん
2025/05/09(金) 18:28:31.58ID:HJ6RQEwc VBAで済むならVBA
RPAの方が楽ならRPAってだけ
RPAの方が楽なのにVBAで書くのはバカ
RPAの方が楽ならRPAってだけ
RPAの方が楽なのにVBAで書くのはバカ
629デフォルトの名無しさん
2025/05/09(金) 18:30:10.14ID:HJ6RQEwc >>628
ちょっと一行目が合わんな(寝起き)
ちょっと一行目が合わんな(寝起き)
630デフォルトの名無しさん
2025/05/09(金) 18:41:10.42ID:zNQNct04 何が楽かって視点がないからRPAが廃れたってことをわかってなさそうなレス
631デフォルトの名無しさん
2025/05/09(金) 22:10:08.68ID:p2pcYwx2 そもそも論として、使い方を学ぼうとしない人が大勢なのに使いこなせるわけがない
kintoneだろうがなんだろうが
銀の弾などない
kintoneだろうがなんだろうが
銀の弾などない
632デフォルトの名無しさん
2025/05/09(金) 22:37:09.74ID:p2pcYwx2 文系管理職なのに業務アプリをシュシュっと作れちゃう俺
あるわけないだろバーカ
絶対スカラ値の原則を無視したり、列を繰り返したりしてるわボケ
あるわけないだろバーカ
絶対スカラ値の原則を無視したり、列を繰り返したりしてるわボケ
633デフォルトの名無しさん
2025/05/10(土) 02:15:51.46ID:2PI0HY+M 豊川悦司「俺ー♪」
634デフォルトの名無しさん
2025/05/10(土) 13:05:37.78ID:IWhliTad 無から有は難しいよね、環境や周囲の協力がないと
635デフォルトの名無しさん
2025/05/10(土) 13:13:10.16ID:APagMvUq 業務効率化程度の仕事なら、無から有は勝手にやりゃいいだけだから難しくない
周囲を巻き込んだとしてもどのみち最終的には言い出しっぺが責任持ってやれよという感じにしかならん
有から別の有の方が遥かに難しい
周囲を巻き込んだとしてもどのみち最終的には言い出しっぺが責任持ってやれよという感じにしかならん
有から別の有の方が遥かに難しい
636デフォルトの名無しさん
2025/05/10(土) 13:23:47.83ID:TkZSyEZj 誰かがVBAなんかで半端に作っちゃったものを、こんなもんSaaSでいいだろと移行させるみたいなのは難しい
必ず、決まった業務を回すしか能のない人達が重箱の隅をつついたり牛歩戦術をしてみたりと必死に抵抗してくる
必ず、決まった業務を回すしか能のない人達が重箱の隅をつついたり牛歩戦術をしてみたりと必死に抵抗してくる
637デフォルトの名無しさん
2025/05/10(土) 13:31:42.36ID:HZyfRGTg 金がかかるとなるとそりゃそうでしょ。
638デフォルトの名無しさん
2025/05/10(土) 13:49:08.55ID:tG+fugNq いや、経験上、金を問題にするのはある程度上の立場の人間なので、本質的でないしょーもない業務影響はあまり問題にしない。
〇業務を〇時間削減できるから人件費換算で導入コストと利用料を上回る効果が見込めますと説明できればよい。
くだらないことで難癖を付けてくるのは現場の人間。
〇業務を〇時間削減できるから人件費換算で導入コストと利用料を上回る効果が見込めますと説明できればよい。
くだらないことで難癖を付けてくるのは現場の人間。
639デフォルトの名無しさん
2025/05/10(土) 14:05:58.61ID:3Mk2sCKg >>630
何が楽かさえわかってないのかよw
何が楽かさえわかってないのかよw
640デフォルトの名無しさん
2025/05/10(土) 14:09:45.85ID:644AQTJb 無から有ってのは、何であれ産みの苦しみって奴で、社会でも人生でもあらゆる場面で起こり得る
有から別の有ってのは例えが判らんが、αというシステム化された処理が有って、その結果を元に
別のβを作ろうとしているのか、或いはαの改善品αUを作ろうとしているのか
前者なら無から有と一緒だし、後者なら元と成ってる最初のαを精査すればいいだけ
こんなもんSaaSでいいだろと思い込んでしまった原因を自省してみて、うかうか宣伝文句に釣られてただけと
理解出来たら儲けもの じぶんで実際にSaaSに移行してみて一年位稼働させてそれでも一切問題が発生しない
事を確認してから提案するぐらいの努力は発言する前に済ませておくべき
やってみましたできませんでしたは、殊営利を目的とする企業では落第の烙印を押されるだけ
プロトタイプ・試作品も無いまま実務で運用することほど無謀な試みは無い 旧日本軍大本営方式でしか無い
有から別の有ってのは例えが判らんが、αというシステム化された処理が有って、その結果を元に
別のβを作ろうとしているのか、或いはαの改善品αUを作ろうとしているのか
前者なら無から有と一緒だし、後者なら元と成ってる最初のαを精査すればいいだけ
こんなもんSaaSでいいだろと思い込んでしまった原因を自省してみて、うかうか宣伝文句に釣られてただけと
理解出来たら儲けもの じぶんで実際にSaaSに移行してみて一年位稼働させてそれでも一切問題が発生しない
事を確認してから提案するぐらいの努力は発言する前に済ませておくべき
やってみましたできませんでしたは、殊営利を目的とする企業では落第の烙印を押されるだけ
プロトタイプ・試作品も無いまま実務で運用することほど無謀な試みは無い 旧日本軍大本営方式でしか無い
641デフォルトの名無しさん
2025/05/10(土) 14:31:05.56ID:HZyfRGTg642デフォルトの名無しさん
2025/05/10(土) 14:39:47.45ID:tG+fugNq >>641
だからそれを含めて難しいって話でしょ
だからそれを含めて難しいって話でしょ
643デフォルトの名無しさん
2025/05/10(土) 16:34:23.69ID:ngauQQ8E 話の逸れ方が大きくなってきたな
644デフォルトの名無しさん
2025/05/10(土) 16:38:29.08ID:iGSB8dlv 前から先人達がこのスレで、Arrayを使って云々・・・と議論しているの見かけて、
「どこで活かせるんだろう?」と思っていたけど、
今日初めて使ってみた。
もともとは、Power Queryで複数のクエリーとピボットを順番に更新させるのをVBAでやっていたのだけれど、
「クエリと接続」とタスクマネージャーをずっと監視しているのもしんどいので、
ChatGPTに、
「クエリーやピボットテーブルのそれぞれを1つのステップとして、
WMIの "SWbemLocatorオブジェクトのConnectServerメソッド" とやらを使って、
各ステップの開始/終了時刻とCPU最大使用率のテーブルをワークシートに出力できないか?」
と相談したら、その中に、出てきましたよ、
' ステップ一覧
Dim steps As Variant
' 更新ステップのリスト(ステップ名, 実行内容)
steps = Array( _
Array("Q_1", "クエリ - Q_1"), _
Array("Q_2", "Query", "クエリ - Q_2"), _
Array("Q_3", "Query", "クエリ - Q_3"), _
Array("Q_4", "Query", "クエリ - Q_4"), _
Array("Q_5", "Query", "クエリ - Q_5"), _
Array("Q_6", "Query", "クエリ - Q_6"), _
Array("Q_7", "Query", "クエリ - Q_7"), _
Array("Q_8", "Query", "クエリ - Q_8"), _
Array("PVT_1", "Pivot", "PVT_1") _
)
と。
で、何度かやり取りした結果、うまく出来まスた。
「どこで活かせるんだろう?」と思っていたけど、
今日初めて使ってみた。
もともとは、Power Queryで複数のクエリーとピボットを順番に更新させるのをVBAでやっていたのだけれど、
「クエリと接続」とタスクマネージャーをずっと監視しているのもしんどいので、
ChatGPTに、
「クエリーやピボットテーブルのそれぞれを1つのステップとして、
WMIの "SWbemLocatorオブジェクトのConnectServerメソッド" とやらを使って、
各ステップの開始/終了時刻とCPU最大使用率のテーブルをワークシートに出力できないか?」
と相談したら、その中に、出てきましたよ、
' ステップ一覧
Dim steps As Variant
' 更新ステップのリスト(ステップ名, 実行内容)
steps = Array( _
Array("Q_1", "クエリ - Q_1"), _
Array("Q_2", "Query", "クエリ - Q_2"), _
Array("Q_3", "Query", "クエリ - Q_3"), _
Array("Q_4", "Query", "クエリ - Q_4"), _
Array("Q_5", "Query", "クエリ - Q_5"), _
Array("Q_6", "Query", "クエリ - Q_6"), _
Array("Q_7", "Query", "クエリ - Q_7"), _
Array("Q_8", "Query", "クエリ - Q_8"), _
Array("PVT_1", "Pivot", "PVT_1") _
)
と。
で、何度かやり取りした結果、うまく出来まスた。
645デフォルトの名無しさん
2025/05/10(土) 18:59:33.45ID:Pq21kD+5 しねごみかす
646デフォルトの名無しさん
2025/05/10(土) 19:48:45.71ID:pekHwIHV >>644
どれくらい処理の重い作業か、帰りの組み方をしているのか私には分かりませんが、
テーブルデータの整形が終わった後、一区切りついた後、テーブル関数やリスト関数などで繰り返し作業保護(一般的なeach?)
どれくらい処理の重い作業か、帰りの組み方をしているのか私には分かりませんが、
テーブルデータの整形が終わった後、一区切りついた後、テーブル関数やリスト関数などで繰り返し作業保護(一般的なeach?)
647デフォルトの名無しさん
2025/05/10(土) 19:52:02.31ID:pekHwIHV >>646
を行う前に
必ず
List.Buffer Table.buffer を行うと(VBAの配列並にとは言いませんが)処理が劇的に早くなると思います。
私は2000行に6000行のTaxt.Containsをして結果をList.SelectやAnyTrueなどをしていますが、劇的に早くなりました。
を行う前に
必ず
List.Buffer Table.buffer を行うと(VBAの配列並にとは言いませんが)処理が劇的に早くなると思います。
私は2000行に6000行のTaxt.Containsをして結果をList.SelectやAnyTrueなどをしていますが、劇的に早くなりました。
648デフォルトの名無しさん
2025/05/10(土) 20:41:13.86ID:pekHwIHV VBAでセルの中の改行のある大量の文字列の中から目的の情報を抽出するという試みをやっていたのですが、最近になってやっと改行で区切って、1行にバラすという事に気がつきました。
これで無関係な文字列の行はフィルターできるし、視認性が劇的に改善したしで本当に楽になった。
データは必ず一行づつという当たり前を改めて知らされた。
これで無関係な文字列の行はフィルターできるし、視認性が劇的に改善したしで本当に楽になった。
データは必ず一行づつという当たり前を改めて知らされた。
649デフォルトの名無しさん
2025/05/10(土) 21:53:08.57ID:iGSB8dlv 今回Arrayを使って、各クエリー/ピボットテーブル更新中のCPU使用率を調べようとしたのは、
・複数の前処理ブックの共通テーブルを参照して、項目ごと時間軸串刺し合計や最大/最小値とその時間なんかを求めるブック
・仕上がり52,560行
・これでもまだ中間集計ブック
・将来的には104万行を超えるので、ベース集計クエリーにはデータ モデルを使用
・今の第8世代Core i7と32GBメモリーで、このブックの更新には20分超
・当初は、List.Buffer、Table.bufferをクエリーで使って高速化を試したが、これだけ行が多かったりクエリー依存が多いと、シーケンシャルにしてBufferしたつもりが前クエリーの再計算が入ってExcelが固まったので断念。
・逆に、104万行以内に収まる途中のクエリーは、ワークシートに書き出してこれを参照するようにしたら、最後まで計算できるようになった。
・複数の前処理ブックの共通テーブルを参照して、項目ごと時間軸串刺し合計や最大/最小値とその時間なんかを求めるブック
・仕上がり52,560行
・これでもまだ中間集計ブック
・将来的には104万行を超えるので、ベース集計クエリーにはデータ モデルを使用
・今の第8世代Core i7と32GBメモリーで、このブックの更新には20分超
・当初は、List.Buffer、Table.bufferをクエリーで使って高速化を試したが、これだけ行が多かったりクエリー依存が多いと、シーケンシャルにしてBufferしたつもりが前クエリーの再計算が入ってExcelが固まったので断念。
・逆に、104万行以内に収まる途中のクエリーは、ワークシートに書き出してこれを参照するようにしたら、最後まで計算できるようになった。
650デフォルトの名無しさん
2025/05/10(土) 23:00:42.57ID:pekHwIHV651デフォルトの名無しさん
2025/05/10(土) 23:08:41.01ID:pekHwIHV >>649
明らかに不要なデータを元ファイルから削除するとか、グループバイがしたいのならワークシートで
明らかに不要なデータを元ファイルから削除するとか、グループバイがしたいのならワークシートで
652デフォルトの名無しさん
2025/05/10(土) 23:10:16.50ID:pekHwIHV 行の並び変えをするとか
不要な列は削除しておくとか
集計はパワーピボットを使用するとか、テーブルのjoinではなく、リレーションシップにするとか
できそうではないですか?
不要な列は削除しておくとか
集計はパワーピボットを使用するとか、テーブルのjoinではなく、リレーションシップにするとか
できそうではないですか?
653デフォルトの名無しさん
2025/05/10(土) 23:17:35.27ID:iGSB8dlv >>650
別スレで
別スレで
654デフォルトの名無しさん
2025/05/11(日) 02:32:23.22ID:orNzllBw 属人化言い出したらExcelシートそのものも属人化だろな
655デフォルトの名無しさん
2025/05/11(日) 06:38:44.59ID:dESx0WKG656デフォルトの名無しさん
2025/05/11(日) 09:33:21.32ID:xj1UIMtq 他人のVBAより数式のほうが見たくなくなる
657デフォルトの名無しさん
2025/05/11(日) 12:52:43.82ID:orNzllBw 世の中、属人化シートだらけ
658デフォルトの名無しさん
2025/05/11(日) 13:42:45.69ID:oI5baM/t 逆に、「他人に見てもらう」ことを意識してExcel作っていたら、
独りよがりでない、少しはわかりやすいもの作るのかと。
「お天道様が見ている」
「第二の視座」
とか言うヤツ
独りよがりでない、少しはわかりやすいもの作るのかと。
「お天道様が見ている」
「第二の視座」
とか言うヤツ
659デフォルトの名無しさん
2025/05/11(日) 13:57:41.75ID:UTf8BgbA 大さんという上司に観てもらってた良い思い出
660デフォルトの名無しさん
2025/05/12(月) 19:52:24.55ID:/MqwmjFI Excel大好き人間としてはHaskellを推したい
661デフォルトの名無しさん
2025/05/13(火) 20:06:46.42ID:IQbEImBo 正規表現で漢字全てにマッチさせるにはユニコードの最後の漢字までを範囲にしたらいいのだすか?
662デフォルトの名無しさん
2025/05/13(火) 20:43:44.18ID:UxpIpbA1 [\u4E00-\u9FFF]
663デフォルトの名無しさん
2025/05/13(火) 22:37:17.01ID:IQbEImBo urlに恐らく改行が含まれているのですが、改行もマッチさせるとなるともはやなんでもマッチしてしまいますか?
664デフォルトの名無しさん
2025/05/14(水) 00:23:46.12ID:TPeqytUP 漢字で始まり、ひらがなで終わる
ひらがなのみ
カタカナのみ
マッチした結果を全てディクショナリーに登録して、アイテムは1+1を繰り返してカウントする
これだけでも頻度分析ができるんだね
ひらがなのみ
カタカナのみ
マッチした結果を全てディクショナリーに登録して、アイテムは1+1を繰り返してカウントする
これだけでも頻度分析ができるんだね
665デフォルトの名無しさん
2025/05/14(水) 00:57:58.82ID:WcLab/oc >>664
それ単語の区切りはどうするの?
それ単語の区切りはどうするの?
666デフォルトの名無しさん
2025/05/14(水) 01:04:11.54ID:KAgWD1+F 仕事の管理でVBA使ってポツポツやってたけど違う業務管理が追加になってもうすっかりコードなんか忘れてるので面倒だなと思ってたけどChatGPTちゃんに聞いたら楽に組めた
Aのシートをコピーしてシート名はCにしてとかでもすぐに教えてくれるし
こんなのでもすっかり忘れてるから助かった
Aのシートをコピーしてシート名はCにしてとかでもすぐに教えてくれるし
こんなのでもすっかり忘れてるから助かった
667デフォルトの名無しさん
2025/05/14(水) 01:12:17.68ID:TPeqytUP668デフォルトの名無しさん
2025/05/14(水) 01:49:41.56ID:TPeqytUP 例えば
お 世話 に なり ます(あるいは なります)
まで分解しても意味を持たないでしょう?
お 世話になります
で十分でしょう
東京タワー みたいに
漢字カタカナパターンもある事に気がついた
お 世話 に なり ます(あるいは なります)
まで分解しても意味を持たないでしょう?
お 世話になります
で十分でしょう
東京タワー みたいに
漢字カタカナパターンもある事に気がついた
669デフォルトの名無しさん
2025/05/14(水) 09:24:40.17ID:mIHvW3MM それで分析できるのはその定義における節の頻度であり、一般的な単語とは異なる
それがお前の目的に合っているのであれば好きにしたらいい
ついでに言えばそんなもんMeCabに突っ込めばいいだけだからお前独自の方式なんて誰も必要とはしない
それがお前の目的に合っているのであれば好きにしたらいい
ついでに言えばそんなもんMeCabに突っ込めばいいだけだからお前独自の方式なんて誰も必要とはしない
670デフォルトの名無しさん
2025/05/14(水) 09:51:03.61ID:mHOx/gQ0 おー、MeCabってのがあるのね。めかぶって読めるなと書こうとしたら、本当にめかぶから名前を取っているのね。
671デフォルトの名無しさん
2025/05/15(木) 22:57:08.75ID:vsR8tMHm めかぶというやつの公式ページ?の
一行一分
は誤字ですか?
それだったらテキストマイニングを極めていてもやっぱりこの程度なんだなと
あと何を言っているのかを判断するには前後の脈略が必要だし、日本語はひらがなに特に意味がある訳でもないから
そこまで単語に固執する必要もない気がする
一行一分
は誤字ですか?
それだったらテキストマイニングを極めていてもやっぱりこの程度なんだなと
あと何を言っているのかを判断するには前後の脈略が必要だし、日本語はひらがなに特に意味がある訳でもないから
そこまで単語に固執する必要もない気がする
672デフォルトの名無しさん
2025/05/16(金) 09:43:09.58ID:IgvVjYfn make a boo
673デフォルトの名無しさん
2025/05/16(金) 10:48:47.56ID:em0azm75 manko
674デフォルトの名無しさん
2025/05/16(金) 13:02:22.31ID:TOZOy2SA 印刷範囲外のセルが
なぜか印刷範囲中央付近に
プレビューされ、実際にも印刷されます
改ページプレビューも利用して
グレーゾーンに押しやっている
テキストボックスなんですが
元の配置よりさらに外側に動かすと
印刷範囲から消えはします
そのため支障をきたしている
訳ではないのですが
なぜこうなってしまうのでしょうか?
なぜか印刷範囲中央付近に
プレビューされ、実際にも印刷されます
改ページプレビューも利用して
グレーゾーンに押しやっている
テキストボックスなんですが
元の配置よりさらに外側に動かすと
印刷範囲から消えはします
そのため支障をきたしている
訳ではないのですが
なぜこうなってしまうのでしょうか?
675デフォルトの名無しさん
2025/05/16(金) 13:04:09.96ID:TOZOy2SA ↑スレ違いでした、すみません
取り消します
取り消します
676デフォルトの名無しさん
2025/05/17(土) 09:02:45.85ID:ztNWa+hU ラベルのAcceleratorって何に使うの?
677デフォルトの名無しさん
2025/05/17(土) 10:17:32.20ID:BnclY/n2 マジレスすると
ボタンのタイトルを E&xcel とかにすると
Ctrl+x でボタンを押せるのが Accellerator じゃないかな
ボタンのタイトルを E&xcel とかにすると
Ctrl+x でボタンを押せるのが Accellerator じゃないかな
678デフォルトの名無しさん
2025/05/17(土) 10:20:42.98ID:ztNWa+hU でもラベル押せないじゃん
679デフォルトの名無しさん
2025/05/17(土) 12:01:06.66ID:vJvypOU0 ボタンの上とかにラベルを貼り付けることで
マウスクリックした時、キーボード操作した時で同じ操作をさせられる
Accessなら、ラベル単体でもつついてあれこれできるけど、Excelではそんな機能は無い
SpecialEffectと併用して見た目押したようにできるかも知らんが
そんな無駄を付け加えてまでやりたいことなのかどうか
マウスクリックした時、キーボード操作した時で同じ操作をさせられる
Accessなら、ラベル単体でもつついてあれこれできるけど、Excelではそんな機能は無い
SpecialEffectと併用して見た目押したようにできるかも知らんが
そんな無駄を付け加えてまでやりたいことなのかどうか
680デフォルトの名無しさん
2025/05/17(土) 12:11:18.06ID:ztNWa+hU 回答?
独り言?
結局、何に使うの?
独り言?
結局、何に使うの?
681デフォルトの名無しさん
2025/05/17(土) 12:32:35.29ID:FyrcyVVg 一応、フォーカス移動には使えるんじゃない? それがどの程度嬉しいことかは微妙なところかもしれないが。
682デフォルトの名無しさん
2025/05/17(土) 12:42:35.66ID:ztNWa+hU テキストボックスの前に置いといて、ラベルにフォーカスさせると
テキストボックスにフォーカスされる
テキストボックスが複数あっても一発で選べる
なるほど、こうやって使うのか
テキストボックスにフォーカスされる
テキストボックスが複数あっても一発で選べる
なるほど、こうやって使うのか
683デフォルトの名無しさん
2025/05/17(土) 12:48:29.09ID:AUJKaPS/ それは可能かもしれないけど、テキストボックスにフォーカスを移動するためにアクセラレータを使うのはどうかなぁ
684デフォルトの名無しさん
2025/05/17(土) 12:49:47.54ID:AUJKaPS/ >>661が指摘してましたね
スレ汚しでごめんなさい
スレ汚しでごめんなさい
685デフォルトの名無しさん
2025/05/17(土) 12:58:22.21ID:ztNWa+hU よく出来たアプリはみんなできるようになってるよ
S)検索
みたいな感じ
マウスしか使わない人はそんなこと考えないし、
タブオーダーも無茶苦茶で、どこに飛ぶか判らない
S)検索
みたいな感じ
マウスしか使わない人はそんなこと考えないし、
タブオーダーも無茶苦茶で、どこに飛ぶか判らない
686デフォルトの名無しさん
2025/05/17(土) 14:53:18.10ID:Mou0F5/k フォントサイズをセルの横幅にジャストサイズで合わせたいのですがどの様にすればいいでしょうか?
縮小して全体を表示するは試していますが、念のために列幅と文字数を割って1文字あたりの大きさをまとめるとか、そう言った確実な方法を探しています。
縮小して全体を表示するは試していますが、念のために列幅と文字数を割って1文字あたりの大きさをまとめるとか、そう言った確実な方法を探しています。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【テレビ】玉川徹「これ天災じゃなくて人災でしょ。責任どうするんだ」 日本のホテル、中国人観光客からのキャンセルが相次ぐ [冬月記者★]
- プーチン大統領「ウクライナ軍が撤退すれば戦闘は終わる」と主張 [どどん★]
- 高市総理の「そんなことよりも」発言を釈明 木原官房長官「急いで話題転換する趣旨」 [ぐれ★]
- 【文春】元TOKIO・国分太一(51)「女性スタッフ2名への“わいせつ事案”」日テレ事情聴取の全貌が分かった! ★10 [Ailuropoda melanoleuca★]
- 【中国国防省】日本は戦争犯罪を悔い改め、憲法改正と軍備増強という危険な試みをただちに改めよと発信… [BFU★]
- 参政・梅村みずほ議員「土葬を原則禁止にしろ」「上皇陛下も火葬が望ましいといってる」 [バイト歴50年★]
- 【悲報】高市内閣「WSJの記事はデマ」⇒共同「独自取材によると、トランプ氏は中国との対立をエスカレートするなと要請」 [115996789]
- サウナで大量に汗流すと露骨にしょっぱいもの食べたくなる
- 【朗報】シンガポール首相「日本は東南アジアで最も信頼されている国」→中国人大発狂wwwwww
- 家にテレビないやついる?
- 【高市悲報】中国、世界中に是非を問うwwwwwwwwwwwwwwwwwww [308389511]
- 人間「猟友会がパワーバランスで議会よりも強くなることは、絶対にあってはならない。シビリアンコントロールは近代国家の原則」 [932029429]
