25/05/06 07:24:57.73 Gnnon1y6.net
引数として関数そのものを渡したり、戻り値として関数そのものを返したりできるかは言語仕様の問題だから、言語によってできるかできないかは決まっている。VBAではできない。
608:デフォルトの名無しさん
25/05/06 08:15:59.98 Gnnon1y6.net
念のためだけど、
①ある関数(関数A)の引数の一つとして、他の関数(関数B)からの戻り値を渡すこと(大袈裟に言えば、関数呼び出し式のネスト?)と
②ある関数(関数A)の引数の一つとして、他の関数(関数B)そのものを渡すこととは、違うことだよ。
C言語もVBAと同じく、関数そのものを他の関数の引数として渡したりすること(上記②)はできないが(もっとも、関数へのポインタを渡すことによって同等のことは実現できる)、上記①はできる。
さらにいえば、関数を引数として渡せたり、戻り値として返したりできる(関数が第1級の値である等と表現されることも多い)というのは、関数型プログラミングのおそらく必要条件にはなるのだと思うけど、だからといってこれらの性質があれば関数型言語というわけでもない。JavaScriptとかPythonとかは関数が第1級の値である言語だけと、いわゆる関数型言語とは言われていないと思うし。
VBAは、構文的にはJavaScript、Pytnon、C辺りと比べても関数型プログラミングからより遠い位置にいる言語だと思うので、あまり関数型にこだわる必要はないのでは? 実践的には、関数の決定性と副作用の有無に意識的になるだけでも、それなりのメリットはあると思う。
609:デフォルトの名無しさん
25/05/06 09:32:02.27 ePr8aXMn.net
あとこれは割とどうでもいいことだけど、関数の戻り値を他の関数の引数にすることを「関数のネスト」ということは、普通はあまりないのではないかなぁ(関数呼び出し式のネストという趣旨だとすれば意図は通じるけれども)。
普通は「関数のネスト」といわれれば、関数定義のネスト(関数内で定義された関数)の方を想起すると思う。
610:デフォルトの名無しさん
25/05/06 09:47:26.27 K1Pjz07i.net
pythonの凸レータは関数型らしいし関数のネストっぽく観える
611:デフォルトの名無しさん
25/05/07 23:18:41.10 5rQjCI4p.net
関数型プログラミングは手続きという処理を見せないだけで、ロジックを隠すことでシンプルな見た目にするもの。
歴史上、常にこういう発想が何度も出てきているが、見た目をきれいにしたいだけで仕様の変更に耐えられない構文であることから、一度も主流になったことがない。
612:デフォルトの名無しさん
25/05/07 23:48:45.09 8NEt0qiL.net
>>600
全然違うと思いますけど?
結局大勢の人で手続き型プログラミングを作ったところでバカだらけ
613:デフォルトの名無しさん
25/05/08 01:43:07.29 eAkjlYW3.net
VBA使ってる人間が他言語批判は草
614:デフォルトの名無しさん
25/05/08 01:56:21.88 hlDlUBWZ.net
VBAは俗人化するのでは?なんて質問を会議でこのご時世に言われるとは思わなんだ
優しく答えて大恥かかせてしまったけど少し悪かったかも
615:デフォルトの名無しさん
25/05/08 03:20:26.19 Mm7IQCJP.net
設計と管理がちゃんとしてれば関数型だろうがプログラムは作れる
だいたいは見積もりが甘いかドキュメントの整備がおろそかになってるだけ
616:デフォルトの名無しさん
25/05/08 06:36:17.83 rpgtocHg.net
VBAの何が属人化するの?
他の本格言語、例えばC++と何が違うの?
617:デフォルトの名無しさん
25/05/08 07:04:16.42 KsTAlec+.net
単純に用途が限定的なのでわざわざ覚える人が少ないのよ
618:デフォルトの名無しさん
25/05/08 07:25:23.15 jLg0E+bB.net
関数型言語が主流になったことがないというのは事実だろうけど、関数型言語による宣言的なプログラミングスタイルに何かしら限界とか制約があるからなのか、それとも単に難しいからなのかはわからないな。関数型言語をある程度使いこなした経験がある人には分かるのかもしれないが。
619:デフォルトの名無しさん
25/05/08 07:39:13.07 jLg0E+bB.net
状態を数多く管理しなければならないようなプログラム(GUIとか?)はちょっと苦手と聞いたことごあるような気もするが、今はどうなんだろう。
620:デフォルトの名無しさん
25/05/08 08:15:37.11 Im8CJRBo.net
VBAに限らず、属人化のリスクは「協業の仕事」共通やな
当たり前っちゃ、当たり前だが
なんつうか、丁寧さというか共同作業のセンスというか・・・
621:デフォルトの名無しさん
25/05/08 09:23:26.41 v93ye6LH.net
どだい、現場の最前線で使われる省力化目的の小アプリ(業務の簡素化含め)なんか
その寿命は3~5年使えれば御の字
その間にもいろいろ業務形態も変化するし欲しい成果物もその都度変わったりする
その変化に逐次対応できるものなら属人化してようとも目的は果たしてる
その期間内に制作者が辞めたところでそれが何だってんだ 属人化させたのは上の責任
属人化がいけないなんてのは、上の方の言い訳に過ぎない 何故一人に任せた
10年も使い続けられるような制作物ならとっくに償却できてるし、その会社の立派な資産
622:デフォルトの名無しさん
25/05/08 10:03:03.06 a9PTljx+.net
話がループしてるな
623:デフォルトの名無しさん
25/05/08 10:09:29.45 D3KgMrbS.net
Exit vba
624:デフォルトの名無しさん
25/05/08 10:11:28.02 RKaJBu95.net
属人化の話題はVBAスレの華だからね。VBAがアイデンティティになっているタイプの人には譲れない話題なんでしょ。
今は、昔と比べて他の言語に触れてからVBAもやるという人が増えているのかな。VBAが最初に触れた言語ですという人の割合ってどれくらいなんだろう。
625:デフォルトの名無しさん
25/05/08 10:29:57.11 a9PTljx+.net
モジュール分ける意味と基準が判らない
全部のプロシージャを一つのモジュールに詰め込むのは何が悪いの?
626:デフォルトの名無しさん
25/05/08 10:32:44.22 G5GTs1je.net
Exile VIVA!
627:デフォルトの名無しさん
25/05/08 10:41:00.38 719LxqHN.net
>>614
VBAレベルなら全部一つでいいよ
分割したくなるほど大きくなるようなら全体の業務フローを見直すべき
628:デフォルトの名無しさん
25/05/08 10:54:42.11 RKaJBu95.net
一般的な言語だと、機能分割や名前空間の分割のためにモジュールを分けるのでは。
モジュール分割の基準については、凝集度(高い方が良い)とか、結合度(低い方が良い)とかの概念でいろいろ議論されているみたい。
ただ、正直、VBAのモジュールっていろいろと特徴的なので(クラス定義はクラスモジュールで行う必要があるとか)、モジュール分割が必要な規模ならVBAではあんまり書きたくないかな。
629:デフォルトの名無しさん
25/05/08 12:10:22.44 8ptxnmrn.net
今は改善されてるのかも知れないが
名前ちょっと変えただけで行方不明になることは良くあった
630:デフォルトの名無しさん
25/05/08 18:48:55.03 rpgtocHg.net
私はモジュールをコードの使用目的で分けているな
ブックマークみたいな感じ
あと特定のアプリケーションを操作する時は、関係する変数、オブジェクトをひとまとめにしたりとか
もっと何も気にせず使えるのなら、アドインにコードをまとめて共有したりもするんだろうな
631:デフォルトの名無しさん
25/05/08 20:28:48.50 Qp1M/T2r.net
皆さんVBAでどのくらいコードを書きます?
1000行くらい?
632:デフォルトの名無しさん
25/05/08 21:11:25.68 kNzCbrU5.net
シートごとにモジュール分けてる...
633:デフォルトの名無しさん
25/05/08 21:26:36.63 ownVsw/K.net
>>620
必要に合わせてかなり書くよ
1000は小規模
634:デフォルトの名無しさん
25/05/08 21:34:26.78 hlDlUBWZ.net
そういうところがセンスないんだよな
僕は詳しい僕は長くかける
で自己満足して社内の評価も年収も低いっしょ
火の玉ストレートでごめん
635:デフォルトの名無しさん
25/05/08 21:49:23.37 rpgtocHg.net
可読性の高いコードは、処理を一つ一つ、行を書く事だと思います
あと、エクセルだとRangeだのCellsだの、英語や数字になるから、それぞれ変数で名前をつけて変数に代入して可読性を上げるとか
636:デフォルトの名無しさん
25/05/09 07:31:44.14 Y+GhIEwV.net
うちの職場だけ特殊なので
全体のシステムが大きいからコードも必然的に大きくなるだけ
その中の個々の機能では1000行以下の機能もたくさんあるよ
637:デフォルトの名無しさん
25/05/09 08:00:17.09 zNQNct04.net
RPA!RPA!って少し前もてはやされてたけど、
速度的にも手順的にもVBAでよくねって案件多かったよね
638:デフォルトの名無しさん
25/05/09 12:28:57.25 piOnFv34.net
そうなか、自分のとこだけで精一杯で世間知らずになってるかも
639:デフォルトの名無しさん
25/05/09 18:28:31.58 HJ6RQEwc.net
VBAで済むならVBA
RPAの方が楽ならRPAってだけ
RPAの方が楽なのにVBAで書くのはバカ
640:デフォルトの名無しさん
25/05/09 18:30:10.14 HJ6RQEwc.net
>>628
ちょっと一行目が合わんな(寝起き)
641:デフォルトの名無しさん
25/05/09 18:41:10.42 zNQNct04.net
何が楽かって視点がないからRPAが廃れたってことをわかってなさそうなレス
642:デフォルトの名無しさん
25/05/09 22:10:08.68 p2pcYwx2.net
そもそも論として、使い方を学ぼうとしない人が大勢なのに使いこなせるわけがない
kintoneだろうがなんだろうが
銀の弾などない
643:デフォルトの名無しさん
25/05/09 22:37:09.74 p2pcYwx2.net
文系管理職なのに業務アプリをシュシュっと作れちゃう俺
あるわけないだろバーカ
絶対スカラ値の原則を無視したり、列を繰り返したりしてるわボケ
644:デフォルトの名無しさん
25/05/10 02:15:51.46 2PI0HY+M.net
豊川悦司「俺ー♪」
645:デフォルトの名無しさん
25/05/10 13:05:37.78 IWhliTad.net
無から有は難しいよね、環境や周囲の協力がないと
646:デフォルトの名無しさん
25/05/10 13:13:10.16 APagMvUq.net
業務効率化程度の仕事なら、無から有は勝手にやりゃいいだけだから難しくない
周囲を巻き込んだとしてもどのみち最終的には言い出しっぺが責任持ってやれよという感じにしかならん
有から別の有の方が遥かに難しい
647:デフォルトの名無しさん
25/05/10 13:23:47.83 TkZSyEZj.net
誰かがVBAなんかで半端に作っちゃったものを、こんなもんSaaSでいいだろと移行させるみたいなのは難しい
必ず、決まった業務を回すしか能のない人達が重箱の隅をつついたり牛歩戦術をしてみたりと必死に抵抗してくる
648:デフォルトの名無しさん
25/05/10 13:31:42.36 HZyfRGTg.net
金がかかるとなるとそりゃそうでしょ。
649:デフォルトの名無しさん
25/05/10 13:49:08.55 tG+fugNq.net
いや、経験上、金を問題にするのはある程度上の立場の人間なので、本質的でないしょーもない業務影響はあまり問題にしない。
〇業務を〇時間削減できるから人件費換算で導入コストと利用料を上回る効果が見込めますと説明できればよい。
くだらないことで難癖を付けてくるのは現場の人間。
650:デフォルトの名無しさん
25/05/10 14:05:58.61 3Mk2sCKg.net
>>630
何が楽かさえわかってないのかよw
651:デフォルトの名無しさん
25/05/10 14:09:45.85 644AQTJb.net
無から有ってのは、何であれ産みの苦しみって奴で、社会でも人生でもあらゆる場面で起こり得る
有から別の有ってのは例えが判らんが、αというシステム化された処理が有って、その結果を元に
別のβを作ろうとしているのか、或いはαの改善品αⅡを作ろうとしているのか
前者なら無から有と一緒だし、後者なら元と成ってる最初のαを精査すればいいだけ
こんなもんSaaSでいいだろと思い込んでしまった原因を自省してみて、うかうか宣伝文句に釣られてただけと
理解出来たら儲けもの じぶんで実際にSaaSに移行してみて一年位稼働させてそれでも一切問題が発生しない
事を確認してから提案するぐらいの努力は発言する前に済ませておくべき
やってみましたできませんでしたは、殊営利を目的とする企業では落第の烙印を押されるだけ
プロトタイプ・試作品も無いまま実務で運用することほど無謀な試みは無い 旧日本軍大本営方式でしか無い
652:デフォルトの名無しさん
25/05/10 14:31:05.56 HZyfRGTg.net
>>638
利用者が習得するまでの学習コスト考えてる?
習得するのに時間がかかるとか操作が複雑になり過ぎたら反発すると思うけど。
今よりこれだけ簡単になりますって話なら反発も少ないのでは?
653:デフォルトの名無しさん
25/05/10 14:39:47.45 tG+fugNq.net
>>641
だからそれを含めて難しいって話でしょ
654:デフォルトの名無しさん
25/05/10 16:34:23.69 ngauQQ8E.net
話の逸れ方が大きくなってきたな
655:デフォルトの名無しさん
25/05/10 16:38:29.08 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:デフォルトの名無しさん
25/05/10 18:59:33.45 Pq21kD+5.net
しねごみかす
657:デフォルトの名無しさん
25/05/10 19:48:45.71 pekHwIHV.net
>>644
どれくらい処理の重い作業か、帰りの組み方をしているのか私には分かりませんが、
テーブルデータの整形が終わった後、一区切りついた後、テーブル関数やリスト関数などで繰り返し作業保護(一般的なeach?)
658:デフォルトの名無しさん
25/05/10 19:52:02.31 pekHwIHV.net
>>646
を行う前に
必ず
List.Buffer Table.buffer を行うと(VBAの配列並にとは言いませんが)処理が劇的に早くなると思います。
私は2000行に6000行のTaxt.Containsをして結果をList.SelectやAnyTrueなどをしていますが、劇的に早くなりました。
659:デフォルトの名無しさん
25/05/10 20:41:13.86 pekHwIHV.net
VBAでセルの中の改行のある大量の文字列の中から目的の�
660:﨣鰹oするという試みをやっていたのですが、最近になってやっと改行で区切って、1行にバラすという事に気がつきました。 これで無関係な文字列の行はフィルターできるし、視認性が劇的に改善したしで本当に楽になった。 データは必ず一行づつという当たり前を改めて知らされた。
661:デフォルトの名無しさん
25/05/10 21:53:08.57 iGSB8dlv.net
今回Arrayを使って、各クエリー/ピボットテーブル更新中のCPU使用率を調べようとしたのは、
・複数の前処理ブックの共通テーブルを参照して、項目ごと時間軸串刺し合計や最大/最小値とその時間なんかを求めるブック
・仕上がり52,560行
・これでもまだ中間集計ブック
・将来的には104万行を超えるので、ベース集計クエリーにはデータ モデルを使用
・今の第8世代Core i7と32GBメモリーで、このブックの更新には20分超
・当初は、List.Buffer、Table.bufferをクエリーで使って高速化を試したが、これだけ行が多かったりクエリー依存が多いと、シーケンシャルにしてBufferしたつもりが前クエリーの再計算が入ってExcelが固まったので断念。
・逆に、104万行以内に収まる途中のクエリーは、ワークシートに書き出してこれを参照するようにしたら、最後まで計算できるようになった。
662:デフォルトの名無しさん
25/05/10 23:00:42.57 pekHwIHV.net
>>649
クエリを分割したらいいって事でしょうか
中間テーブル?の様な
663:デフォルトの名無しさん
25/05/10 23:08:41.01 pekHwIHV.net
>>649
明らかに不要なデータを元ファイルから削除するとか、グループバイがしたいのならワークシートで
664:デフォルトの名無しさん
25/05/10 23:10:16.50 pekHwIHV.net
行の並び変えをするとか
不要な列は削除しておくとか
集計はパワーピボットを使用するとか、テーブルのjoinではなく、リレーションシップにするとか
できそうではないですか?
665:デフォルトの名無しさん
25/05/10 23:17:35.27 iGSB8dlv.net
>>650
別スレで
666:デフォルトの名無しさん
25/05/11 02:32:23.22 orNzllBw.net
属人化言い出したらExcelシートそのものも属人化だろな
667:デフォルトの名無しさん
25/05/11 06:38:44.59 dESx0WKG.net
>>654
これは正にだな
人によって非表示行(列)や非表示シート、
定義された名前を非表示にするやつすらいる
668:デフォルトの名無しさん
25/05/11 09:33:21.32 xj1UIMtq.net
他人のVBAより数式のほうが見たくなくなる
669:デフォルトの名無しさん
25/05/11 12:52:43.82 orNzllBw.net
世の中、属人化シートだらけ
670:デフォルトの名無しさん
25/05/11 13:42:45.69 oI5baM/t.net
逆に、「他人に見てもらう」ことを意識してExcel作っていたら、
独りよがりでない、少しはわかりやすいもの作るのかと。
「お天道様が見ている」
「第二の視座」
とか言うヤツ
671:デフォルトの名無しさん
25/05/11 13:57:41.75 UTf8BgbA.net
大さんという上司に観てもらってた良い思い出
672:デフォルトの名無しさん
25/05/12 19:52:24.55 /MqwmjFI.net
Excel大好き人間としてはHaskellを推したい
673:デフォルトの名無しさん
25/05/13 20:06:46.42 IQbEImBo.net
正規表現で漢字全てにマッチさせるにはユニコードの最後の漢字までを範囲にしたらいいのだすか?
674:デフォルトの名無しさん
25/05/13 20:43:44.18 UxpIpbA1.net
[\u4E00-\u9FFF]
675:デフォルトの名無しさん
25/05/13 22:37:17.01 IQbEImBo.net
urlに恐らく改行が含まれているのですが、改行もマッチさせるとなるともはやなんでもマッチしてしまいますか?
676:デフォルトの名無しさん
25/05/14 00:23:46.12 TPeqytUP.net
漢字で始まり、ひらがなで終わる
ひらがなのみ
カタカナのみ
マッチした結果を全てディクショナリーに登録して、アイテムは1+1を繰り返してカウントする
これだけでも頻度分析ができるんだね
677:デフォルトの名無しさん
25/05/14 00:57:58.82 WcLab/oc.net
>>664
678: それ単語の区切りはどうするの?
679:デフォルトの名無しさん
25/05/14 01:04:11.54 KAgWD1+F.net
仕事の管理でVBA使ってポツポツやってたけど違う業務管理が追加になってもうすっかりコードなんか忘れてるので面倒だなと思ってたけどChatGPTちゃんに聞いたら楽に組めた
Aのシートをコピーしてシート名はCにしてとかでもすぐに教えてくれるし
こんなのでもすっかり忘れてるから助かった
680:デフォルトの名無しさん
25/05/14 01:12:17.68 TPeqytUP.net
>>665
漢字とひらがな
ひらがなのみ
カタカナだけ
意味のある言葉になっているよ
むしろ本当の本当に単語にまで分解しても意味がわからないよ
情報を細分化してもしょうがない
681:デフォルトの名無しさん
25/05/14 01:49:41.56 TPeqytUP.net
例えば
お 世話 に なり ます(あるいは なります)
まで分解しても意味を持たないでしょう?
お 世話になります
で十分でしょう
東京タワー みたいに
漢字カタカナパターンもある事に気がついた
682:デフォルトの名無しさん
25/05/14 09:24:40.17 mIHvW3MM.net
それで分析できるのはその定義における節の頻度であり、一般的な単語とは異なる
それがお前の目的に合っているのであれば好きにしたらいい
ついでに言えばそんなもんMeCabに突っ込めばいいだけだからお前独自の方式なんて誰も必要とはしない
683:デフォルトの名無しさん
25/05/14 09:51:03.61 mHOx/gQ0.net
おー、MeCabってのがあるのね。めかぶって読めるなと書こうとしたら、本当にめかぶから名前を取っているのね。
684:デフォルトの名無しさん
25/05/15 22:57:08.75 vsR8tMHm.net
めかぶというやつの公式ページ?の
一行一分
は誤字ですか?
それだったらテキストマイニングを極めていてもやっぱりこの程度なんだなと
あと何を言っているのかを判断するには前後の脈略が必要だし、日本語はひらがなに特に意味がある訳でもないから
そこまで単語に固執する必要もない気がする
685:デフォルトの名無しさん
25/05/16 09:43:09.58 IgvVjYfn.net
make a boo
686:デフォルトの名無しさん
25/05/16 10:48:47.56 em0azm75.net
manko
687:デフォルトの名無しさん
25/05/16 13:02:22.31 TOZOy2SA.net
印刷範囲外のセルが
なぜか印刷範囲中央付近に
プレビューされ、実際にも印刷されます
改ページプレビューも利用して
グレーゾーンに押しやっている
テキストボックスなんですが
元の配置よりさらに外側に動かすと
印刷範囲から消えはします
そのため支障をきたしている
訳ではないのですが
なぜこうなってしまうのでしょうか?
688:デフォルトの名無しさん
25/05/16 13:04:09.96 TOZOy2SA.net
↑スレ違いでした、すみません
取り消します
689:デフォルトの名無しさん
25/05/17 09:02:45.85 ztNWa+hU.net
ラベルのAcceleratorって何に使うの?
690:デフォルトの名無しさん
25/05/17 10:17:32.20 BnclY/n2.net
マジレスすると
ボタンのタイトルを E&xcel とかにすると
Ctrl+x でボタンを押せるのが Accellerator じゃないかな
691:デフォルトの名無しさん
25/05/17 10:20:42.98 ztNWa+hU.net
でもラベル押せないじゃん
692:デフォルトの名無しさん
25/05/17 12:01:06.66 vJvypOU0.net
ボタンの上とかにラベルを貼り付けることで
マウスクリックした時、キーボード操作した時で同じ操作をさせられる
Accessなら、ラベル単体でもつついてあれこれできるけど、Excelではそんな機能は無い
SpecialEffectと併用して見た目押したようにできるかも知らんが
そんな無駄を付け加えてまでやりたいことなのかどうか
693:デフォルトの名無しさん
25/05/17 12:11:18.06 ztNWa+hU.net
回答?
独り言?
結局、何に使うの?
694:デフォルトの名無しさん
25/05/17 12:32:35.29 FyrcyVVg.net
一応、フォーカス移動には使えるんじゃない? それがどの程度嬉しいことかは微妙なところかもしれないが。
695:デフォルトの名無しさん
25/05/17 12:42:35.66 ztNWa+hU.net
テキストボックスの前に置いといて、ラベルにフォーカスさせると
テキストボックスにフォーカスされる
テキストボックスが複数あっても一発で選べる
なるほど、こうやって使うのか
696:デフォルトの名無しさん
25/05/17 12:48:29.09 AUJKaPS/.net
それは可能かもしれないけど、テキストボックスにフォーカスを移動するためにアクセラレータを使うのはどうかなぁ
697:デフォルトの名無しさん
25/05/17 12:49:47.54 AUJKaPS/.net
>>661が指摘してましたね
スレ汚しでごめんなさい
698:デフォルトの名無しさん
25/05/17 12:58:22.21 ztNWa+hU.net
よく出来たアプリはみんなできるようになってるよ
S)検索
みたいな感じ
マウスしか使わない人はそんなこと考えないし、
タブオーダーも無茶苦茶で、どこに飛ぶか判らない
699:デフォルトの名無しさん
25/05/17 14:53:18.10 Mou0F5/k.net
フォントサイズをセルの横幅にジャストサイズで合わせたいのですがどの様にすればいいでしょうか?
縮小して全体を表示するは試していますが、念のために列幅と文字数を割って1文字あたりの大きさをまとめるとか、そう言った確実な方法を探しています。
700:デフォルトの名無しさん
25/05/17 18:12:34.03 VJRyFCkb.net
そんな方法はない
701:デフォルトの名無しさん
25/05/17 18:32:10.79 Vu4+Tz9e.net
仕方が無い
702:デフォルトの名無しさん
25/05/17 18:34:04.52 Mou0F5/k.net
やっぱりセルに実際の文字列を入れて
治ったセルの高さ/行数 = 1行あたりの行の高さ
で割り出すしか無さそうですね
703:デフォルトの名無しさん
25/05/17 18:37:59.26 rdyb/DPe.net
画像で保存してセルに合わせて画像を拡大縮小したらどうかな
704:デフォルトの名無しさん
25/05/17 18:49:20.89 B7xQsXDd.net
一つのセルにそんなに長い文字列を入れてしまうデザインを見直したほうが早いかも
705:デフォルトの名無しさん
25/05/17 18:50:45.81 Mou0F5/k.net
やっとdictionaryのネスト、親ディクショナリー、子ディクショナリーが理解できました。
よくdictionaryのitemに配列を入れたら値が複数登録できると言うコードが詳細されていて、私も四苦八苦しながら覚えました。
だけどこれって本当は親ディクショナリー、子ディクショナリーが正しい答えですよね
ディクショナリーだとそれぞれの項目が文字列で指定でますが、配列だとインデックスでしか登録できない
706:デフォルトの名無しさん
25/05/17 19:22:23.61 hPL9irHC.net
>>686
うちは24や48から2ポイントずつ減らしならが総当りしてる
707:デフォルトの名無しさん
25/05/17 20:04:52.16 Mou0F5/k.net
>>691
1行なら 縮小したら全体を表示する が使えるから、、、?
そして多めに行数を作成して、行数が少ないのなら削除するか、非表示にすればいいと?
なるほど
708:デフォルトの名無しさん
25/05/17 20:06:06.97 Mou0F5/k.net
>>693
私も12の倍数で作成しています。
709:デフォルトの名無しさん
25/05/17 20:19:45.31 Mou0F5/k.net
印刷周りの仕様、挙動をよく理解していなくて申し訳ないですが、
改ページで1ページの範囲を設定していれば、どれだけ行が大きいか、行数が多いかしても、
必ず1ページになる様にExcel側が自動調整されるのでしょうか?
優先度は改ページ、全ての行、列を〜ページに合わせる、zoomの順番でしょうか?
710:デフォルトの名無しさん
25/05/17 21:01:27.82 HReuuPkT.net
>>696
それはVBAの問題なのか?
ここは何のスレかわかってるか?
711:デフォルトの名無しさん
25/05/17 21:14:59.94 Mou0F5/k.net
>>697
VBAで書類の作成、印刷の自動化を申しつけられて、全自動化時代は余裕なのですが、印刷周りの設定はよく知らなくて、しかも実際に印刷作業をする人は別の場所の人だから、1ミリでも小さければ気に食わないんでクレームを入れてくるんです。
712:デフォルトの名無しさん
25/05/17 21:18:54.18 Mou0F5/k.net
.PageBreak
.Zoom
.FitToPagesWide
.FitToPagesTall
font-size
セルの縦横
これら全てVBAではないのですか?
713:デフォルトの名無しさん
25/05/17 21:29:04.01 HReuuPkT.net
>>699
VBA以前にそもそもExcelの印刷自体を知らない人なんだと�
714:「うことはよくわかった 1ミリも狂わないように印刷するにはWindows APIを呼び出して使うかExcelで印刷するな
715:デフォルトの名無しさん
25/05/17 21:36:27.58 Mou0F5/k.net
>>700
どのAPIがよろしいのでしょうか?
PDFには常に出力しています
716:デフォルトの名無しさん
25/05/17 21:39:10.06 HReuuPkT.net
>>701
Canvas API
教えたからそろそろ消えろ
717:デフォルトの名無しさん
25/05/17 21:56:35.49 Mou0F5/k.net
>>702
それはWindows APIなのでしょうか?
718:デフォルトの名無しさん
25/05/17 22:02:21.39 HReuuPkT.net
>>703
いい加減にしろ
後は自分でPostScriptを書いてPDFファイルを作れ
719:デフォルトの名無しさん
25/05/17 22:20:55.25 Mou0F5/k.net
>>704
Canvas APIはWindows APIなのでしょうか?
私はVBA以外はほぼ無知なのですみません
720:デフォルトの名無しさん
25/05/17 22:21:25.66 c0BqlY74.net
ぐぐれ
721:デフォルトの名無しさん
25/05/17 22:28:10.07 Mou0F5/k.net
本当にAIのコミュ力につくづく人間は敵わないなと思う
722:デフォルトの名無しさん
25/05/17 22:40:26.23 HReuuPkT.net
>>707
とことん馬鹿だな
教えてもらってそれかよ
消えろや
723:デフォルトの名無しさん
25/05/17 22:48:37.53 Mou0F5/k.net
>>708
それがコミュニケーション能力が高い事なんですか?
724:デフォルトの名無しさん
25/05/17 22:54:54.99 2QmOCSUM.net
煽り耐性ないやつが次々と引っかかっててウケるー
725:デフォルトの名無しさん
25/05/17 22:58:48.79 HReuuPkT.net
馬鹿はこうやって本性を曝け出す
726:デフォルトの名無しさん
25/05/17 23:31:01.83 QeS8RaKg.net
エクセル(VBA)で印刷の精度を求めるのは徒労だと思う
727:デフォルトの名無しさん
25/05/18 08:45:52.75 cP1cyZx+.net
いまだに位置合わせがどうこうやってる
生産性激低日本さん
728:デフォルトの名無しさん
25/05/18 09:28:02.03 NiGvaOOd.net
>>692
配列がいい場合もある
使い分け
729:デフォルトの名無しさん
25/05/18 10:05:14.14 v1lfaeE4.net
>>696
相談の核は、構文の式の優先度を知りたいのか
成果物を要求する人の要望に応じるには、どこを直せばいいのかを知りたいのか
それらの式をあれこれ工夫して組み込んでもどうしてもズレてしまう だの
今のところ問題無いが先々を考慮して問題に成りそうなヶ所を潰しておきたい だの
こちら側では相談の意図がいまひとつ掴みきれない
具体的にサンプル上げるなり事例を書き込むなり
1mmズレるケースとズレないケース両方があれば、より判断しやすい
おれのはズレないよ アー〇ネイ〇ャーだもの
730:デフォルトの名無しさん
25/05/18 11:39:33.78 /BWwyZ2v.net
Dictionaryのkeyに複数値を入れれば2次元で格納できる
731:デフォルトの名無しさん
25/05/18 11:50:29.67 Mk3OrkwO.net
>>715
改ページと全ての行、列を1ページに合わせると、Zoomのこの3つの依存関係、絡み合いが知りたいですね。
AIのご説明では、
まず改ページが最優先され、
次に全ての行、列を1ページに合わせるの設定が優先さる?
全ての行、列を1ページに収めるが設定されているとZoomの設定は無視される
そうです
あとあと行数が今より増えた時に、「フォントサイズが小さくなりすぎる」かもしれないので、今一度、Excelのページレイアウトの設定、仕様、挙動を完璧に把握したいなと思いました。
ありがとうございます。
732:デフォルトの名無しさん
25/05/18 11:53:43.56 JTwWUl1C.net
ところがね・・・
Windowsの場合は、パソコン側の液晶モニターの設定も印刷に影響するんだよ
プリンターもすべて同じLANにつながってるのを共有してるのに、別のPCから印刷するとズレるんだ・・・
733:デフォルトの名無しさん
25/05/18 11:59:28.20 Mk3OrkwO.net
AIにお伺いして、より沢山の案や方法の回答を得たい時はどの様にご質問していますでしょうか?
私は具体的に〜をするにはどの様な方法がありますか?
と聞いていますが、質問があまりにも具体的すぎるのか、限定的すぎるのか、聞かれた事に対してしか答えてくれません(質問に対して抽象化して幅広く回答したら今度はAIは嘘をつくと言われると思いますが。)
734:デフォルトの名無しさん
25/05/18 12:05:26.30 9lhlIUdU.net
左右に並んだセルを連結すると文字の上下位置がずれて発狂するよね
735:デフォルトの名無しさん
25/05/18 12:07:00.00 Mk3OrkwO.net
>>718
それもAIに言われました
スケーリングも影響しますと言われました。
高解像度のモニターで、アイコンのサイズを大きくするために使うあのスケーリングです。
プリンターのフォントや最小の余白サイズなどのプリンターの仕様
プリンターに実は縮尺の設定がかかっている事に気づいていない
などなど
736:デフォルトの名無しさん
25/05/18 12:20:35.59 Yd8pXRNj.net
スレチの話題ほど長く続くんだよな
Excelスレでやってくれよ
737:デフォルトの名無しさん
25/05/18 12:24:15.85 Mk3OrkwO.net
公式ページに書いてありましたね。
Zoom プロパティが True の場合、FitToPagesWide プロパティは無視されます。
Zoomプロパティが False の場合、 FitToPagesWide プロパティと FitToPagesTall プロパティは、ワークシートのスケーリング方法を制御します。
(Zoomは)拡大または縮小する方法にかかわらず、元の文書の縦横比は保持されます。
738:デフォルトの名無しさん
25/05/18 13:41:54.68 v1lfaeE4.net
スレチとは言えないだろうけど、今のところ個人の感想を書いてるだけに近しいな
仕様に関しては、その書類を共有するグループ内で諮って今後の方針を決めればいいだろうし
環境の違いで発生するトラブルに関しては、最大公約数だっけ?なんかそういう系の
どんな環境でもほぼ同一の結果を出せますゾーンを決めて、それに沿った設計制作に
改めるべきだろうし
PDFに出せば問題軽減するってんならそれもひとつの解決策だし
掛けるコストに見合う結果が出ないなら意義は低い(少ない)
これが、個人研究ってんならより深く追及して解に近いものが得られたら発表してもらいたいが
739:デフォルトの名無しさん
25/05/18 13:47:30.17 iKxgrlxH.net
longとstrの変数定義10個やって、ループ5万回回して中で変数に値を出し入れする
まとめてループ外で変数定義するのと、ループ内で適宜定義するのとどっちがよいので??
740:デフォルトの名無しさん
25/05/18 14:08:00.75 JTwWUl1C.net
>>723
保持されないんだな、これが
罫線の太さが一部だけ違ってるシートだと拡大率が縦と横で違ってくる
741:デフォルトの名無しさん
25/05/18 14:10:27.89 JTwWUl1C.net
>>725
MSの推奨は最初にまとめて宣言
チームでやるならみんなに合わせる
個人的な作業ならどっちでもいいけど、途中で方針を変えるとあとで混乱するからどっちかに決めて一生変えないこと
742:デフォルトの名無しさん
25/05/18 14:47:49.53 qr58bPvk.net
>>723
この馬鹿、答えを教えてもらってもネチネチやってるのか
馬鹿はこれだから
消えろや
743:デフォルトの名無しさん
25/05/18 17:14:14.05 9lhlIUdU.net
>>725
VBAにブロックレベルのスコープはないからどっちも同じ
オレの好みは読みやすさ重視でループ内に書く方だが
プロシージャ内の2つのループで同じ変数名を使いたい時
ループ外で宣言しないといけなくなって打ちひしがれる
744:デフォルトの名無しさん
25/05/18 19:26:33.94 NiGvaOOd.net
真円を印刷したら楕円になって発狂したの思い出したわ
どうやって解決したかは昔すぎて覚えていない
745:デフォルトの名無しさん
25/05/18 21:45:07.54 JeO/PtYk.net
>>727
>>729
参考になります…!
ループ内の宣言コストとかはあんま気にしなくてもよさそうな感じなんですね(オブジェクト除く)
746:デフォルトの名無しさん
25/05/19 00:29:53.41 aSNuw95p.net
変数3、4個のプロシージャだったら変数の宣言しなくていいよね?
プロシージャが動いてる時だけメモリ消費するってことでいい?
747:デフォルトの名無しさん
25/05/19 00:49:32.05 nyMkteHn.net
>>732
Option Explicit しなさい
しないと、変数のタイプミスで簡単にバグる
748:デフォルトの名無しさん
25/05/19 03:01:33.66 xZYpAeMM.net
>>732
たとえ宣言してあっても、メモリ上に変数領域が確保されるのは実行中だけだよ
ただし宣言しないと全部Variant型にされるからメモリ効率も実行効率も悪くなる、と言っても体感はできないけど
749:デフォルトの名無しさん
25/05/19 06:06:52.71 WEB+3jSu.net
>>730
図形の事に全く詳しくないから間違っているかもしれませんが、セルに合わせて伸縮したり、移動したりするのを無効にするのでしょうね
750:デフォルトの名無しさん
25/05/20 02:20:44.35 vmioRAc9.net
ListView,TreeView入れて作ったら、大半の人がOffice2013 64bit使ってて動かないことが判明したんだけど、どうしよう
751:デフォルトの名無しさん
25/05/20 06:15:30.63 J92IpVQ8.net
作りなおす
752:デフォルトの名無しさん
25/05/20 07:27:24.89 QvUhVdYo.net
ん? 2013にはそのview無いってこと?
753:デフォルトの名無しさん
25/05/20 07:40:50.77 QuREz4IK.net
32bitと64bitの互換性が無い Verが違う 今時2013つこてる方がキケンがあぶない
相手の環境を再現できるマシンを入手してそれで作り直す
がんばって自作する URLリンク(qiita.com)
754:デフォルトの名無しさん
25/05/20 08:58:00.71 QvUhVdYo.net
あぁ、なる
昔大量にフォーム移行する時に、定義を一覧に出して、それを元に再構築するの作ったような記憶…
おそらくサイズ変更に合わせてフォントとかも変えたのかな…
755:デフォルトの名無しさん
25/05/20 10:20:21.64 4cRKMiEn.net
きちんと動作環境を明確にする
クライアントと打ち合わせる
上司や営業に相談する
756:デフォルトの名無しさん
25/05/20 14:46:51.76 E4QmPhp5.net
2019ですら化石レベル化してるのに2013とはな
757:デフォルトの名無しさん
25/05/20 16:17:35.03 0n1WQM2u.net
2013がどうってんじゃなく使うDLLが違う
使用するべきDLLが32bit版か64bit版か判断するコードが要る
758:デフォルトの名無しさん
25/05/21 10:53:43.66 va6/rMba.net
Excel2013が危険なのには同意だけど
Excel2013/64からListView,TreeView/32を呼ぶのは無理ってだけで
Excel2013/64からListView,TreeView/64を呼べたら使えるんじゃね
759:デフォルトの名無しさん
25/05/21 11:32:04.49 gg1Rd+aD.net
所詮、ActiveXコントロール(ocx)だから
カレンダーコントロールと同じ運命を辿るような気がするけどね
必死に工夫して汗水流して作り上げても、寿命が風前の灯火で数ヶ月後には利用不可とか
760:デフォルトの名無しさん
25/05/21 12:10:27.12 ZnDW2hJE.net
使用者、要望者のオーダーメイドでマクロを作成しても、これは嫌だ、あれも嫌だ、と言われるならなにも作る事は出来ない
脱Excelといって、既製品の業務ソフトを導入しても絶対不満しか出てこない
脱Excelの現実を知った気がする
そして全ての要望を取り込んで作成したマクロが属人化した闇Excelファイルなのだろう
761:デフォルトの名無しさん
25/05/21 12:16:44.55 np4mB3oN.net
嫌かどうかで仕様を決めていると大変だろうな
762:デフォルトの名無しさん
25/05/21 13:16:57.81 gg1Rd+aD.net
>>746
そういう、いかがわしい新興宗教にのめり込んだ人のような発言はそろそろ控えたら?
書いてることが支離滅裂だよ?
>オーダーメイドでマクロを作成しても
要望通りでダメなら、どこをどう改善すればいいかじっくり話し合いの機会を持てばいいだけ
作成したと言い切れるのは、試作品を改良改善した末に仕上がったものに対して使う言葉
>これは嫌だ、あれも嫌だ、と言われるなら
事前の要件や仕様を満たして無いんだろ? 打ち合わせの時に聞くだけの態度で居たとかで
その制作物が仕上がった時の概要がじぶんのアタマの中にできていないからそういう事態に陥る
経験不足もあるだろうし打ち合わせが打ち合わせの体を為していなかった、てだけ
>絶対不満しか出てこない
その業務アプリに移行しましょうと先導した人間の責任 流行りの言葉なら任命責任
>全ての要望を取り込んで作成したマクロが属人化した闇Excelファイル
これがまったく理解不能 属人とか闇とか言いたいだけちゃうんか、と
そんな発言に賛同してくれるのは、あんたがた宗教の身内だけ
763:デフォルトの名無しさん
25/05/21 13:20:09.77 a2F5EjYc.net
TreeViewなどにはライセンスの問題もあったような
764:デフォルトの名無しさん
25/05/21 13:24:41.83 4tKBDgn4.net
顧客も打ち合わせしても話し通じないならAIと打ち合わせしてコード出してもらった方がいいってなるよな
765:デフォルトの名無しさん
25/05/21 13:28:08.25 RMq3dtvy.net
ぶっちゃけシステムなんてそんなもんだよ
コンサルや名の知れたSIerに頼んだって必ず不満は出るし、結局使い物になりませんでした、なんてことも珍しくない
ただし、VBAはユーザー側の人間が作ることが多いので、SIerみたいに「要件定義で決まった通りです」で逃げるわけにもいかないんだよね
766:デフォルトの名無しさん
25/05/21 15:22:55.64 r/haQ8U2.net
仕様変更に合わせて納期も延長でいいんじゃね
767:デフォルトの名無しさん
25/05/21 17:20:56.31 RhMOdQAE.net
だいたい配布前提で整備したコード書けば属人化なんてほぼしないわけで
取り込む要望も無理にまとめず適度に分割してやればいいし
敵に抵抗できないコミュ障コーダーが悪いまである
768:デフォルトの名無しさん
25/05/21 17:33:31.94 7nPavp7R.net
>>753
属人化の根源はコードそのものじゃなく脳内にしかない仕様だよ
コードからwhatを読み取れないから属人化する
769:デフォルトの名無しさん
25/05/21 17:33:52.05 7nPavp7R.net
whatじゃない、whyだな
770:デフォルトの名無しさん
25/05/21 17:42:23.76 RhMOdQAE.net
根源とかどうでもいいんよ
VBA少しできますくらいの他人が
適当にメンテしながら使っていけるコード書けって話でしかない
771:デフォルトの名無しさん
25/05/21 18:08:10.91 7nPavp7R.net
>>756
配布前提で書いたコードだろうと属人化するって話だから、
メンテしながら使おうが属人化はするよ
772:デフォルトの名無しさん
25/05/21 18:16:53.95 HDnlDCyv.net
こんげんかせんといかん
773:デフォルトの名無しさん
25/05/22 07:49:16.16 ZB7yrtfi.net
Excel属人化教の方々は、その属人の定義をして欲しい
属人の何がいけないのか? 全員が同じレベルに成れと言い募ってるのか?
フルオープンにしてコード見れば説明書に成ってる程の成果物を作れと言ってるのか?
それとも、いけない事は無いがただ単に属人って言葉に魅了されて使ってるだけなのか?
774:デフォルトの名無しさん
25/05/22 07:59:10.35 ZB7yrtfi.net
WhyやWhatが読み取れないからメンテ出来ない ってんなら、じぶんのWhyやWhatで作り直せばいい
それを持ってた奴が前作を作ったんだしそれが使えてきてたって事実は変わらん
おれにはできねえってんなら、前任者より能力が劣ってるということになるし、才能ある奴を
新たに採用するように働きかけする必要がある
シン成果物を作れる能力あるなら、前任者をつべこべこき下ろしてる時間はムダでしかない 成果物-1.0でもいいけど
775:デフォルトの名無しさん
25/05/22 08:28:50.00 cWZ2SmFA.net
>>760
書き間違えたのは申し訳ないが
776:、whatはコードから読み取れるんよ whyは何故その処理をしているか?何故その方法を選んだか?何故そのアルゴリズムなのか? それら意図を完全に示す術はない コメントを残せって言われるのはつまりwhyを残せってこと whyを知らなければVBAに限らず、言語にも依らず、 あらゆるものごとは属人化する 属人化は必ずしも悪ではないけれど、 昨日の自分は別人ってことを鑑みれば効率が悪いことは明らか
777:デフォルトの名無しさん
25/05/22 08:29:26.28 uEqc52DQ.net
数年後の自分がメンテできるように作ればOK
人の能力はマチマチ、まだいない後任者のことを考えてもしゃーない
778:デフォルトの名無しさん
25/05/22 08:42:19.33 cWZ2SmFA.net
属人化はリスク要因となりえ、VBAは属人化する蓋然性が高いってことをわかった上で許容するのと、
わからず使う・属人化しないと信じて使うのとは大違いって話をしているに過ぎない
能力だの才能だの、シン成果物だの成果物-1.0だの、
手も頭も動かさない奴の言葉遊びほど虚しいものはないな
779:デフォルトの名無しさん
25/05/22 08:49:14.19 iwrIvlAH.net
属人化教なんて言葉を使っている時点で、もう何を言われても属人化の弊害なんて絶対認めないぞっていう雰囲気をぷんぷんさせているじゃない。このスレだけで何回この話題やるの?
一般に言われる業務の属人化というのは、特定の人がいなければ業務が回らない状態のことで、当該特定の人が休んだり退職したりしたときに業務が止まってしまうリスクがあることから好ましい状態ではないとみなされている。会社側としては業務内容を把握する従業員を複数人にしたり(1人に依存しない)、マニュアル化したりすることでリスクを低減化するのが通常の対応。
VBAはコード作成も実行もExcelだけでできるという特徴があり、このVBA固有の事情により、?専門のプログラマーが作成するコードに比べて一般にコードの質が低い、?会社側が把握しないうちに業務にコードが使われるという事態が生じがち。属人化の弊害が、特にVBAについて言われることが多いのはこれらの事情によるところが大きい。
要するに会社側から見て、属人化リスクを低減化する機会自体がなかったり(上記?)、コストを掛けて属人化リスクを低減化するほどの価値が見出せなかったり(上記?)というケースがVBAの場合には少なくない。
VBAがアイデンティティになっちゃっている人にはどう説明しても理解しないだろうなと思いつつ、一応説明するとこういうことね。しかし、属人化の弊害を否定したがる人って、見事なまでに会社側の視点が抜け落ちているのね。担当者個人の視点で、業務が多少効率化できるのならそれはいいことだという発想から出発してそこから一歩も抜け出ないのならそりゃ議論も噛み合わんわな。
780:デフォルトの名無しさん
25/05/22 08:52:23.13 cWZ2SmFA.net
>>760
才能ある奴wがマニュアルをじぶんのWhyやWhatで作り直して大惨事になった、
東海村JCO臨界事故ってのもあったな
781:デフォルトの名無しさん
25/05/22 09:12:43.00 ZB7yrtfi.net
Excelは属人化しやすい だからExcelで効率化を図る場合には、それに関わる部署・チーム・グループが
一丸と成ってそうならないような対策を施さなければならない 今後、対策されていない自動化は禁止する
とかならまだわかる
Excelは属人化ガー VBAは尚更ー を連呼してるだけで、何の生産性向上に繋がるんだ?
アタマがひどく悪い一族に至っては「だからVBA禁止」のお触れまで出す始末
問題発生しないよう努力する必要もあるし、問題発生したらすぐさま対策を講じなきゃならないのは
何もExcelに限らんだろうに
とりわけここ20数年で急に変遷進歩し続けてきてしまったPC作業に取り残された奴らの繰り言に近い
そんなだから失われた40年とか揶揄されちまう 先を見て向上心持ってもっととんがらないと
VBAに問題あるなら、それを解消することに全身全霊で打ち込みゃあいいだけ
何の解説者だか評論家気取りだか知らんが、悪いものを悪いと言う事なんか阿呆でもできる 悪い処は直し続けるてだけ
782:デフォルトの名無しさん
25/05/22 09:31:16.38 cWZ2SmFA.net
>>766
属人化を悪いって言ってるのはあなた自身だろ
俺は属人化を悪いなんて言ってない
属人化を問題だと思うなら解決すべきなのはそりゃそうだし、
解決策の一つとしての全面禁止だって、俺なら選ばないけど理解はできる
属人化が何故生じるのかを議論することは、それを解消することにも繋がる
属人化する/しないの幼稚な二元論でまとめようとするのは、
頭を使ってない・使えないことをひけらかしてるに過ぎないよ
783:デフォルトの名無しさん
25/05/22 09:35:02.46 mUoHJ/op.net
従業員目線なら、属人化はイコール自分への依存度で価値だから、そりゃ手放さないわな
784:デフォルトの名無しさん
25/05/22 09:40:52.16 cWZ2SmFA.net
会社をプロフェッショナルの集まりだとすれば、
結局のところ仕事自体がどこまで属人化を突き詰められるかだから、
しょーもないことを属人化すんなって話なだけ
785:デフォルトの名無しさん
25/05/22 09:46:17.63 ZB7yrtfi.net
念仏唱えてるだけで、一向に前向きに対処しない・対策しようともしないバカ共を嘲って「教」を付けてる
属人の意味を、じぶんの中で咀嚼・消化してない/しようともしないで、ヨソで聞き齧った言葉をなぞってるだけ
「前にならえ・右にならえ」がDNAに刻み込まれてるこの国の人間にゃあ、それが心地いいのかも知らんが
誰がやらなくともおれはやる ぐらいの気概が欲しいところ
と書くと、内容読まずに言葉尻だけ捉えて「それが属人化に繋がる要因だろ!」とか言い募る奴が居そうだが
オープンな属人化なら大いに結構だろ ←これも語弊がある物言いだがw
オープンにする努力を怠るな、と言ってる 制作する側もそれを使って効率を上げようとする集団も 共有ってそういうもんだろ
そのグループ・集団は同じ目的(収益の向上)を持った集団のハズなんだ その目的達成の方にこそ目を向けろ
足引っ張って他人の粗探ししてつべこべ文句言ってるだけじゃあ、そのうち滅びる
786:デフォルトの名無しさん
25/05/22 10:05:21.01 cejl8MgF.net
>>760
時間が無限にあるのが前提ならそうだね
787:デフォルトの名無しさん
25/05/22 10:07:32.69 cejl8MgF.net
>>765
あれ実はノーベル賞もらえるレベルの改良だよな
788:デフォルトの名無しさん
25/05/22 10:23:06.55 bEEUFRBb.net
>>765
裏マニュアルとは別の?
ググっても分からなかった。
789:デフォルトの名無しさん
25/05/22 11:03:11.01 j+nxGcrc.net
質の低いコードを公開されたって迷惑なだけなんだって。VBA命の人は、まさに収益向上の観点からVBAはメリットより害の方が大きいと判断する会社が少なくないってことをどうしても受け入れられないみたいね。
VBA = 生産性向上・業務効率化という無邪気な信念を持っているみたいだけど、多くの会社はVBAをそのようには
790:評価していない。会社が本気でコードによる生産性向上・業務効率化をするつもりなら、どのような言語を選定するにせよ継続的な管理コストは必要になるわけだけど、それならVBAではなく、もっとちゃんとした言語でやりたいというのが普通なわけ。非プログラマ社員の内製VBAの改変履歴を管理したり、マニュアル作ったりなんてしたくないのよ。
791:デフォルトの名無しさん
25/05/22 16:37:21.75 ZB7yrtfi.net
さすが >>774を取るだけの素質を持ち合わせた人間の発言だなw
ExcelVBAスレでExcelVBA不要論を、あまり意味の無い言葉を並べ立てて講釈するとは
内製であれ外注であれ、その業務を賄うにはExcelで充分という案件は想定して無いだろ?
そういう案件に限ってという前提ならExcelVBAでいいじゃないか
ダメな理由を語りたいがためだけに持ち出した事例が、一向にその役目を果たしてない
どんなコードだろうと「質が低い」と判断できる能力を持ち合わせてるんなら、それを
ブラッシュアップするなり作り変えるなり その方が百万倍コストの面でメリットだろうに
どんな大袈裟なプロジェクトと比較してンの? んで、それ比較する意味あンの?
あんたの中ではあるのかも知らんけど、世間一般では無意味だ とおれは思うよ
792:デフォルトの名無しさん
25/05/22 17:36:10.44 cWZ2SmFA.net
>>775
少なくないってのを100%と解釈してるのか?
ダメだと判断する会社が多いってだけで、
良いと判断する会社が無いなんて書かれてないぞ
変なバイアスかけてレス読んでる様に思える
んで、ブラッシュアップなり作り変える(替える?)ことのどこにコストの優位性があるんだよ
無駄なコストを支払ってることに気づけないような奴が、
他人の発言の意味の多寡の判断なんてできないだろ
可か不可か、良いか悪いかみたいな単純な話にしないと理解できないポンコツ自慢はもうやめてくれよ
793:デフォルトの名無しさん
25/05/22 17:36:37.38 Fv3bLhDj.net
Excelで十分かどうかというのはあまり意味のない尺度だと思うけどね。
Excel VBAの案件って既存物のメンテを除けば基本的に現状ワークシート等での手作業を省力化したいというものだから、
そりゃExcelで十分に決まってる。元々人力でできる程度に細分化された業務なんだから。
VBAが批判されるのは、まさにそういう個別最適化の積み重ねによって細切れ(≒属人的)で非効率な業務プロセスが保存される傾向があるため。
794:デフォルトの名無しさん
25/05/22 19:51:20.63 RAnqaH1V.net
多くの会社から見て業務でVBAを使ってもトラブルが起きにくいパターンというのは主に2パターンあって、①重要なコードだが、何らかの理由で他の言語が使いにくい事情があるため、専門のプログラマに頼んできちんとしたVBAコードを書いてもらう場合。この場合、当然、VBA社員の出番はない。要するに、通常のシステム開発と同じだが、特定の事情により選定言語がVBAになるケース。もう一つは、②あまり重要な業務ではないので、質の低いコードでも構わない場合。個人の裁量の範囲内でVBAの使用を認める会社というのはこっち。要するに個人で責任を取れる範囲内なら、会社は管理コストを掛ける必要もないし、担当者の裁量でVBAを使うことを禁止するまでのことはしないくても良いのではないかいう発想。それなりに合理的ではある。
逆にいうと、上記①②いずれにも当てはまらないような使い方は、会社からするとリスク・コストを感じやすい。個人の裁量の範囲を超えて、非プログラマの書いたコードを業務に使用するような場合とかね。書いた本人はコードをオープンにしてブラッシュアップすれば良い、コストの面でも有利だなんて無邪気にのたまうけど、会社からすればそんな価値の低いものに管理コストを掛けたくない。仮に継続的な管理コストを掛けるならもっと価値のあるものに掛けたいわけ。はっきり言えば、新しく書き直すときでさえそういう既存のコードなんかない方が良い場合も多い。業務に使われている既存のコードがあるとなれば、どんなに酷いものであっても一応読まないわけにはいかないからね。
非プログラマの書くコードという括りで論じる限りは、Excelで十分な業務というより、低質なコードで十分な業務かというのが基準になるかな。それだって会社の方針次第だが。会社が全面的にVBAの使用を禁止しているような場合もあるからね。
795:デフォルトの名無しさん
25/05/22 21:02:03.17 aXwvtPcZ.net
VBA禁止な
reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Excel\Security" /v "VBAWarnings" /t REG_DWORD /d 4 /f
796:デフォルトの名無しさん
25/05/22 22:58:58.92 zdx+eNOi.net
名前付き引数省略は害悪。全てキッチリ書け
797:デフォルトの名無しさん
25/05/23 08:26:51.53 oLOrCYhj.net
「多くの会社」を、それぞれが想定してる規模が違うような気がする
経産省のサイトを参考にすれば、商工業それぞれの規模から比較したら
小規模(社員数20人以下)のが俄然大半を占めてる(かつては零細と呼ばれてた)
製造業は九割に近付く勢いだし、小売業や飲食業も八割、卸売業は五割程度だが
「多くの会社」とひとまとめにする場合は、これらを指すのでは無いのか?
社員数2,000名以下の中規模とかをもって「多くの会社」と呼び為してる気がしてならない
小規模は、持ち合わせてる武器で戦うのがいちばん効率的なんだが
持ち合わせてるExcelだけで戦えるなら、それをフルに活用しない手は無いだろうに
その実態を知ったうえで「多くの会社」と書いてるんだろうか
798:デフォルトの名無しさん
25/05/23 09:06:27.49 RtFNfP1s.net
人手に余裕のない小さい会社こそ差別化要因にならない業務にはSaaS使うべきなんだよ
SaaSは企業規模に対する課金が多いため、むしろ小規模な企業の方がコスト効率も良くなる場合が多い
799:デフォルトの名無しさん
25/05/23 10:16:56.42 38AbBGg0.net
VBAの属人化リスクの議論って、むしろそういう小規模な会社こそが最も意識すべきことでしょ。中規模以上の会社なら、そもそも低質なVBAコードに業務を依存させるような間抜けなこと自体があまりないだろうし、仮にそういう事態を生じさせてしまっても、最悪追加コストで何とかできなくはない。
小規模会社には、VBAを「効率的」な「武器」だと思いこんで飛び付いて、必要な管理もしないまま「フルに活用」した挙句、にっちもさっちもいかない事態にしてしまったところが少なくなかった。その教訓としてVBAの属人化リスクが意識されるようになったんだよ。
「武器」にならないとまでは言わないが、そんなに大したものではないし、トータルで見れば「効率的」でもない。好んで「フルに活用」するようなものでもない。そういうVBAの等身大の実像が会社サイドに把握されるようになっただけの話。
「小規模は、持ち合わせてる武器で戦うのがいちばん効率的なんだが
持ち合わせてるExcelだけで戦えるなら、それをフルに活用しない手は無いだろうに」(>>781)
多くの会社はこの後半部分が幻想に過ぎないことに既に気付いているが、VBAerには未だにこの幻想にしがみついている人が居るということ。
800:デフォルトの名無しさん
25/05/23 13:22:41.57 oLOrCYhj.net
>必要な管理もしないまま「フルに活用」した挙句、にっちもさっちもいかない事態にしてしまったところが少なくなかった
ここの事例を具体的に読ませてくれるサイトとかあるん? 統計とか?
文末を「・・してしまったところはほぼ無い」と書き換えてどっかで紹介して、それを鵜呑みにした読者がヨソでお披露目しても
気付かれないでしょ? おソースプリーズな言説
判り易く例として社員20人だとして、事務要員4人は
801:規模に対して多い 大抵は現場と掛け持ちで4~5人ならまだ普通 事務専任で1~2人なのが一般的な見立てだろうと思う そのうち一人が丹精込めてVBA育ててたけどあいにく辞めた 他の人間は便利に使わせてもらってたけど、いざ辞められたらVBAだれもチンプンカンプン ならまだ有り得る だからって、それが直接「だからVBA禁止!SaaSに移行!」って成ると頑なに信じてる?それ薦める? 小規模なら小規模なほど環境の変化を嫌うんだ あるものを何とかして使い続けられるならそうしたいってのが人の世の常 多少の手直し必要に成って助力が必要な状況なら、コネ使うなりしてでもそのものを使い続ける工夫に走る タイミング良く同質のものを安価で提供できる業者とかが出てきて、それのサポートも請け負ってくれたりしたなら ソッチに移行していくことはあったとしても、未知のサービスに賭けて投資してそれが自社の実態に即さなかったら 目も当てられない そっちのがリスキーだしその費用は丸々損害に等しい(授業料てか どこの会社も業種が一緒なら業務も一緒だと思ってたら大間違いで、その会社独自の仕組みを持っていたりする それに即して自在に加工できる道具として見ればExcelほど便利なものは無いのも事実 上では商工業を書いたけど、他にも建設、運輸・運送、士業えtc あらゆる業界で現実にExcel VBAが幅広く活用されてる 現実を鑑みても「ExcelのVBAは属人化しやすいから禁止」を言い張って止まないンなら、言い続けてりゃいいけどさ 書かれるたびにおれがしゃしゃり出てつべこべ反論してりゃいいんだろうし
802:デフォルトの名無しさん
25/05/23 13:35:20.91 +XeHUCKJ.net
どのように属人化するか・どの様に防ぐかの話題から、
属人化対策として禁止するか否かの話に
803:デフォルトの名無しさん
25/05/23 15:19:50.38 eOaMEV2I.net
最後に 知らんけど ってつけた方がいいんじゃんね
知らんけど
804:デフォルトの名無しさん
25/05/23 15:21:21.07 mEX1XvmT.net
>>784
他の手段と比較してどうかはともかく、事実としてVBAが問題を起こすことが多いからあんたに仕事があるんだろ?
だったら属人化万歳くらいで流しときゃいいのに、いちいち突っ掛かってたら余計なストレスを作るだけだぞ
心配しなくても、あんたが顧客としているような会社は、全体最適云々を語るコンサルやシステム屋は相手にしない
まあSaaSについては結構小さいところもわりと積極的に営業するから敵になるかもね
805:デフォルトの名無しさん
25/05/23 15:53:12.83 dHvUhuhP.net
長くてわかりにくい
スパゲッティ文章はやめろ
806:デフォルトの名無しさん
25/05/23 16:24:52.89 oLOrCYhj.net
うん、途中からどうも話が噛みあわないな、とかは思っていた
ひと頃「ExcelのVBAは属人化しやすいから禁止する企業が増えてる」とかのたまう輩が徘徊してて
おま、それ、何もExcelに限らんだろ っつー意味で反抗してたし、そんなアホ論をこのスレで
平気で吹聴してる奴に向けて言葉のげんこつしてたんだけど どっか行っちゃったんか?
所詮、世間は、世の中は属人三昧だろ? それで右往左往世界が悪い方向に向かってる実例を
まざまざと目の当たりにしてる真っ最中だろ? で、それが悪かどうかなんか、もう少し様子を
見極めなきゃいけないまである
なんでわざわざこのスレをターゲットに、VBAは属人化!!!とか言い募らなきゃならん?
どこの回し者だ?、と
細かいこと言えば、じゃあってんでこれでもかっつー関数並べ立てて複雑怪奇な数式を組んだ
WorkSheetはどうなんだ? 属人化の極みだけどそれはいいのか? 見た目xlsxならおkなのか? と
至るスレで属人化!属人化!!属人化!!!と連呼してるならまだわかるが、なんでExcelスレ限定
で、こないだ別件で「Excel 売上管理」とかでネットをモゾモゾしてたら、そこら中の売上管理アプリの
宣伝サイトが、形ばかりのExcelのサンプル載せて「しかしExcelは属人化」っつー文言を決まり文句の
ように添えてたんだ ははぁ~ん、とね、ある意味腑に落ちたし別の意味でがっかりしてたんだ
言い募る連中が自分の言葉でその悪弊を語れなくて「ネット見ろ」とか返すしか能が無かった理由が判明
そんなサイトだけじゃ無いのは承知してても、結局自分の意見として主張してンじゃなくて、受け売り
余所で聞きかじったのをなぞってるだけのレベルなんだな、と
しかし、少なくともこのスレに居続ける人間なら、ExcelのVBAで効率を図ることに意欲的であって欲しい
他のがいいよ、って奴はその宣伝だけして書き逃げしてて欲しい
まだまだExcel もっともっとVBA であり続けることが、このスレの健全化に貢献するはずなんだから
すぱげってぃwww 読み飛ばせばいいじゃんか 読んでくれなんて頼んで無いぞ?
807:デフォルトの名無しさん
25/05/23 16:44:22.04 HIpPOdnz.net
スレタイ
808:デフォルトの名無しさん
25/05/23 16:53:05.49 fshmIkkH.net
xlsmって唐突に未知のウイルスの疑いのあるファイル扱いになったりする事もあるから何も知らない人は扱うのが怖いかもね
809:デフォルトの名無しさん
25/05/23 17:18:49.63 4lmOgu2G.net
VBA職人が揶揄されるのも分かるわ。
ところで、仮にVBA職人、Ruby信者、Haskell信者、Rust信者で比べられたら、やっぱりVBA職人が圧倒的に格下扱いされちゃうのかな。ちょっと悲しみ。
810:デフォルトの名無しさん
25/05/23 17:28:32.52 U7YdU8g0.net
VBAがそれらと同列に比較されることはないから互いに眼中にないと思うよ
Excel VBAはピボットテーブルとか分析関数とかと同列の、Excelの上級スキルの一つに過ぎない
一般的なプログラミングとは別物
そのへんのエンジニアより、むしろBIツールがメインのデータアナリストなんかの方がVBA意識してるよ
811:デフォルトの名無しさん
25/05/23 17:34:04.21 4lmOgu2G.net
なるほど、そんなものかねぇ。
812:デフォルトの名無しさん
25/05/23 17:39:18.56 +XeHUCKJ.net
>>789
文意の分からん文章書いてて噛み合わないもクソもないだろ
伝える気ないなら書くな
読ませる気無いなら書くな
話を曲解して変な方向に話を誘導してるのはあんた自身だ
813:デフォルトの名無しさん
25/05/23 18:31:41.70 5vSRBrjF.net
言語にすぐ上だ下だ騒ぐ奴いるからな
814:デフォルトの名無しさん
25/05/23 18:59:01.81 BlARSTzn.net
言語じたいは下の下
反論する奴すらいない
815:デフォルトの名無しさん
25/05/23 19:12:24.88 K4ioF38n.net
構文として最低限どんなものがあって欲しいかっていうのは人によって違うからねぇ。いまは、JavascriptとかPython辺りが平均的なラインなのかな。まぁ、関数型言語等のユーザーから見ればJavaScriptとかPytnon辺りでも足りないものだらけということになるんだろうし、VBAでも慣れればそんなに不自由ではないよという人も大勢いるわけだしね。
816:デフォルトの名無しさん
25/05/23 19:54:42.34 ybuGJY2P.net
C言語育ちのワイ、VBA始めた頃「えっ、ポインタってどうやって使うの?」って戸惑った思い出
自分の仕事が楽になる�
817:p途で使いまくってるからまぁ属人化しまくりだけど、 自分が退職した後(2年後)は知らんと思っている
818:デフォルトの名無しさん
25/05/23 20:17:02.36 dHvUhuhP.net
この辺がつらい
・tryがない
・for eachがバリアントのみ
・continueがない
819:デフォルトの名無しさん
25/05/23 21:01:05.99 61koEGUg.net
まぁ、なければないで何とかやっていけるもんだよ。
このスレではそう言っておくのが無難。
820:デフォルトの名無しさん
25/05/23 21:05:52.61 fxCKrz9G.net
>>799
C言語にはfor eachがない、なぜならもっと原始的、シンプルな言語だからってCopilotに聞いたのですが本当なのでしょうか?
821:デフォルトの名無しさん
25/05/23 21:21:09.60 eG6EJpyW.net
>>802
ポインタに++すれば次の要素になるからむしろCのほうが融通が効く
822:デフォルトの名無しさん
25/05/23 22:01:59.52 ai481srR.net
4行以上のレスは読む必要無いってマジだな
823:デフォルトの名無しさん
25/05/23 22:09:05.20 4KSUIwLz.net
ぬるぽ
824:デフォルトの名無しさん
25/05/23 23:17:20.35 fxCKrz9G.net
>>793
データアナリストならパワークエリーしてほしいな
825:デフォルトの名無しさん
25/05/24 06:17:34.64 OSW0csek.net
属人化し易い言語と言うことは融通の利く言語と言うことでもある。
例えば、CやC++ではポインタが使えたけどC#では「それは危険だ」ということで使えなくなってしまった。
代わりにデリゲートを使ってセーフティーに参照しなさい、ってことなんだろうけど、まぁお仕事用の開発だったらそれでもいいのかもしれないけど、
昔PS-VITAってゲーム機があって、これがエクスペリアってスマホとクロスプラットフォームで開発できるように開発言語をC#にしてしまった。
ポインタは確かに参照先間違えると吹っ飛んだりメモリリーク起こしたりと危険なものではあったけど、扱いが面倒ではないし融通の利く機能だった。
それを潰してしまったことがPSPシリーズがVITAで終わってしまった原因ではないかと今でも思ってる。
826:デフォルトの名無しさん
25/05/24 06:41:52.12 OSW0csek.net
>>798
JavaScriptをやったときには
前から.Net系の言語や、まぁVBAでもそうなんだけど、
何でクラスのインスタンスや文字列とかは変数に入れられるのにメソッドは入れられないんだろ?
って思ってた時期があって、
JavaScriptに当たったとき、
あ、出来る言語もあるんだってなって、あれVBAに欲しいなぁとは思った。
後はスクリプト系の言語はスカラー変数で型の指定がないから型の指定に慣れてると逆にそれが面倒だったかな。
VBAで言えば全部Variantで扱ってるようなもんだし。厳密には違うらしいけど。
827:デフォルトの名無しさん
25/05/24 10:35:16.26 sJ/mZ3mU.net
若いコにはやっぱPython辺りが人気とか?
828:デフォルトの名無しさん
25/05/24 13:44:59.73 3VNn3d5Y.net
スピル周りやLET,LAMBDAなどの関数が充実し
Excel=ビジュアルな関数型言語だと勝手に思っている
829:デフォルトの名無しさん
25/05/24 14:39:09.90 a4AdJqTs.net
ビジュアルな関数型言語はemacs-lispだろ
830:デフォルトの名無しさん
25/05/24 15:44:49.02 0gUvgwlc.net
表検索するのにSQL使ってたけど、FILTER覚えたら単純な検索ならこれでいいかー、ってなった
831:デフォルトの名無しさん
25/05/24 20:17:19.55 c7V+L981.net
このスレはバカの話はなぜ長いのか考えるスレになりました
832:デフォルトの名無しさん
25/05/24 20:41:36.84 6QA0+Pxw.net
頭の良い人は難しいことを簡単に説明出来る
馬鹿は簡単なことを長々と判り難くする
833:デフォルトの名無しさん
25/05/24 20:44:24.68 OSW0csek.net
>>813
正直すまんかった
久しぶりにVBAスレ来たからつい・・・
でもVBAはいい言語だと思うよ
834:デフォルトの名無しさん
25/05/24 21:07:47.86 cYe6QRvj.net
VBAは言語なのだろうか
VBは言語だけども
835:デフォルトの名無しさん
25/05/24 21:42:51.33 ZMjSY/PV.net
A1セルはこのフォルダのパスを記入する
A2セルはこのフォルダのパスを記入する
流石にこれは通じる、、、よね?
836:デフォルトの名無しさん
25/05/24 21:44:12.53 ZMjSY/PV.net
>>816
チューリング完全がプログラム言語の定義なのでしょう?
だったらVBAはプログラミング言語なのでは
837:デフォルトの名無しさん
25/05/24 22:37:10.39 iK5rs3WU.net
A1 Write this folder pass.
838:デフォルトの名無しさん
25/05/25 12:18:28.20 IvH5YvLQ.net
dictionaryやFileSystemObjectのfunction関数を使っているけど、dictionaryに登録する処理や取得したファイル名やファイルパスに対する操作は事なる
こう言う場合、どうすれば個別の条件にも対応できるfunction関数が作れますか?
839:デフォルトの名無しさん
25/05/25 12:36:22.85 ubpRgCst.net
異なる操作をひとつの関数で行いたいという質問ですね!
まずはどういう操作を行っているのか教えてください!
840:デフォルトの名無しさん
25/05/25 12:45:27.58 czPn1bap.net
dictionaryは死ぬ予定だから使うのやめなよ
841:デフォルトの名無しさん
25/05/25 12:53:50.40 ubpRgCst.net
>>822
そうですね!
Excelなのだからデータはワークシートに格納するのがスジですね!
842:デフォルトの名無しさん
25/05/25 13:20:14.05 fZ8kzLje.net
AIみたいな解答ワラタ
843:デフォルトの名無しさん
25/05/25 16:48:27.92 zOE9ehCa.net
ホントにAIに聞いた。
個別の条件にも柔軟に対応できる function を作るには、いくつかのアプローチが考えられます。例えば、以下のような方法を試してみてはいかがでしょうか。
1. パラメータを活用する
2. Enum または定数を使う
3. コールバック関数を使う
844:デフォルトの名無しさん
25/05/25 17:36:59.25 QBoxveBd.net
何をしたいのかが謎
型によって処理を分岐させたいってことかね
Function 関数(処理対象)
型名 = TypeName(処理対象)
Select Case 型名
Case "Dictionary"
Case "File"
Case "Folder"
End Select
End Function
845:デフォルトの名無しさん
25/05/25 18:31:50.10 czPn1bap.net
>>823
そういう話じゃなくVBS廃止の副作用で連想配列や正規表現が死ぬって話
846:デフォルトの名無しさん
25/05/25 18:42:26.13 rOBfPREU.net
>>827
VBS廃止の副作用で死ぬのは噂や推測じゃなくて公式の情報なの?
847:デフォルトの名無しさん
25/05/25 19:07:30.81 IvH5YvLQ.net
ファイルシステムオブジェクトでフォルダの中のファイル名一覧と、ファイルパスを取得したい時もあれば、
ファイル名に部分一致するファイルのパスを取得したい時もある
848:デフォルトの名無しさん
25/05/25 19:13:49.79 5C/Jye7Q.net
従来の正規表現の代用って無いの
849:デフォルトの名無しさん
25/05/25 19:54:07.08 czPn1bap.net
>>828
逆にあれだけ情報出ててなんで死なないと思うの?
URLリンク(techcommunity.microsoft.com)
>>830
vba-regex by sihlfallっていう、
RegExp代替のフルVBAで書かれた正規表現エンジンがある
850:デフォルトの名無しさん
25/05/25 19:58:13.45 bo3VS07C.net
>>829
はい!
if文で条件分岐すれば、簡単に実現できます!
851:デフォルトの名無しさん
25/05/25 20:04:43.89 IvH5YvLQ.net
私はVBAの正規表現が死んだら、パワークエリーでJavaScriptの正規表現を使うわ
set オブジェクト = nothingって必ずした方が動作が確実になるのでしょうか?
Wordのドキュメントやアプリ
852:ケーションを処理する時にエラーが出たのでそう思いました。
853:デフォルトの名無しさん
25/05/25 22:03:34.39 QBoxveBd.net
正規表現はREGEX関数が実装されたのでVBAでやる必要なし
854:デフォルトの名無しさん
25/05/25 22:32:05.60 d/seLvao.net
>>822
知ったか乙
良く調べて書き直せ
855:デフォルトの名無しさん
25/05/26 02:34:52.38 J879X3+V.net
>>835
Microsoft Scripting Runtimeに依存してるからVBSと共に死ぬ
FSOなんかはScripting Runtimeには依存してないから引き続き使える
間違ってるなら指摘して
認識改めるから
856:デフォルトの名無しさん
25/05/26 09:38:22.00 G1Vrdcz4.net
>>820 が聞きたいのは
URLリンク(www.limecode.jp)
この辺の処理の仕方なんでは? 最後まで精読すれば、どういう書き方をすれば
より都合が良くなるか、それなり理解が深まるような
857:デフォルトの名無しさん
25/05/26 09:53:10.39 wHcYCN0P.net
>>833
>set オブジェクト = nothing
それ書かないで過去に何度か問題起きてたような
ファイルopenして、close書かなくても勝手に閉じてくれるとしても、書いたほうがいいようなもん
たった1行各程度で未然にトラブル防げるなら書いとけと
(かと言って、親オブジェクトから連なる小オブジェクトはいちいちnothingせずに、親オブジェクトだけ書いちゃうことも多いけどな。小さい処理だと特に)
858:デフォルトの名無しさん
25/05/26 12:08:21.83 chNfFSjB.net
>>836
間違えている
どのDLLに何が入っているかだ
859:デフォルトの名無しさん
25/05/26 13:55:33.90 cvwCoF8H.net
>set オブジェクト = nothingって必ずした方が動作が確実になるのでしょうか?
した方が良いじゃなくてするべき
860:デフォルトの名無しさん
25/05/26 17:21:30.90 c1JRhLC0.net
コピペ荒らしこのスレだけ来ないの面白いな
861:デフォルトの名無しさん
25/05/26 18:35:02.01 FaOK97dk.net
>>837
すみません
今の私は例えばファイルシステムで言えば、
フォルダの中の全てのフォルダ名とフォルダパスを取得
フォルダの中の全てのファイル名とファイルパスを取得
フォルダの中に指定のファイル名と異なるファイルがあれば削除
と言う様に、
それぞれのサブプロシージャを作成する事しかできていません
なので、一つのサブプロシージャに条件に応じて複数の処理が行えないかなと思いました
原作論で言えば、一つの処理しかできないサブプロシージャこそ正しいのかもしれませんが
あと、それぞれのプロシージャでファイルシステムオブジェクトを宣言とセットをしてしまっています
nothingは今までプロシージャを抜けた時点で解放されるから特にする必要がないと思っていましたが、Wordを操作する様になって、nothingをしないと処理が止まってしまうので意識する様になりました
862:デフォルトの名無しさん
25/05/26 19:11:18.49 mCaBFscc.net
Sub Yaritai(i as integer)
if (i and 1) <> 0 then
Call Sub1()
elseif (i and 2) <> 0 then
Call Sub2()
End Sub
863:デフォルトの名無しさん
25/05/26 20:30:26.44 sP5+kUYx.net
>>842
ご自分で言ってる通り、ひとつのモジュール、関数、メソッド等にはひとつの役割を与えて作るのがセオリーです。ちなみにそれを単一責任原則と言います。
ひとつのプロシージャ内で出来るかと言えば、再起処理やStaticな変数を上手く使えば恐らく出来ないことは無いでしょうが、そうするメリットをあまり感じません。
ひとつのプロシージャで処理するのではなく、ひとつのクラスとしてその辺の処理を行うことを検討しては如何でしょうか?
そうすればメンバ変数として宣言したもののインスタンスをコンストラクタで生成することも出来ますし、デストラクタで解放することも出来ますよ
864:デフォルトの名無しさん
25/05/26 20:36:57.49 sP5+kUYx.net
×再起処理
◯再帰処理
誤変換すまんこ
865:デフォルトの名無しさん
25/05/26 21:18:23.47 FaOK97dk.net
>>844
クラスモジュールを一通りやった事がありますが、いまいちクラスモジュールの使い方を知りません
どうすればそれぞれの機能をクラスモジュールで効率的に実装できるでしょうか?
866:デフォルトの名無しさん
25/05/26 22:59:03.14 Eh03XDLb.net
セルから機種依存文字を直接拾ってくるのは難しいですか?
例えば☐(unicode:2610)が入ってるセルをクリックすると☑(unicode:2611)に書き換える、みたいなのを実装する場合、
if(Range("A1").text="☐")then
だとRange("A1").textでセルの文字は取得できませんよね?
(もちろん「="☐"」で直接比較することもできませんが)
どうにかしてセルの機種依存文字を拾ってきてその種類を判定することは可能でしょうか?
867:デフォルトの名無しさん
25/05/26 23:15:54.66 MWZ/4kNq.net
>>847
Hex(WorksheetFunction.Unicode(Range("A1")))
868:デフォルトの名無しさん
25/05/27 15:49:48.18 j5Gfr/Ar.net
>>847
>Range("A1").textでセルの文字は取得できませんよね?
取得はできる。VBEで使えない文字だからソースに直接その文字を書けないだけ
Dim CHECK_ON As String: CHECK_ON = ChrW(&H2610)
Dim CHECK_OFF As String: CHECK_OFF = ChrW(&H2611)
If Range("A1").Value = CHECK_ON Then
Range("A1").Value = CHECK_OFF
Else
Range("A1").Value = CHECK_ON
End If
869:デフォルトの名無しさん
25/05/27 17:59:07.28 2OPk25Mu.net
>>848
解決しました。
ありがとうございます。
870:デフォルトの名無しさん
25/05/27 20:17:39.42 3QS90eHP.net
Excelの話ではないからスレ違いなんですが、 Wordのドキュメントの2ページ目の行に文字列を挿入するにはどうしたらいいでしょうか?
2ページ目の〜行目にと言う様な指定はできないのでしょうか?
871:デフォルトの名無しさん
25/05/27 20:38:35.17 0hlUsnMF.net
>>851
スレチとわかっていて厚かましい
死ね
872:デフォルトの名無しさん
25/05/27 20:52:46.35 OuONf5SF.net
>>852
この馬鹿モンが!
>>851
いい質問ですね
ExcelのほうがメジャーでWordはマイナーなのだけど
WordのVBAをはじめた人にとっては初期段階でやりたい操作なのではないでしょうか?
簡単ではないですが解決策はあります
たしかinformationみたいな名のプロパティを使ったような気がする
(もうWordVBAは数年使ってないから忘れた)
ChatGPT使えば教えてくれるかも
873:デフォルトの名無しさん
25/05/27 20:54:35.84 DtCiAPP8.net
>>853
死ね
874:デフォルトの名無しさん
25/05/27 22:13:59.20 JUnNHiQe.net
>>851
ActiveWindow.ActivePane.Pages(2).Rectangles(1).Range = "文字列" & ActiveWindow.ActivePane.Pages(2).Rectangles(1).Range
875:デフォルトの名無しさん
25/05/28 00:45:03.58 7WzKj5D7.net
フォームを作るのに標準のコントロールやAPIでは動かないことがあったから、ついにPowershellで作り始めちゃった
876:デフォルトの名無しさん
25/05/28 01:00:15.46 +7HocyMO.net
PowerShellは
System.Collections.Genericが使えるからかなり楽だよなぁ
VBAと違ってフォームデザイナが標準で付いてないのが難だが
877:デフォルトの名無しさん
25/05/28 07:40:29.71 LbsE8EcH.net
VSの方が楽なんでは
PS使ったことないけど
878:デフォルトの名無しさん
25/05/28 08:42:06.86 WNN+73zR.net
PowerShellはbatと違って、一手間や権限設定が必要と聞いたからやめた震え声
本当にそうなのですか?
879:デフォルトの名無しさん
25/05/28 08:58:57.33 DZlhdmsz.net
震え声で言ってるの?
880:デフォルトの名無しさん
25/05/28 09:02:42.36 3/66YXCT.net
スレタイを音読してみよう
881:デフォルトの名無しさん
25/05/28 09:56:27.88 0RI44N1Y.net
エグザイル ビバ しつもんしる
882:デフォルトの名無しさん
25/05/28 20:05:51.40 WNN+73zR.net
VBAでファイルやフォルダのパスはいつも一覧表で利用しているのですが、当然属人化するリスクがあるので、もっと柔軟にパスを設定できる方法を探しています。
今考えているのは、ファイルやフォルダが見つからなかった時にダイアログを開いてフォルダやファイルを選択させ、選択したファイルやフォルダのパスをセルに記入する、と言う方法なのですが、もっと簡単で確実で柔軟な方法はないでしょうか?
883:デフォルトの名無しさん
25/05/28 20:44:52.08 Z5h4paoG.net
自分は設定シートを用意して、そこに記述してあるものを参照してる
884:デフォルトの名無しさん
25/05/28 20:50:09.42 bd87TuSw.net
ログインユーザーのマイドキュメントをルートにして開く
具体的には「HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal」
のパス
885:デフォルトの名無しさん
25/05/28 21:40:10.79 WNN+73zR.net
>>864
その設定用シートに
例えばフォルダやファイルを複数選択した状況で右クリックのパスをコピーでシートに貼り付ける
という事さえも出来ない、わからない人も想定しないといけない訳で、、、
886:デフォルトの名無しさん
25/05/28 21:58:53.67 //Fv0twK.net
>>863
エクスプローラーからファイルをドラッグドロップ
887:デフォルトの名無しさん
25/05/28 22:16:15.52 WNN+73zR.net
>>867
知らなかったです
これができるなら本当に希望が見えてきました
888:デフォルトの名無しさん
25/05/28 22:18:57.59 QfAx2JsO.net
馬鹿ばっか
889:デフォルトの名無しさん
25/05/28 23:46:46.18 //Fv0twK.net
>>868
URLリンク(excel.syogyoumujou.com)
このやり方が簡単そう
890:デフォルトの名無しさん
25/05/29 07:11:07.31 cC95Jm/J.net
>>870
よくよく考えれば当たり前なんだけど、ドラッグ&ドロップで追加する機能もあるんだ
これは便利だ
891:デフォルトの名無しさん
25/05/29 17:25:49.51 fp+yAGdo.net
FileSystemObject の TextStream が使えないなら ADODB の Stream を使えばいいじゃない
と思ったら挙動が違ってびっくり
892:デフォルトの名無しさん
25/06/01 20:16:56.40 wTah86rB.net
初歩的な質問で申し訳ないですが、マクロ実行中にエラーなどでデバック画面、エディタ画面に移動せずに、エラーハンドリングなどを実行してプロシージャを終了するにはどうしたらいいですか?
893:デフォルトの名無しさん
25/06/01 21:54:45.65 fzXRF4Kq.net
>>873
On Error Resume Next
894:デフォルトの名無しさん
25/06/02 00:34:11.70 14Td775l.net
[ツール] [オプション] [全般]
エラーでトラップ
●エラー処理対象外のエラーで中断
ということではなくて?
895:デフォルトの名無しさん
25/06/02 00:35:28.23 14Td775l.net
×エラーでトラップ
◯エラートラップ
896:デフォルトの名無しさん
25/06/02 07:36:05.35 hx4qvUMZ.net
>>614
on error goto ラベル名
vba エラーハンドリング で検索して例を見た方が早いよ
897:デフォルトの名無しさん
25/06/02 08:46:36.26 IeMpK/LE.net
>>614
そんなひとつのモジュールに詰め込んだら管理しにくいでしょ。
モジュールは分ける。
898:デフォルトの名無しさん
25/06/02 09:24:06.39 3Ov4fjqk.net
>>878
何を基準にかを書かかないと役立たずじゃない?
899:デフォルトの名無しさん
25/06/02 15:03:33.91 DSKTrfoz.net
馬鹿はそんなことも判らないのか
900:デフォルトの名無しさん
25/06/02 15:07:32.82 OjGRkHiP.net
>>880
スレタイ読めない馬鹿w
901:デフォルトの名無しさん
25/06/02 19:50:00.14 K2UVQp3e.net
>>614
ひとつのモジュールにはひとつの役割を
ひとつのプロシージャにもひとつの役割を
与えて書けばいいんじゃない?
もちろん、モジュールとプロシージャでは
与える役割が全然変わってくるけど
例えばモジュールに車という役割を与えたら
プロシージャには走る役割を与えたり
後はセンス
902:デフォルトの名無しさん
25/06/02 20:06:38.96 Xhmb9taU.net
ありがとうございます
やはり on error goto ラベル名 なのですね
903:デフォルトの名無しさん
25/06/02 20:25:45.14 gI3jZeU7.net
on error resume next
ヤバそうな処理
if err.number<>0 then
エラーリカバリー
end if
on error goto0
904:デフォルトの名無しさん
25/06/02 20:45:44.86 Xhmb9taU.net
>>884
エラーが発生している、あるいはしそうな処理がある、というよりは、マクロ実行中にどんなバグでも発生したら、発生した時点で終了させる必要があります
905:デフォルトの名無しさん
25/06/02 21:35:59.74 nQl9pEtd.net
終了前に
err.number = エラー番号
をセットしてジャンプさせるハンドラがいる
こわー
906:デフォルトの名無しさん
25/06/02 22:06:18.54 ZCDsMgZ+.net
Sub Div0()
On Error GoTo Err
MsgBox 1 / 1
MsgBox 1 / 0
MsgBox 1 / -1
Err:
MsgBox "ゼロで割るな、クソが"
End
End Sub
907:デフォルトの名無しさん
25/06/02 22:26:41.07 ncJUEcFA.net
Err: の前で Exit Sub しないと
908:デフォルトの名無しさん
25/06/03 07:35:55.27 o/OLh2ct.net
異常が起きる前にファイル開いてた場合、closeしないで終了してしまうとかある
909:デフォルトの名無しさん
25/06/03 07:39:00.03 /ZJ1mBw3.net
VBAのツール作りは時間がかかるのが当たり前でしょうか?
作り方は分かっているし、作るツールもたいしたものではないのに、それでも1日2日では終わらないです
910:デフォルトの名無しさん
25/06/03 10:48:59.43 Kk3A2bVT.net
ものによる、人による、まともにテストしてるかにもよる
911:デフォルトの名無しさん
25/06/03 10:57:06.67 Q0vXXWY4.net
どうせ著作権侵害や不正アクセスツールだろ
912:デフォルトの名無しさん
25/06/03 19:25:30.47 gpacmpqZ.net
>>890
まぁそうだね
だから綺麗に部品化しておくことが大事なんだよ
それを後で使い回せるようにね
913:デフォルトの名無しさん
25/06/03 20:26:44.49 /ZJ1mBw3.net
自分が勤めている会社で理解者や協力者を増やそうと、少しでもVBAに興味を示した人や、VBAを齧っている人を相手に勉強会を開催しても、結局VBAがわかる人は少ない
という話を聞きますが、やっぱりVBAといえど、難しいのでしょうか?
Power Queryでもそういう話を聞きます
914:デフォルトの名無しさん
25/06/03 21:02:42.93 cgHky4oh.net
VBAが難しくないんだったらさっさとVBA卒業して本職のITエンジニアになった方が稼げるからねえ
向上心がありすぎてもいけない、中途半端なツールなので
915:デフォルトの名無しさん
25/06/03 21:09:44.47 Kk3A2bVT.net
チンタラ残業代稼いでる人にとって効率化は最大の敵
VBAにしろRPAにしろ最大の抵抗勢力よ
916:デフォルトの名無しさん
25/06/03 22:04:21.82 gr7bEf2i.net
>>872 で愚痴って終わりなのもアレだから一応書いとく
・事象
FileSystemObject.TextStream.ReadLine と ADODB.Stream.ReadText(adReadLine) が同じ結果にならない
・原因
改行コードが CRLF と LF が混じったお行儀のよろしくないファイルだった
・対処
LineSeparator = adLF として Replace(ReadText(adReadLine), vbCr, "")
とやったらOKだった
917:デフォルトの名無しさん
25/06/03 23:26:25.06 aKU11sxP.net
>>897
Microsoftのマニュアルよりも詳しい説明
ADODB.Stream: URLリンク(atsumitm.iobb.net)
TextStream: URLリンク(atsumitm.iobb.net)
918:デフォルトの名無しさん
25/06/03 23:46:58.61 gpacmpqZ.net
>>894
VBAは比較的間口が広くてとっつき易い言語ではあるとは思うよ
ただ、何の言語でもそうだけど教える人がいると受動的になりがちで聞いてりゃ分かるようになると思ってしまうのはマズい
聞いてりゃ分かるようになる言語なんて存在しない
分かる人が少ないのは結局、VBAを本当に必要であることを迫られる立場に無いからだと思う
VBA出来なきゃ今いる会社をクビになるくらいに迫られたら大概の人は理解する
でも教えてくれる人がいるということは恵まれたことだと思うよ
このスレにいる大多数の人は恐らく独学で仕事場で使えるようにならざるを得なかった立場なんじゃないかな
919:デフォルトの名無しさん
25/06/03 23:58:42.71 /ZJ1mBw3.net
>>899
私も完全独学で覚えました
というプログラミングは独学で学んでいる人ばかりではないのですか?
プログラミングスクールは役に立たないし、かと言って会社は教えてくれない
920:897
25/06/04 00:06:22.21 /Ak3M73b.net
>>898
このサイトぐぐるとよく見かけるようになったけど、詳しすぎて理解できないw
921:デフォルトの名無しさん
25/06/04 00:40:57.38 b8XC2mTd.net
自学できない人はダメだよね
922:デフォルトの名無しさん
25/06/04 05:30:19.54 3c6clsCg.net
独学って、大半の人は言語に固有の文法と、開発環境に依存する実行方法を覚えただけでしょ
だからデータ型の違いとか文字コードとかアルゴリズムとかファイルシステムとか、基本がわかってないから別の言語に手を出せない
923:デフォルトの名無しさん
25/06/04 06:02:44.09 /hC9EQXc.net
ここ見てりゃわかるけど、コピペで動いて偉くなったつもりの馬鹿ばっかだから
924:デフォルトの名無しさん
25/06/04 07:11:35.77 jKpT1SFo.net
>>903
そうね
それはその通りだと思うわ
だから>>894の言ってる教えている人が
そもそものVBAの基本的な型やら
分岐や演算とかよく使うObjectの扱いとかを
最初に教えていることを切に願うわ
925:デフォルトの名無しさん
25/06/04 07:34:51.95 BFbm2+Cn.net
>>900
覚えるのは自分、教わったのに覚えてないようでは学べてない
あと文法は覚えてもアルゴリズムは考えるもの
教わってないからできないって言ってるのは初心者以下な
926:デフォルトの名無しさん
25/06/04 07:44:26.54 f2CAL3f8.net
やる必要性がないからやらないけど、Pythonが簡単というならPythonだってわかる気がするし、C言語がFor eachもない様な単純な言語だというならそれはそれでできそうな気もする(Copilotがあるから尚更)。
ローコードにしろスクラッチにしろそれは同じ。
既製品のソフトウェアを導入するか、VBAで作成するかならどちらが安いと思いますか?
もしVBAの方が安いなら世の中マクロだらけだと思うのです。
927:デフォルトの名無しさん
25/06/04 08:21:45.39 B6zQeN2g.net
誰も責任を負いたくない、率先して矢面に立ちたくない方々だらけだから
928:デフォルトの名無しさん
25/06/04 08:50:54.30 yTwvetl9.net
>>907
マクロだらけだよ
それらを管理する人(作成者)が抜けていくから管理不能になる
そういった事象を解決する銀の弾丸としてRPAやノーコードツールが喧伝されたけど、
管理する人がいないって意味では同じなので同じことが繰り返されてる
929:デフォルトの名無しさん
25/06/04 10:16:27.04 pOYKhOcI.net
>改行コードが CRLF と LF が混じったお行儀のよろしくないファイル
CSVなら普通にあるな
行儀の問題じゃない
930:デフォルトの名無しさん
25/06/04 10:36:26.59 yTwvetl9.net
行儀だよ
少なくともRFC上においては行末がCRLFであると規定されてる
ファイルの最後のみがどうでもよい
931:デフォルトの名無しさん
25/06/04 11:22:31.03 ZuFYF6Nx.net
>>907
どっちが安いって、保守コストまで考えて言ってる?
そりゃ作りっぱなしならVBAのが安上がりだけど、それじゃ後で困るって話をしてるんでしょ
932:デフォルトの名無しさん
25/06/04 12:21:29.23 pOYKhOcI.net
LFは行末じゃないよ
933:デフォルトの名無しさん
25/06/04 14:36:42.79 p0LJP29f.net
CSVの行改行と項目内改行が使い分けられてないわけが無い
使い分けられてなければ復元不可能になる
934:デフォルトの名無しさん
25/06/04 14:39:56.22 p0LJP29f.net
>>914
"あれば可能だが無いの見たことあるのよね…
935:デフォルトの名無しさん
25/06/04 16:28:29.01 3c6clsCg.net
標準の改行コードはOSによって違う
CR、LF、CR+LF、LF+CR、すべてのパターンが実在する
フィールドに改行やコンマを含めたい場合、レコードの区切りと違うコードを割り当てる場合もあれば、クォートなどの記号でフィールドの範囲を明示する場合もある
Windows版Excelはダブルクォートでフィールドの範囲を指定するのが基本