- 1 名前:デフォルトの名無しさん [2025/01/24(金) 03:31:15.25 ID:l239yW+P.net]
- 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/
- 577 名前:YLe.net mailto: 自分だけが読み書きするコードならそれもありだと思うけど、一般論としては、文字数を少し節約できるというくらいしかメリットがないなら、あえてラッパーを作る意味はあまりないような気がする。 []
- [ここ壊れてます]
- 578 名前:デフォルトの名無しさん mailto:sage [2025/05/03(土) 09:23:52.05 ID:Hazt22aJ.net]
- >>565
短い文字数が有用ならコメント付けないで変数名とか全部1文字にしたらいいんじゃね
- 579 名前:デフォルトの名無しさん mailto:sage [2025/05/03(土) 10:20:15.15 ID:VRj6VpYS.net]
- 使用回数によるよね
同じ操作が何回も出てくるなら適当なラッパー書いてあげると見通し良くて親切かなと もちろんコメント付きでね
- 580 名前:デフォルトの名無しさん mailto:sage [2025/05/03(土) 11:20:28.73 ID:F8pywi6k.net]
- そのプロジェクト内では1回しか使わなくても、よくある定形処理は関数にまとめた方がいい
文字数を減らす必要はないけど、行数は少ない方がデバッグがしやすくなる
- 581 名前:デフォルトの名無しさん mailto:sage [2025/05/03(土) 16:42:04.86 ID:h9Jrb8E+.net]
- 1ファイルに全部書く
- 582 名前:デフォルトの名無しさん [2025/05/03(土) 17:16:40.74 ID:2+JR0EAo.net]
- ラッパーというのですね
ありがとうございます function関数やサブプロシージャは短い方がいい(一つの処理しか行わなくてもいい、行わない方がいい) 一回しか使用しない処理でも、メインプロシージャから切り分けた方がいい と聞いていましたが、これはラッパーというのですね
- 583 名前:デフォルトの名無しさん mailto:sage [2025/05/03(土) 18:50:44.41 ID:ocHu15P2.net]
- ぱっぱらぱー
- 584 名前:デフォルトの名無しさん mailto:sage [2025/05/03(土) 21:38:51.92 ID:Hazt22aJ.net]
- お鍋の中からインチキおじさんが登場しますた
- 585 名前:デフォルトの名無しさん mailto:sage [2025/05/03(土) 22:43:16.33 ID:aLoX39eB.net]
- ぴーひゃらぴーひゃら
- 586 名前:デフォルトの名無しさん mailto:sage [2025/05/04(日) 07:28:49.39 ID:ajXSlqYh.net]
- ラッパーというのは、元の関数とかにガワを被せた(つまり、その中で元の関数を呼び出している)関数とかのことね。包装するとかの意味のラップ。念のため。
- 587 名前:デフォルトの名無しさん mailto:sage [2025/05/04(日) 08:17:46.31 ID:kPdoN8ak.net]
- ラッパーとインターフェースはどう違うのっと
- 588 名前:デフォルトの名無しさん mailto:sage [2025/05/04(日) 09:35:43.88 ID:VN1fyBP0.net]
- インターフェースは、抽象的にいえばひとまとまりと観念されるコードの塊(クラスとかモジュールとか)同士の間の境界、その境界に接するコード部分かな。インターフェースを介して情報のやり取りを行うに際して互いの前提が異なる場合には、そのままでは情報のやり取りができないので前提を合わせる必要がある。ラッパーはそのために使われることもあるけれど、基本的には全然別の概念。
- 589 名前:デフォルトの名無しさん [2025/05/04(日) 16:30:55.85 ID:IQyuDcpS.net]
- >>571
それはモジュール分割 ラッパーはすでにあるものを呼び出すファンクションやサブプロシージャ ラッパーはラッピングだから、モジュールを包むモジュールというイメージ
- 590 名前:デフォルトの名無しさん [2025/05/04(日) 16:35:24.36 ID:IQyuDcpS.net]
- >>577
質問者じゃないけど、あなたの説明は入出力のインターフェース 質問者はオブジェクト思考のインターフェースのことを聞いているとおもわれる インターフェースはモジュールに決まったメソッド、プロパティを持たせるための骨格となる設計の定義 特定のインターフェースを継承させることで、そのクラスにはどういうメソッド、どういうプロパティがあるのか調べなくてもわかるようにできる
- 591 名前:デフォルトの名無しさん mailto:sage [2025/05/04(日) 21:24:05.55 ID:NkPvwNmC.net]
- 具象クラスの(>>577の意味での)インターフェイスを規定する抽象クラス(抽象基底クラス)それ自体のことをインターフェイスと呼ぶのは、オブジェクト指向というよりもJavaとかから広まった用語法なのでは。
個人的には、インターフェイスという語の本来の意味はあくまでも577のようなものであって、Javaとかでいうインターフェイスはそこからの派生とか転用として位置付けられるべき用語法だと思うかな。 ただたしかに、Javaみたいな意味でインターフェイスという語を用いることの方が(プログラミング関係の文脈では)もはや多いのかもしれないし、質問した576の意図もそちらにあったのかもしれないね。
- 592 名前:デフォルトの名無しさん [2025/05/04(日) 21:50:46.14 ID:6QG7+rqM.net]
- PowerQueryでの動的な繰り返し処理を理解したら、VBAにもList.Select関数とかText.PositionOfのOccurrence.Allとか欲しい
- 593 名前:デフォルトの名無しさん [2025/05/05(月) 01:42:23.95 ID:6skGH2rL.net]
- 自分で実装すればいいじゃん
- 594 名前:デフォルトの名無しさん mailto:sage [2025/05/05(月) 09:14:01.67 ID:8n1c0Fvg.net]
- 実装は難しくはないだろうけど、汎用的に使える便利な関数はできれば組み込みで持っていて欲しいという感覚は分かる。
- 595 名前:デフォルトの名無しさん [2025/05/05(月) 10:45:35.51 ID:NKQxWENO.net]
- 配列の中に、対象に含まれているものがあれば、配列から取り出す、
っていう処理だから、内部処理的には、結局配列を全てチェックしていて意味がないのかな
- 596 名前:デフォルトの名無しさん mailto:sage [2025/05/05(月) 10:46:27.32 ID:Q8K4+hk+.net]
- 自分が欲しいと思ったものは誰かがすでに作ってる
作るよりAIに聞いた方が早い
- 597 名前:デフォルトの名無しさん mailto:sage [2025/05/05(月) 11:03:49.52 ID:20YqVkB+.net]
- >>579
InterfaceはJava用語 TraitはRust用語 Excelでは何と言うのか?概念がそもそも無いのか?
- 598 名前:デフォルトの名無しさん mailto:sage [2025/05/05(月) 11:43:00.38 ID:EffckoF6.net]
- VBAにもInterfaceという機能があり見た目はJavaに似ている
しかし実質的にはCOM相互運用専用の機能であり、JavaのようなInterfaceは無いと考えて差し支えない そもそもクラスメンバへのアクセスは常にダックタイピングなのでInterfaceはあってもなくても何の影響もなく、特に意味はない
- 599 名前:デフォルトの名無しさん [2025/05/05(月) 13:17:06.42 ID:bvP/AgOh.net]
- 今時のプログラミングの考え方とか、関数型プログラミングというのは、ワークシート関数でいうindex関数とmatch関数の組み合わせの検索関数や、
マッチ関数とoffset関数とcount if関数の組み合わせによるプルダウンリストの絞り込みの様な、 一つのセルに対して関数のネストはやめましょう、 一つの関数は一つの答えを返しましょう、という認識なのですがどうなのでしょうか?
- 600 名前:デフォルトの名無しさん mailto:sage [2025/05/05(月) 13:26:58.67 ID:qohU83nC.net]
- 入門書読んだこと無いの?
- 601 名前:デフォルトの名無しさん mailto:sage [2025/05/05(月) 13:37:24.10 ID:EffckoF6.net]
- 違う
関数型プログラミングってのは、VBAなんか使わずにワークシートの式と関数だけで作りましょう、というものだと考えるとイメージしやすい 正確には、副作用のない式や関数だけを組み合わせてプログラムを作るのが関数型プログラミングで、Excelのワークシートはその一例 VBAでも注意深くやれば副作用のない関数だけで作ることは可能だが、それができるスキルの奴はVBAなんか使わないだろうね
- 602 名前:デフォルトの名無しさん mailto:sage [2025/05/05(月) 17:39:10.53 ID:ueUnqmHR.net]
- 関数型プログラミングは入門記事でちょっと齧ったくらいだけど自分にはムリそうだなーと思った。
VBAとかPythonとかの手続型言語で書く分には、@決定性や副作用を意識する、A言語に取り入れられた関数型言語由来の構文(Pythonでいえば、イテレーター、内包表記、構造的パターンマッチとか?)を使うというくらいで十分じゃんじゃないかなぁ。 本格的に関数型でやるぞっていう人なら関数型言語(HaskellとかOCamlとか?)を使うんだろうし、そこまでは頑張れないけど手続型言語を書く際に関数型言語の考え方を参考にしたいという程度なら、上記@Aくらいでお茶を濁しておく感じになるのではないかと。
- 603 名前:デフォルトの名無しさん [2025/05/05(月) 22:54:48.45 ID:bvP/AgOh.net]
- オブジェクト指向でカプセル化とか言っていたけど、結局はその理想通りにはならなかった。
その反省で生まれたのが関数型プログラミングという理解です。 関数には引数を引き渡す事と戻り値を受け取る事しか絶対にできない。 横槍も茶々入れも鶴の一声もない。 関数は一つのだけの事しかできない。 だからバグらない、誰がやっても結果は同じ。
- 604 名前:デフォルトの名無しさん [2025/05/05(月) 23:40:24.40 ID:fQ8xBj6s.net]
- 関数型プログラミングはオブジェクト指向よりも圧倒的に古い
- 605 名前:デフォルトの名無しさん mailto:sage [2025/05/06(火) 01:25:53.28 ID:AZSw2w0R.net]
- 関数型において関数は引数を受けることと戻り値を返すことしかできないというのは正しいのだけど、
鬼門なのは関数そのものを引数として渡したり関数の戻り値として関数を返したりできるところ それにより関数型プログラミングは飛躍的に自由度と難易度が上がり、>>592の頭だとたぶんそこで挫折する
- 606 名前:デフォルトの名無しさん [2025/05/06(火) 06:45:59.65 ID:j1SFEq5D.net]
- >>594
まさに今それをやろうとしていますね 引数に関数を渡そうとしているの 値を引数にしたいけど、関数をネストせざるを得ない
- 607 名前:デフォルトの名無しさん mailto:sage [2025/05/06(火) 07:24:57.73 ID:Gnnon1y6.net]
- 引数として関数そのものを渡したり、戻り値として関数そのものを返したりできるかは言語仕様の問題だから、言語によってできるかできないかは決まっている。VBAではできない。
- 608 名前:デフォルトの名無しさん mailto:sage [2025/05/06(火) 08:15:59.98 ID:Gnnon1y6.net]
- 念のためだけど、
@ある関数(関数A)の引数の一つとして、他の関数(関数B)からの戻り値を渡すこと(大袈裟に言えば、関数呼び出し式のネスト?)と Aある関数(関数A)の引数の一つとして、他の関数(関数B)そのものを渡すこととは、違うことだよ。 C言語もVBAと同じく、関数そのものを他の関数の引数として渡したりすること(上記A)はできないが(もっとも、関数へのポインタを渡すことによって同等のことは実現できる)、上記@はできる。 さらにいえば、関数を引数として渡せたり、戻り値として返したりできる(関数が第1級の値である等と表現されることも多い)というのは、関数型プログラミングのおそらく必要条件にはなるのだと思うけど、だからといってこれらの性質があれば関数型言語というわけでもない。JavaScriptとかPythonとかは関数が第1級の値である言語だけと、いわゆる関数型言語とは言われていないと思うし。 VBAは、構文的にはJavaScript、Pytnon、C辺りと比べても関数型プログラミングからより遠い位置にいる言語だと思うので、あまり関数型にこだわる必要はないのでは? 実践的には、関数の決定性と副作用の有無に意識的になるだけでも、それなりのメリットはあると思う。
- 609 名前:デフォルトの名無しさん mailto:sage [2025/05/06(火) 09:32:02.27 ID:ePr8aXMn.net]
- あとこれは割とどうでもいいことだけど、関数の戻り値を他の関数の引数にすることを「関数のネスト」ということは、普通はあまりないのではないかなぁ(関数呼び出し式のネストという趣旨だとすれば意図は通じるけれども)。
普通は「関数のネスト」といわれれば、関数定義のネスト(関数内で定義された関数)の方を想起すると思う。
- 610 名前:デフォルトの名無しさん mailto:sage [2025/05/06(火) 09:47:26.27 ID:K1Pjz07i.net]
- pythonの凸レータは関数型らしいし関数のネストっぽく観える
- 611 名前:デフォルトの名無しさん [2025/05/07(水) 23:18:41.10 ID:5rQjCI4p.net]
- 関数型プログラミングは手続きという処理を見せないだけで、ロジックを隠すことでシンプルな見た目にするもの。
歴史上、常にこういう発想が何度も出てきているが、見た目をきれいにしたいだけで仕様の変更に耐えられない構文であることから、一度も主流になったことがない。
- 612 名前:デフォルトの名無しさん [2025/05/07(水) 23:48:45.09 ID:8NEt0qiL.net]
- >>600
全然違うと思いますけど? 結局大勢の人で手続き型プログラミングを作ったところでバカだらけ
- 613 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 01:43:07.29 ID:eAkjlYW3.net]
- VBA使ってる人間が他言語批判は草
- 614 名前:デフォルトの名無しさん [2025/05/08(木) 01:56:21.88 ID:hlDlUBWZ.net]
- VBAは俗人化するのでは?なんて質問を会議でこのご時世に言われるとは思わなんだ
優しく答えて大恥かかせてしまったけど少し悪かったかも
- 615 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 03:20:26.19 ID:Mm7IQCJP.net]
- 設計と管理がちゃんとしてれば関数型だろうがプログラムは作れる
だいたいは見積もりが甘いかドキュメントの整備がおろそかになってるだけ
- 616 名前:デフォルトの名無しさん [2025/05/08(木) 06:36:17.83 ID:rpgtocHg.net]
- VBAの何が属人化するの?
他の本格言語、例えばC++と何が違うの?
- 617 名前:デフォルトの名無しさん [2025/05/08(木) 07:04:16.42 ID:KsTAlec+.net]
- 単純に用途が限定的なのでわざわざ覚える人が少ないのよ
- 618 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 07:25:23.15 ID:jLg0E+bB.net]
- 関数型言語が主流になったことがないというのは事実だろうけど、関数型言語による宣言的なプログラミングスタイルに何かしら限界とか制約があるからなのか、それとも単に難しいからなのかはわからないな。関数型言語をある程度使いこなした経験がある人には分かるのかもしれないが。
- 619 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 07:39:13.07 ID:jLg0E+bB.net]
- 状態を数多く管理しなければならないようなプログラム(GUIとか?)はちょっと苦手と聞いたことごあるような気もするが、今はどうなんだろう。
- 620 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 08:15:37.11 ID:Im8CJRBo.net]
- VBAに限らず、属人化のリスクは「協業の仕事」共通やな
当たり前っちゃ、当たり前だが なんつうか、丁寧さというか共同作業のセンスというか・・・
- 621 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 09:23:26.41 ID:v93ye6LH.net]
- どだい、現場の最前線で使われる省力化目的の小アプリ(業務の簡素化含め)なんか
その寿命は3〜5年使えれば御の字 その間にもいろいろ業務形態も変化するし欲しい成果物もその都度変わったりする その変化に逐次対応できるものなら属人化してようとも目的は果たしてる その期間内に制作者が辞めたところでそれが何だってんだ 属人化させたのは上の責任 属人化がいけないなんてのは、上の方の言い訳に過ぎない 何故一人に任せた 10年も使い続けられるような制作物ならとっくに償却できてるし、その会社の立派な資産
- 622 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 10:03:03.06 ID:a9PTljx+.net]
- 話がループしてるな
- 623 名前:デフォルトの名無しさん [2025/05/08(木) 10:09:29.45 ID:D3KgMrbS.net]
- Exit vba
- 624 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 10:11:28.02 ID:RKaJBu95.net]
- 属人化の話題はVBAスレの華だからね。VBAがアイデンティティになっているタイプの人には譲れない話題なんでしょ。
今は、昔と比べて他の言語に触れてからVBAもやるという人が増えているのかな。VBAが最初に触れた言語ですという人の割合ってどれくらいなんだろう。
- 625 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 10:29:57.11 ID:a9PTljx+.net]
- モジュール分ける意味と基準が判らない
全部のプロシージャを一つのモジュールに詰め込むのは何が悪いの?
- 626 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 10:32:44.22 ID:G5GTs1je.net]
- Exile VIVA!
- 627 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 10:41:00.38 ID:719LxqHN.net]
- >>614
VBAレベルなら全部一つでいいよ 分割したくなるほど大きくなるようなら全体の業務フローを見直すべき
- 628 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 10:54:42.11 ID:RKaJBu95.net]
- 一般的な言語だと、機能分割や名前空間の分割のためにモジュールを分けるのでは。
モジュール分割の基準については、凝集度(高い方が良い)とか、結合度(低い方が良い)とかの概念でいろいろ議論されているみたい。 ただ、正直、VBAのモジュールっていろいろと特徴的なので(クラス定義はクラスモジュールで行う必要があるとか)、モジュール分割が必要な規模ならVBAではあんまり書きたくないかな。
- 629 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 12:10:22.44 ID:8ptxnmrn.net]
- 今は改善されてるのかも知れないが
名前ちょっと変えただけで行方不明になることは良くあった
- 630 名前:デフォルトの名無しさん [2025/05/08(木) 18:48:55.03 ID:rpgtocHg.net]
- 私はモジュールをコードの使用目的で分けているな
ブックマークみたいな感じ あと特定のアプリケーションを操作する時は、関係する変数、オブジェクトをひとまとめにしたりとか もっと何も気にせず使えるのなら、アドインにコードをまとめて共有したりもするんだろうな
- 631 名前:デフォルトの名無しさん mailto:sage [2025/05/08(木) 20:28:48.50 ID:Qp1M/T2r.net]
- 皆さんVBAでどのくらいコードを書きます?
1000行くらい?
- 632 名前:デフォルトの名無しさん [2025/05/08(木) 21:11:25.68 ID:kNzCbrU5.net]
- シートごとにモジュール分けてる...
- 633 名前:デフォルトの名無しさん [2025/05/08(木) 21:26:36.63 ID:ownVsw/K.net]
- >>620
必要に合わせてかなり書くよ 1000は小規模
- 634 名前:デフォルトの名無しさん [2025/05/08(木) 21:34:26.78 ID:hlDlUBWZ.net]
- そういうところがセンスないんだよな
僕は詳しい僕は長くかける で自己満足して社内の評価も年収も低いっしょ 火の玉ストレートでごめん
- 635 名前:デフォルトの名無しさん [2025/05/08(木) 21:49:23.37 ID:rpgtocHg.net]
- 可読性の高いコードは、処理を一つ一つ、行を書く事だと思います
あと、エクセルだとRangeだのCellsだの、英語や数字になるから、それぞれ変数で名前をつけて変数に代入して可読性を上げるとか
- 636 名前:デフォルトの名無しさん [2025/05/09(金) 07:31:44.14 ID:Y+GhIEwV.net]
- うちの職場だけ特殊なので
全体のシステムが大きいからコードも必然的に大きくなるだけ その中の個々の機能では1000行以下の機能もたくさんあるよ
- 637 名前:デフォルトの名無しさん mailto:sage [2025/05/09(金) 08:00:17.09 ID:zNQNct04.net]
- RPA!RPA!って少し前もてはやされてたけど、
速度的にも手順的にもVBAでよくねって案件多かったよね
- 638 名前:デフォルトの名無しさん [2025/05/09(金) 12:28:57.25 ID:piOnFv34.net]
- そうなか、自分のとこだけで精一杯で世間知らずになってるかも
- 639 名前:デフォルトの名無しさん [2025/05/09(金) 18:28:31.58 ID:HJ6RQEwc.net]
- VBAで済むならVBA
RPAの方が楽ならRPAってだけ RPAの方が楽なのにVBAで書くのはバカ
- 640 名前:デフォルトの名無しさん [2025/05/09(金) 18:30:10.14 ID:HJ6RQEwc.net]
- >>628
ちょっと一行目が合わんな(寝起き)
- 641 名前:デフォルトの名無しさん mailto:sage [2025/05/09(金) 18:41:10.42 ID:zNQNct04.net]
- 何が楽かって視点がないからRPAが廃れたってことをわかってなさそうなレス
- 642 名前:デフォルトの名無しさん [2025/05/09(金) 22:10:08.68 ID:p2pcYwx2.net]
- そもそも論として、使い方を学ぼうとしない人が大勢なのに使いこなせるわけがない
kintoneだろうがなんだろうが 銀の弾などない
- 643 名前:デフォルトの名無しさん [2025/05/09(金) 22:37:09.74 ID:p2pcYwx2.net]
- 文系管理職なのに業務アプリをシュシュっと作れちゃう俺
あるわけないだろバーカ 絶対スカラ値の原則を無視したり、列を繰り返したりしてるわボケ
- 644 名前:デフォルトの名無しさん [2025/05/10(土) 02:15:51.46 ID:2PI0HY+M.net]
- 豊川悦司「俺ー♪」
- 645 名前:デフォルトの名無しさん [2025/05/10(土) 13:05:37.78 ID:IWhliTad.net]
- 無から有は難しいよね、環境や周囲の協力がないと
- 646 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 13:13:10.16 ID:APagMvUq.net]
- 業務効率化程度の仕事なら、無から有は勝手にやりゃいいだけだから難しくない
周囲を巻き込んだとしてもどのみち最終的には言い出しっぺが責任持ってやれよという感じにしかならん 有から別の有の方が遥かに難しい
- 647 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 13:23:47.83 ID:TkZSyEZj.net]
- 誰かがVBAなんかで半端に作っちゃったものを、こんなもんSaaSでいいだろと移行させるみたいなのは難しい
必ず、決まった業務を回すしか能のない人達が重箱の隅をつついたり牛歩戦術をしてみたりと必死に抵抗してくる
- 648 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 13:31:42.36 ID:HZyfRGTg.net]
- 金がかかるとなるとそりゃそうでしょ。
- 649 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 13:49:08.55 ID:tG+fugNq.net]
- いや、経験上、金を問題にするのはある程度上の立場の人間なので、本質的でないしょーもない業務影響はあまり問題にしない。
〇業務を〇時間削減できるから人件費換算で導入コストと利用料を上回る効果が見込めますと説明できればよい。 くだらないことで難癖を付けてくるのは現場の人間。
- 650 名前:デフォルトの名無しさん [2025/05/10(土) 14:05:58.61 ID:3Mk2sCKg.net]
- >>630
何が楽かさえわかってないのかよw
- 651 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 14:09:45.85 ID:644AQTJb.net]
- 無から有ってのは、何であれ産みの苦しみって奴で、社会でも人生でもあらゆる場面で起こり得る
有から別の有ってのは例えが判らんが、αというシステム化された処理が有って、その結果を元に 別のβを作ろうとしているのか、或いはαの改善品αUを作ろうとしているのか 前者なら無から有と一緒だし、後者なら元と成ってる最初のαを精査すればいいだけ こんなもんSaaSでいいだろと思い込んでしまった原因を自省してみて、うかうか宣伝文句に釣られてただけと 理解出来たら儲けもの じぶんで実際にSaaSに移行してみて一年位稼働させてそれでも一切問題が発生しない 事を確認してから提案するぐらいの努力は発言する前に済ませておくべき やってみましたできませんでしたは、殊営利を目的とする企業では落第の烙印を押されるだけ プロトタイプ・試作品も無いまま実務で運用することほど無謀な試みは無い 旧日本軍大本営方式でしか無い
- 652 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 14:31:05.56 ID:HZyfRGTg.net]
- >>638
利用者が習得するまでの学習コスト考えてる? 習得するのに時間がかかるとか操作が複雑になり過ぎたら反発すると思うけど。 今よりこれだけ簡単になりますって話なら反発も少ないのでは?
- 653 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 14:39:47.45 ID:tG+fugNq.net]
- >>641
だからそれを含めて難しいって話でしょ
- 654 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 16:34:23.69 ID:ngauQQ8E.net]
- 話の逸れ方が大きくなってきたな
- 655 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 16:38:29.08 ID:iGSB8dlv.net]
- 前から先人達がこのスレで、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") _ ) と。 で、何度かやり取りした結果、うまく出来まスた。
- 656 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 18:59:33.45 ID:Pq21kD+5.net]
- しねごみかす
- 657 名前:デフォルトの名無しさん [2025/05/10(土) 19:48:45.71 ID:pekHwIHV.net]
- >>644
どれくらい処理の重い作業か、帰りの組み方をしているのか私には分かりませんが、 テーブルデータの整形が終わった後、一区切りついた後、テーブル関数やリスト関数などで繰り返し作業保護(一般的なeach?)
- 658 名前:デフォルトの名無しさん [2025/05/10(土) 19:52:02.31 ID:pekHwIHV.net]
- >>646
を行う前に 必ず List.Buffer Table.buffer を行うと(VBAの配列並にとは言いませんが)処理が劇的に早くなると思います。 私は2000行に6000行のTaxt.Containsをして結果をList.SelectやAnyTrueなどをしていますが、劇的に早くなりました。
- 659 名前:デフォルトの名無しさん [2025/05/10(土) 20:41:13.86 ID:pekHwIHV.net]
- VBAでセルの中の改行のある大量の文字列の中から目的の
- 660 名前:報を抽出するという試みをやっていたのですが、最近になってやっと改行で区切って、1行にバラすという事に気がつきました。
これで無関係な文字列の行はフィルターできるし、視認性が劇的に改善したしで本当に楽になった。 データは必ず一行づつという当たり前を改めて知らされた。 [] - [ここ壊れてます]
- 661 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 21:53:08.57 ID:iGSB8dlv.net]
- 今回Arrayを使って、各クエリー/ピボットテーブル更新中のCPU使用率を調べようとしたのは、
・複数の前処理ブックの共通テーブルを参照して、項目ごと時間軸串刺し合計や最大/最小値とその時間なんかを求めるブック ・仕上がり52,560行 ・これでもまだ中間集計ブック ・将来的には104万行を超えるので、ベース集計クエリーにはデータ モデルを使用 ・今の第8世代Core i7と32GBメモリーで、このブックの更新には20分超 ・当初は、List.Buffer、Table.bufferをクエリーで使って高速化を試したが、これだけ行が多かったりクエリー依存が多いと、シーケンシャルにしてBufferしたつもりが前クエリーの再計算が入ってExcelが固まったので断念。 ・逆に、104万行以内に収まる途中のクエリーは、ワークシートに書き出してこれを参照するようにしたら、最後まで計算できるようになった。
- 662 名前:デフォルトの名無しさん [2025/05/10(土) 23:00:42.57 ID:pekHwIHV.net]
- >>649
クエリを分割したらいいって事でしょうか 中間テーブル?の様な
- 663 名前:デフォルトの名無しさん [2025/05/10(土) 23:08:41.01 ID:pekHwIHV.net]
- >>649
明らかに不要なデータを元ファイルから削除するとか、グループバイがしたいのならワークシートで
- 664 名前:デフォルトの名無しさん [2025/05/10(土) 23:10:16.50 ID:pekHwIHV.net]
- 行の並び変えをするとか
不要な列は削除しておくとか 集計はパワーピボットを使用するとか、テーブルのjoinではなく、リレーションシップにするとか できそうではないですか?
- 665 名前:デフォルトの名無しさん mailto:sage [2025/05/10(土) 23:17:35.27 ID:iGSB8dlv.net]
- >>650
別スレで
- 666 名前:デフォルトの名無しさん mailto:sage [2025/05/11(日) 02:32:23.22 ID:orNzllBw.net]
- 属人化言い出したらExcelシートそのものも属人化だろな
- 667 名前:デフォルトの名無しさん mailto:sage [2025/05/11(日) 06:38:44.59 ID:dESx0WKG.net]
- >>654
これは正にだな 人によって非表示行(列)や非表示シート、 定義された名前を非表示にするやつすらいる
- 668 名前:デフォルトの名無しさん mailto:sage [2025/05/11(日) 09:33:21.32 ID:xj1UIMtq.net]
- 他人のVBAより数式のほうが見たくなくなる
- 669 名前:デフォルトの名無しさん mailto:sage [2025/05/11(日) 12:52:43.82 ID:orNzllBw.net]
- 世の中、属人化シートだらけ
- 670 名前:デフォルトの名無しさん mailto:sage [2025/05/11(日) 13:42:45.69 ID:oI5baM/t.net]
- 逆に、「他人に見てもらう」ことを意識してExcel作っていたら、
独りよがりでない、少しはわかりやすいもの作るのかと。 「お天道様が見ている」 「第二の視座」 とか言うヤツ
- 671 名前:デフォルトの名無しさん mailto:sage [2025/05/11(日) 13:57:41.75 ID:UTf8BgbA.net]
- 大さんという上司に観てもらってた良い思い出
- 672 名前:デフォルトの名無しさん [2025/05/12(月) 19:52:24.55 ID:/MqwmjFI.net]
- Excel大好き人間としてはHaskellを推したい
- 673 名前:デフォルトの名無しさん [2025/05/13(火) 20:06:46.42 ID:IQbEImBo.net]
- 正規表現で漢字全てにマッチさせるにはユニコードの最後の漢字までを範囲にしたらいいのだすか?
- 674 名前:デフォルトの名無しさん mailto:sage [2025/05/13(火) 20:43:44.18 ID:UxpIpbA1.net]
- [\u4E00-\u9FFF]
- 675 名前:デフォルトの名無しさん [2025/05/13(火) 22:37:17.01 ID:IQbEImBo.net]
- urlに恐らく改行が含まれているのですが、改行もマッチさせるとなるともはやなんでもマッチしてしまいますか?
- 676 名前:デフォルトの名無しさん [2025/05/14(水) 00:23:46.12 ID:TPeqytUP.net]
- 漢字で始まり、ひらがなで終わる
ひらがなのみ カタカナのみ マッチした結果を全てディクショナリーに登録して、アイテムは1+1を繰り返してカウントする これだけでも頻度分析ができるんだね
- 677 名前:デフォルトの名無しさん mailto:sage [2025/05/14(水) 00:57:58.82 ID:WcLab/oc.net]
- >>664
|

|