Excel VBA 質問スレ Part82at TECH
Excel VBA 質問スレ Part82 - 暇つぶし2ch402:デフォルトの名無しさん
25/04/23 05:33:09.52 pTAtgk9D.net
>>386
今は転記元セルのアドレス列と転記先アドレス列の対応リストを作成して、range(セルの値).value = range(セルの値).value みたいな事をして転記しています
後から知ったのはreplace(転記先文字列,転記先文字列,差込文字列)ですね

403:デフォルトの名無しさん
25/04/23 06:36:06.92 curLR6rF.net
よく使うコード片をコピペ用にストックしておくとかは、システム開発のそもそも論とはちょっと方向性が違う気がする。

404:デフォルトの名無しさん
25/04/23 06:51:21.87 rRnnFJi1.net
金出して買った本にそんな事書いてあったらゲンナリするわな

405:デフォルトの名無しさん
25/04/23 07:29:09.67 Y1IHhqLd.net
よく使うならライブラリとか関数とかで既存処理を使い回せばいい
必要のないコードを書くのは逆に無駄だろう

406:デフォルトの名無しさん
25/04/23 07:31:04.25 Y1IHhqLd.net
インポート、エクスポートのことか?

407:デフォルトの名無しさん
25/04/23 07:34:29.45 8e00UwyI.net
>>390
Accessは開発終わるからもう新しくなることないもんな

408:デフォルトの名無しさん
25/04/23 08:04:22.51 xgsAirMR.net
>>398
繰り返し流用するようなコードやブロックは、
それこそ標準モジュールやクラスモジュールにするでしょ
ユーザー辞書にプロパティやメソッドを追加?
VBE上のctrl+spaceで大体のことは解決するだろ
目指してる方向が正に自称VBAプロ、明後日向いてるよ

409:デフォルトの名無しさん
25/04/23 08:10:30.40 pTAtgk9D.net
>>405
ショートカットキー
知らなかったです

つい最近複数行選択からのタブで一括インテンドができると知りました

一括でインテンドを減らす方法ないですか?

410:デフォルトの名無しさん
25/04/23 08:12:10.74 pTAtgk9D.net
>>402
ライブラリという名前はよく聞くのですがなんでしょうか?
アドオンに登録すればいいという事も聞くのですが、アドオンだと配布がいくらか面倒になるのが悲しいです

411:デフォルトの名無しさん
25/04/23 08:19:48.48 xgsAirMR.net
>>406
Is the intended word an indentation?
インデントを減らすにはshift+tab
本より先にヘルプファイルを読もう

412:デフォルトの名無しさん
25/04/23 08:31:17.24 curLR6rF.net
ライブラリというのは、ざっくり言えば汎用的に使う目的で作られたクラスとか関数とかを集めたモジュール等のことだけど、正直言って、ライブラリを使ったり作ったりという辺りから、わざわざVBAでやらなくてもいいかなぁとなることが少なからずあるような気がする。

413:デフォルトの名無しさん
25/04/23 08:32:23.99 pTAtgk9D.net
本格的なシステム開発の手法を勉強しなくてもできる、じゃなくて我流Excel、我流VBAが属人化の原因で、属人化が嫌われているんだから、本物の手法を学んで少しでも標準化に努めた方がいいと思う

414:デフォルトの名無しさん
25/04/23 09:19:54.75 P67C9oqU.net
そういうことを言い出したらVBAは使うべきではないという結論にしかならないからナンセンス
VBAなんか雰囲気でいいんだよ雰囲気で

415:デフォルトの名無しさん
25/04/23 09:24:11.20 yoO2Q6CW.net
VBAで描くとどうせ属人化するんだからVBAじゃなくてPythonの方が描きやすい罠

416:デフォルトの名無しさん
25/04/23 10:07:14.33 Rdf0901h.net
VBAが属人化の弊を指摘されやすいのは、VBAの強みの裏返しだからなぁ。Excelは大抵の業務用PCに入っているからプログラミング言語として最もアクセスしやすいというのがVBAの強みだけど、これは裏返せば①相対的にスキルの低い人がコードを書き、②そのコードが業務に使われるという状況を生みやすくする原因となっている。これに③会社側が追加的なコストを掛けるつもりがないという条件が加わったのがいわゆる属人化。乱暴に言えば、素人が作ったコードが業務に使われていて、タダだからそのまま使い回したいという会社側の助平心に過ぎない。
会社がそれなりのコストを掛けて業務に使うコードを開発するのならVBAと同じような意味での属人化というのは基本的に起きないのよ。そもそもそういう場合にVBAが開発言語に選ばれる可能性は低いだろうし(Excelだけで完結させたいという状況はもあるだろうからゼロとは言わないけれど)。

417:デフォルトの名無しさん
25/04/23 10:13:34.84 Rdf0901h.net
408が一瞬分からなくて焦ったけど、unindentationか

418:デフォルトの名無しさん
25/04/23 10:19:50.71 j86zZac8.net
あなたのよく使うコードと私のよく使うコードが違うからな
自分で使い回しやすいようにまとめたらいい

419:デフォルトの名無しさん
25/04/23 11:24:31.44 nS6nWMWO.net
食人族の話題が活発だなと空目した

420:デフォルトの名無しさん
25/04/23 11:32:10.92 FBWMxycZ.net
結局、個人が自分の担当業務を勝手にVBAで局所最適化している構図なので、VBA自体がいかにわかりやすく書かれてようが定義上属人的なんだよね
人力で愚直にやる分にはやってることが周りの目にも見えやすいから、特定の個人の作業負荷が高かったり過大な責任を担っていたりしたら、
適宜マニュアル化して分担するような対応を取りやすい
一方、ヘタに担当者の「創意工夫」によって効率化されてるとそういった潜在的な課題が表面化しづらく、いざ担当者が離任するとなったときに一気に問題が噴出するわけだ
こういう問題に対するシステム的な正道のアプローチは決まっていて、勝手に創意工夫させしない、現状が非効率であるという事実だけを然るべき場所へ報告させる、
その上で、必要な改善はトップダウンで実施する、という極めてアメリカ的なやり方になる
こんなのはカイゼンを美徳とする日本人には無理な話だから、難しいこと考えないで存分にVBAで好きなように創意工夫したらいいよ

421:デフォルトの名無しさん
25/04/23 13:49:06.15 jU97Lp8p.net
VBA共通モジュールやEXCEL共通モジュール、ACCESS共通モジュールは分けて作っといたらいい

422:デフォルトの名無しさん
25/04/23 16:59:43.12 aZ5FmP34.net
個人が勝手に自動化させてる環境なんて、社員10~20人程度の規模の企業だろ
そんなトコは将来何に躓こうがどうでもいいハナシでは?
その規模でもきちんと社内で話し合って最適解を求めてる所なら属人化なんて杞憂にしか過ぎないような

423:デフォルトの名無しさん
25/04/23 17:21:41.74 P67C9oqU.net
大企業でも普通にあるぞ
完全にマニュアル通りに手を動かす人員を別にすれば、
大企業だろうと適切なアウトプットだけ出せればやり方については個人の裁量に委ねられている業務の範囲ってのはある

424:デフォルトの名無しさん
25/04/23 18:06:06.77 yoCsfqhD.net
組織内のルールならその枠内で守ればいいのである
そのルールがよその組織でも当てはまるとは限らんのでな

425:デフォルトの名無しさん
25/04/23 20:15:32.24 6pqdvTOr.net
大企業で属人化されてても困ることは無いだろうから
やっぱり属人化をつべこべ言って�


426:トも始まらないのでは? 属人化された業務・作業なんか別の者がまた新たに属人化しようとも 業務に支障が出ないんだろ? じゃあ、属人化が何だってんだ 属人化言いたいだけちゃうんか、と



427:デフォルトの名無しさん
25/04/23 20:59:10.18 pTAtgk9D.net
やっとディクショナリーにテーブル名と列名でキーを登録して、アイテムにListColumns(index).Databodyrangeで各列のデータ行が登録できて、dictionary(テーブル名列名).Rows(index).valueで値を書き込めるって知ったよ
これでテーブルをいちいち変数に代入する事から開放されるし、わかりやすい文字列で指定もできる

Range(テーブル名[列名])でいいじゃんって言われたらそれまでだけど

428:デフォルトの名無しさん
25/04/23 21:23:04.79 rRnnFJi1.net
同形式のテーブルが大量にあるのなら
まずそれがおかしい

429:デフォルトの名無しさん
25/04/23 21:26:55.40 Rdf0901h.net
属人化っているのは、要するに会社から見て素性の分からないコードに会社の業務が依存している状態なわけ。大企業なら属人化が生じても困らないとか、業務に支障が出ないということでは全然なくて、大企業でも(普通はおよs考えにくいことだが)万一、属人化が生じたら当然困るよ。ただ、大企業は通常そんなリスキーなことはしない、させないような組織になっているというだけ。
大企業のコア業務の一部が素人の書いたVBAコードに依存していて、他の人が手を出せないブラックボックスになっているとか(論理的には絶対に起こり得ないというわけではないけれど)考えにくいでしょ?

430:デフォルトの名無しさん
25/04/23 21:42:20.56 jOg2yMv5.net
メーカーの間接部門だけどVBAは改善提案やQC活動と相性が良すぎる
あと依頼者からのユーザーフォームの人気は異常

431:デフォルトの名無しさん
25/04/23 22:06:24.94 pTAtgk9D.net
>>424
だってテーブルの列名で指定したり、動的に処理するのが非常に楽なんだもの
ws.cells(rows.count,index).end(xlup).rowとか
ws.cells(i,index).valueとか
いちいちやってらんない
私がまだまだ技量不足なだけですが

432:デフォルトの名無しさん
25/04/23 22:15:43.12 pTAtgk9D.net
IT企業や大企業に夢見すぎだと思いますよ
IT企業だって社員は打ち合わせ、打ち合わせ、打ち合わせか、コーディングしているかで、事務作業の為の業務システムの導入なんてしていないし、パソコンに詳しいからこそExcelはなんでも出来ちゃう事を知っている。
非IT企業はまるで知識が知識がないし、業務システムを導入しても、自社の業務、求めているデータに対応していないから結局Excelに戻るという事もある。

433:デフォルトの名無しさん
25/04/23 23:03:29.52 pTAtgk9D.net
人間関係、人付き合いはとてもドライだし、自分で努力してね、自己責任、な世界です

434:デフォルトの名無しさん
25/04/23 23:04:31.48 C26MOp3K.net
いや、業務システムを導入しているかどうかとか、そういう話ではないんだが。業務なんか別に会社で認められているものなら何でやっても構わないでしょ。
VBAみたいなものの使用を全面的に禁止するか、個人の裁量の範囲内で使うのは認めるかは会社の方針によるが、業務がそのコードに依存するなら会社がハンドリングするし、会社がハンドリングしないならそのコードに業務を依存させることはしない。そういう単純な話ね。
ちなみに「Excelは何でもできる」と素朴に言うけれど、それは何でも無意味にVBAでやりたがる人がよく言う典型的な台詞の一つなので、あまり気軽に言わないほうがいいと思う。

435:デフォルトの名無しさん
25/04/23 23:14:03.52 x5rMH1z1.net
長文書き込みを繰り返している頭がおかしいのが出没してるのは暖かくなったから?

436:デフォルトの名無しさん
25/04/24 07:36:15.53 FQ8MlmAt.net
今年の新人や後輩が言うこと聞かなくてイライラしているんじゃね
Excelはただの道具だよ、会社に迷惑をかけた場合の責任は、担当者と監督している上司の責任ってだけだから

437:デフォルトの名無しさん
25/04/24 08:05:36.45 Cj39D1EW.net
たかが数行十数行読み解けないじぶんを省みた方がいい
長文ってだけに文句付ける奴の方がどうかしてる
気心知れたとか同じ立ち位置に居るとか同士なら少ない言葉で通じるかも知らんが
今や登場人物も幅広い 参加する方々のレベルだって自ずと雑多に成ろうってもん
三でやり取りできる相手だけじゃ無く七語った方が意が通じるケースのが多い
いまどき、長文はあたまおかしい、と書く方こそがアタマおかしいと気付けないと

438:デフォルトの名無しさん
25/04/24 08:40:44.27 BUdDOmv5.net
>>433
読んだ上で言う
文章をまとめられるスキルが無い自身も恥じた方が良い

439:デフォルトの名無しさん
25/04/24 09:00:57.54 YvggNev5.net
>>427
コレクションに格納するんだから要素に画一的な処理をするのだろうと勝手に勘違いしていました
余計なお世話でした
申し訳ありません

440:デフォルトの名無しさん
25/04/24 09:33:11.41 IyU3bUgg.net
ChatGPTに文章校正してもらうと良いよ

441:デフォルトの名無しさん
25/04/24 12:38:29.59 Cj39D1EW.net
w 要らんな 文章書くことが目的じゃあ無いからな 意が伝わりゃあそれでいい
どだい、ブラックボックスではないアプリなど無い
都合のいいExcelをより便利に使うためのマクロだのVBAだのなんだから、個人が
「こうしたらもっと便利だな」で造り上げた小アプリだと思ってれば憎しみも湧かん
業務上なら尚の事、元のデータが存在していてそれを加工して成果物として出力、の一環なんだろ?
これはこうしてこう集計・抽出してこういう形式でまつめろ てのが命題なんだから
退職されてVBAの中身が判らん!とか文句付けてる間にじぶんで新たに作り直せ、と
作れる人間が不在なら諦めて以前の方式でチマチマ手でその処理をし続けろ、と

個々の企業の事務業務で独自にカスタマイズできる利便性を捨ててしまったら元の木阿弥
属人だの何だの言い出した奴は、Excelにがんばって欲しくない界隈の連中の戯言でしかない
ラクトアイスが体に悪いだのネ○ソフトはマーガリンじゃ無いから口にするな、とかの連中みたいなもん
(お食事時なのでつい食品で例えました)
じぶんトコの業務アプリに自信があるならVBAの属人性なんかを口実に叩くのはやめて
堂々と「ウチの製品のがこんなに便利ですよ」と言い募ればいい 本当に便利なら自ずとそちらに流れる

442:デフォルトの名無しさん
25/04/24 13:07:35.16 BUdDOmv5.net
>>437
馬鹿だから文章をまとめられず、
それ故に読まれない責任を相手に押しつけるタイプだな
二行目はOSSがあるって反例により破綻
命題の使い方もおかしい
何か言ってるようで何も言ってない典型的な馬鹿
黙ってることすらできないのが馬鹿の馬鹿たる所以

443:デフォルトの名無しさん
25/04/24 13:42:20.52 ndm7u60W.net
「Excelは何でもできる気がする」
中学生日記

444:デフォルトの名無しさん
25/04/24 14:17:57.47 IKFgVNqa.net
437を擁護するわけではないが、実際、担当者個人の裁量の範囲内で使っているだけなら、会社の業務が依存したり属人化の弊害が生じたりすることはあまりないんだよ。
にも拘らずVBAを全面的に禁止する会社が少なくないのは、部署内の他の人間も同じコードを使うようになったりする事態がたびたび起こりがちだからなんだろうね。

445:デフォルトの名無しさん
25/04/24 14:27:23.83 d0sUSPt9.net
>>439
わかる気がする、仲間だもんな
仲間、仲間、なーかーま


446:ー



447:デフォルトの名無しさん
25/04/24 16:13:34.27 jkAUiXuj.net
長文をこんなところに大量に書き散らすだけあって馬鹿の極みそのもの
そもそも働いたことがあるのかね

448:デフォルトの名無しさん
25/04/24 17:18:18.39 Cj39D1EW.net
会話が通じないなら、いちいちアンカ打ってまで絡んで来ンなよw 気色悪いなあ
ハナシが通じない残りの三割ってことでいいぢゃねーか
電車で隣の会話にいちいち割り込んで「正確な会話をしろ」とかイチャモン付けるタイプか?
文章文章って、国語の教員か? おてがみやり取りしてる訳じゃねーぞw 宿題でもねーし

OSSガー 突飛な例えで何が言いたいんだか あんたの会社はOSSで業務アプリ組んでンのか?
枝葉末節にこだわって本質を把握できない、つか、しようともせず、他人の揚げ足取りだけに注力して
勝ち誇ったような気分になってご満悦 どっかのバカな芸人がそういう話芸で人気を博して有頂天に成ったはいいが
今や誰からもどこからもお声も掛からない憐れな人生歩んでるようだが、ソッチへ寄り添った生き方目指してンのか?

449:デフォルトの名無しさん
25/04/24 17:31:20.41 Xkh5MdoU.net
>>440
大昔のVBAマルウェア「メリッサ」で痛い目に遭い禁止して、
それを見直すこともなく踏襲し続けてるところが全面禁止にしてる

450:デフォルトの名無しさん
25/04/24 17:51:26.09 IKFgVNqa.net
>>444
もちろんセキュリティ上の理由は大きいだろうね。見直すこともなくというより、そういう会社はVBAの有用性をさほど高く評価していない(少なくともリスクを上回るほどの有用性があるとは考えていない)から全面禁止にしているんだと思うよ。
経営判断としてはあり得る考え方の1つだとは思う。

451:デフォルトの名無しさん
25/04/24 19:41:44.24 9Ww3k6uP.net
誰にでも簡単に扱えて不具合もバグもない業務用ソフトと言うのはできる事を制限している業務用ソフトしか無いと思う
入力出来る事、場所に制限をかけているから誰がやっても出鱈目なデータにもバグにもならない
逆にExcelは本当になんでも出来るから壊すし、壊れるし、出鱈目なデータも入力する

452:デフォルトの名無しさん
25/04/24 20:09:51.89 DzE0RqCV.net
VBAで関数の値が入った配列を作りたいのだが、
e = [{1,0;0,1}]
r = [{Cos(1),-sin(1);sin(1),cos(1)}]

eは2x2の配列になる。
rはエラーになる。
ああいう配列作れないかな?

453:デフォルトの名無しさん
25/04/24 20:49:12.55 Xkh5MdoU.net
array関数使え

454:デフォルトの名無しさん
25/04/24 20:49:52.86 9Ww3k6uP.net
>>447
どう言う配列でしょうか?
関数の計算結果が入った1次配列でしょうか?

455:デフォルトの名無しさん
25/04/24 21:45:53.65 pk6Uyn00.net
話題かわるけど、exce.live使ったことあるやついる? 今日、お客さんから聞かれたんだけど、本家以外の情報が皆無で。マイクロソフト公式からダウンロードできるから、怪しくはないと思う、とだけ言っておいた

456:デフォルトの名無しさん
25/04/24 22:02:59.97 xYJ9bO0b.net
>>443 Forbidden

457:デフォルトの名無しさん
25/04/24 22:06:30.71 hG5Dm3ai.net
>>450
話題どころかスレ違い

458:デフォルトの名無しさん
25/04/24 22:26:01.96 9Ww3k6uP.net
Static ステートメントとか、ParamArrayとか、まだまだ知らない事だらけだなぁ

459:デフォルトの名無しさん
25/04/24 22:34:31.26 pk6Uyn00.net
vbaの質問だからここかと思ったけど、違うのか

460:デフォルトの名無しさん
25/04/24 22:40:35.14 y97YKOAy.net
>>454
VBAじゃないけど何を見てVBAだと思ったのか

461:デフォルトの名無しさん
25/04/24 22:43:45.46 pk6Uyn00.net
元々はインターネ


462:ットから自作vba関数を呼べるか?というお客さんの質問から、それにたどり着いたんだけど、スレ違いならまあいいや。誘導先あればよろ



463:デフォルトの名無しさん
25/04/24 22:48:56.22 pk6Uyn00.net
それかvbaのコードで代替手段があれば、それを教えて貰うほうが嬉しいが

464:デフォルトの名無しさん
25/04/24 23:34:51.71 9Ww3k6uP.net
>>456
Power Automateからデスクトップ版Power Automateのフローを実行して、マクロブックを開いてマクロ実行

465:デフォルトの名無しさん
25/04/24 23:40:15.35 d0sUSPt9.net
URLリンク(i.imgur.com)

466:デフォルトの名無しさん
25/04/25 06:34:58.46 dnInGKcO.net
自分の業務を少しでも助けるためのマクロを書いてたのだが、
そろそろoffice script に移行しようとしてつまづきまくり

467:デフォルトの名無しさん
25/04/25 07:29:28.50 /g0CbH00.net
vbaのフォームが古臭くて嫌なんだけど

468:デフォルトの名無しさん
25/04/25 09:31:20.86 TZkMTXnM.net
ラベルとテキストボックス駆使して自作できるよ
何なら図形とか画像とか貼り付けて工夫してもいいし
それらをクリックすることで別の動作させるとかも
ま、センス無いとずっと使い続けても飽きないフォーム作るのは大変だし
やっぱ奇抜過ぎて評判悪くてオーソドックスに立ち返るなんて経験もいいのかも

469:デフォルトの名無しさん
25/04/25 10:00:05.67 CvA5DtPe.net
モダンUIに寄せたい気持ちはわかる
今時Windows2000かよ!みたいなダイアログが出てくると驚く

470:デフォルトの名無しさん
25/04/25 15:12:56.80 25bmG4NH.net
細部にこだわるか、正常に動けば良いのかは人によるだろうな
もっと優先してやることはないのか?

471:デフォルトの名無しさん
25/04/25 19:40:58.08 orbf6qCm.net
VBAと同じくらい簡単でモダンっぽいUIにしたい場合って、今は何を使うのがいいのかな。Pythonのfletなんかはかなり簡単っぽいが。

472:デフォルトの名無しさん
25/04/25 19:49:49.85 ScCl4KIR.net
VisualStudioでVB.NETやろ

473:デフォルトの名無しさん
25/04/25 19:56:48.42 DbDcSEbW.net
ノーコード/ローコードでいいだろ
MS365の契約あるならPowerAppsから試してみたら

474:デフォルトの名無しさん
25/04/25 21:21:31.07 235iTcZf.net
fletはたいしたことしないならさくっと作れて良い

475:デフォルトの名無しさん
25/04/26 09:23:31.77 hSaHsy30.net
VBAは簡単、プログラミング言語ですらない

VBAは属人化する、しやすい

見事な矛盾だね

476:デフォルトの名無しさん
25/04/26 09:50:16.77 kN9FmZ13.net
>>413にあるとおりだよ。コードを書く人間にきちんとしたスキルがあり、会社側にまともな管理体制があれば、基本的に属人化の問題というのは生じない。VBAは構造的にどちらの条件も欠きがちだから、属人化の問題が指摘されやすい。それだけの話。

477:デフォルトの名無しさん
25/04/26 09:58:22.07 iRBbkycD.net
そう、つまるところバカが使うからバカなものができるってだけの話で、何も矛盾しない
ただ、仕事でバカとかクソとかいう表現は憚られるから「属人化」(=他人が触りたくないクソ)と表現する

478:デフォルトの名無しさん
25/04/26 11:19:16.93 SDFKeMf3.net
まだやるのか? やるなら先ずは「属人」てのを定義しろ
それの延長で属人的・属人化って奴を述べろ
若しくは「VBAは属人的だから悪だ」ってサイトのリンク貼るでもいいし
それを踏まえたうえで語らなきゃ、個人の勝手な思い込みを主張してるだけに成り果てて
それこそ「モノホンのバカ」だろ ぼくはバカですって書いてるに等しい

479:デフォルトの名無しさん
25/04/26 12:23:43.88 B+cR9sp6.net
自分の意見は>>413、425、430辺りに既に書い


480:たし、自分の意見と必ずしも一致する見解ばかりではないが、「VBA 属人化」で検索すればいくらでもこの話題は出てくるでしょ。 VBA好きな人が属人化の話題を避けたがるのは分かるんだけど、他の言語と比べて属人化の問題を指摘されることが顕著に多いということまで否定しようとするのはさすがにムリがあるよ。属人化が指摘されることが多いというのは、ハードルの低さ・アプローチのしやすさという強みの裏返しなんだけどね。



481:デフォルトの名無しさん
25/04/26 12:44:03.71 aliF/5Yp.net
異動や退職するときvba消していってほしい。

482:デフォルトの名無しさん
25/04/26 13:08:06.04 TbcyjxDY.net
OSから初期化やろ

483:デフォルトの名無しさん
25/04/26 15:51:46.44 IX/fzv3g.net
>>473
その理屈だとCでもRustでもPythonでもRubyでも属人化する訳だが
VBAは参入障壁が低い(んだろうと思う)ことが属人化に拍車を掛けてる罠
(要するに馬鹿でも使えるってこと)

484:デフォルトの名無しさん
25/04/26 16:45:09.66 lLp4rKiB.net
これに限らず仕事全般に言えるけどセンスが全てだわ
本で知識だけびっしり学んだだけの自称VBA出来ますの作るシステムは使い物にならん
というかシステム組む頭すらないし

485:デフォルトの名無しさん
25/04/26 17:07:15.54 B+cR9sp6.net
Rustみたいに書くこと自体が難しいとされているような言語はともかくとして、PytnonやRubyが今のVBAと同じような感じでExcelに組み込まれて、Excelで実行できたとしたら、たぶん今のVBAと同じような感じで属人化の問題を指摘されることになったと思うよ(そこからのリカバリーはVBAより多少はマシかもしれないが)。

486:デフォルトの名無しさん
25/04/27 09:59:46.14 HBc7xJ0o.net
僕はもう書いただの検索しろだのは話をややこしくする元だから定義しろと書いたんだが
今書かれてる「属人化」てのは、有頂天になった社員がVBA駆使して作業を自動化したはいいが
そいつが退職したら他の誰もがそのメンテ出来なく成って業務大混乱右往左往 てコトでいいのか?

じゃあさ、他の例えで、自動車免許持ってる奴が仕事で車使って仕入だ配達だに奔走してくれてた
しかし、そいつが辞めて他の社員は免許持ってる奴が誰一人居なくて業務に支障が出まくり も属人化か?
そン時は会社としてはどう対応したらいいんだ?
自転車に積んで何十回も往復するなり、外注下請けに作業を委託するなり、免許持ってる奴を募集したり
どうとでも好きな方法選べるだろ?
それを殊更「属人化」とか特殊な事例として言い募る界隈には、どんな思惑があるんだ?
VBA憎し君が広めてるとしか思えんのだが

それとも「VBAの属人化」には何か他の意味があるのか?

487:デフォルトの名無しさん
25/04/27 10:51:58.45 PEcsUA/t.net
話をややこしくするじゃなくて、VBAは属人化の問題を指摘されることが多いということを認めたくなくて必死なだけでしょ。
君が挙げた例は、世間でVBAによる属人化の弊害として一般的にいわれている状況と、結果こそ類似するが原因がまったく異なる。
したがって、VBAについて指摘されることの多い属人化と同様の原因に基づくものを「属人化(の弊害)」と呼ぶことにするのであれば、君が挙げた例は「属人化(の弊害)」ではない。

自動車の運転は、運転免許制度によってそれをする人のスキルが保証されているでしょ(VBAと違って)。
また、自動車の運転は、腕の足りない人間がその方法を勝手にカスタマイズしたりすることもできないでしょ(VBAと違って)。
自動車の運転が業務上必要不可欠で業務がそれに依存しているなら、そのことは外形上会社側に明らかだから、会社側はハンドリングの機会も保証されているわけ(VBAと違って)。
大体さ、VBAと違って自動車の運転一般について「属人化(の弊害)」が語られることなんてほとんどないでしょ。その時点で自分の強弁にムリがあると気付かんか?

VBAが属人化の問題を指摘されることが多いということを認めたくなくて色々と


488:言い募るのはいいんだけどさ、説得力のないことを書けば書くほど「VBAに強い拘りを持つ人って、やっぱりそういうレベルなんだな」という見方を補強することになりかねないよ。 「VBAはExcelユーザーに最も近い親しみやすい言語、属人化をいわれることが多いのはその代償」ってことで良いじゃない。



489:デフォルトの名無しさん
25/04/27 10:57:39.63 bnOAlujA.net
>>479
運転とプログラマーじゃ、代わりを探す労力に差がありすぎる

免許持ちもVBAが書けるやつもいくらでもいるが、他人の書いたプログラムを解読して修正できるやつってのはちょっとレア
しかも、多くの経営者はこれが特殊スキルと思ってないからそんなとこにコストをかけたくないってのが本音
だから問題になる

490:デフォルトの名無しさん
25/04/27 11:08:15.27 aTGSLIj0.net
NGワードに属人化を入れることでスッキリさせることに成功

491:デフォルトの名無しさん
25/04/27 11:08:56.65 RSOujG5D.net
いやいや、スキル的にできる奴は山ほどいる
問題は、やりたい奴が極めて少ないという点だ
まともなプログラミングスキルがあるならもっと面白くてスキルアップできる仕事が山ほどあるのに、安い賃金で誰にも評価されずスキルアップにも繋がらない便所掃除をやりたがる奴はいない

492:デフォルトの名無しさん
25/04/27 11:27:31.76 aTGSLIj0.net
ちなみに個人事業主やってて、
どこぞのVBAで抜き差しならなくなったものを書き直して仕様書と併せて納品
あるいはPythonに移植して仕様書と併せて納品してるけど、
おまいらの想像以上に良い金になる
濡れ手に粟

493:デフォルトの名無しさん
25/04/27 11:43:54.54 PEcsUA/t.net
会社側もよほど切羽詰まっていたんだろうねえ。
大局的に見れば抑えられたはずのコストだろうけど、484みたいにそれで儲かっている人が居るならそれはそれで良い話だ。

494:デフォルトの名無しさん
25/04/27 14:49:25.30 rRExk4WB.net
運転でもうまいやつとへたなやつがいるだろう
VBA使いにはプログラミングやシステム設計がへたなやつが多いということ

495:デフォルトの名無しさん
25/04/27 15:15:18.84 0hsNeEWH.net
適当にかじって自分用に作ってるからな

496:デフォルトの名無しさん
25/04/27 16:07:51.42 SWrT9XSV.net
逆引き大全買っちゃった

497:デフォルトの名無しさん
25/04/27 16:31:38.91 HBc7xJ0o.net
君が挙げた例は「属人化(の弊害)」ではない。 だから、定義しろっつってんの
じゃあ、どういうのがVBAの弊害と世間一般では言われてんだよ?って聞いてんの
コッチが例え話すりゃあ「それはちがう」 単なる例え話だぞ? 免許が特殊な技術的国家資格とかでもいい

ウエが阿呆だから現場でそんなてんやわんやが発生すると書いた人が居るけど、その通りの事を言ってるんだ
上長がしっかりして、そういった個人技術を全体に普及・波及する努力をしてりゃあ、誰が抜けたところで
即座に困る事なんかほぼほぼ無いんだ 鼻くそ丸めながら「なんか知らんが勝手な事してる奴が居るなあ」
でのほほんとしてるから、いざ退職されてから困り果てる
そんな会社は潰れたって構いやしないだろうに
それが例えば従業員数百人規模の会社だろうとだ ま、数千人規模でもおんなじだけど

ご利益にも繋がらないような「VBAは属人的」なんてぇお題目唱えてるだけで、何らの解決策も講じないような
スカポンタンな集団が蔓延るのが鬱陶しいんだ 六根清浄と唱えてる方がまだご利益ありそうだろ 違うか?
なんか知らんがその辺に転がってる耳触りだけはいいビジネスワードを、これ見よがしに口真似して
その本質を見ようともしないで得意満面な奴は、ぶっ飛�


498:ホしたくなるってだけ ひと頃流行った「悩ましいですねえ」とかと一緒 (一生悩んでろ、ボケ)と罵ってるようなもの 「一旦社内で揉んでみます」とかなら、まぁまだ分かるが



499:デフォルトの名無しさん
25/04/27 16:39:50.30 HBc7xJ0o.net
VBAは属人的 とはつまり、事務業務に根本的な問題がある企業のくせに
責任を末端に押し付けるブラック体質だと、自ら公言してるに等しい阿呆責任者の言い逃れに過ぎない

500:デフォルトの名無しさん
25/04/27 17:10:22.95 9974j3MB.net
属人化って要するに担当者が意地悪してるだけやん?
使い方をちゃんと教えてくれて、ソースもパスワードかけずに公開してたら読めるヤツは読むぞ
コピペしか能のない奴には他人のソースが読解できないってだけの話やら?

501:デフォルトの名無しさん
25/04/27 17:19:04.92 oHyIRNV3.net
多くの場合、VBAは大したことやってないのに担当者のスプログラミングスキルの低さ故に無駄に複雑かつ保守性の低いものになっており、
後から他人が読み解いてメンテを継続するのは非常にコスパが悪いケースが多い
コスパ的には多くの場合において棄てて仕切り直した方がマシなのだが、とはいえ中途半端に自動化されているため、いざ棄てると一時的にそれなりの業務効率の低下が生じる
その業務効率の低下量をVBAにおける「属人性」と定義するのがよろしい

502:デフォルトの名無しさん
25/04/27 17:39:11.20 PEcsUA/t.net
>>489-490
VBAは属人性の問題を指摘されることが多いというのをどうしても否定したいんだね。「VBAに強い拘りを持つ人って、やっぱりそういうレベルなんだな」という印象は強まるばかりだけど。
会社側がきちんと管理できる体制なら属人化の問題は生じないというのは最初から書いているでしょ。だからこそ、VBAの属人化リスクが広く認識されるようになった今では、多くの会社が、VBAを全面的に禁止するなり、個人の裁量の範囲内でのみ許可したりという形で対応しているんだよ。
会社の多くはVBAの属人化リスクを認識して既にその対応をとっているわけで、属人化リスクが高いということ自体を否定したがる君のような議論ははっきり言って周回遅れなんだよ。
君は、「個人技術を全体に普及・波及する努力」というのを唯一のあるべき管理体制として捉えているみたいだけど、残念ながら多くの会社は、素人の書いたVBAコードに対して管理コストを投下するほどの価値を認めていない。だから、「使うな」とか「使ってもいいけど個人で責任のとれる範囲内で」という方針にしているわけ。
ついでにいえば、属人化という言葉には、会社が社員に責任を押し付けるというニュアンスも特にない。VBA はExcel内で書いて実行できるので、質の低いコードがいつの間にか業務に使われているという好ましくない事態が生じる可能性が他の言語と比べて顕著に高い。それで痛い目を見た会社が少なからずあったのでリスクとして認識されるようになったに過ぎない。

503:デフォルトの名無しさん
25/04/27 19:30:20.87 22nZEpjv.net
Power Automateで思ったんだけど
一つ一つごとのループブロックごとにそれぞれ別の変数(カウンタやカレントなど)を設定する事によって、変数のスコープを極小にする、
むしろカプセル化の様にループブロックやコードブロックの外からアクセスを受け付けない、という事がこれからの当たり前になるのだろうか。
もはや一つ一つのコードブロックが別々のプロシージャなんだと
人智を超えていても、ソフトウェアがそれを補えるし

504:デフォルトの名無しさん
25/04/27 19:33:19.45 22nZEpjv.net
VBAはVBAでも、APIの様な高度な知識が必要なやつはさすがに属人化だと思う(APIはまだやってないだけ、かも知らないけど)
基本的なメソッド、オブジェクトだけだよね

505:デフォルトの名無しさん
25/04/27 19:46:24.57 bnOAlujA.net
一定のスキルがあれば、APIの意味や使い方なんてぐぐればわかる
ドキュメントはみんなネットに公開されてるんだから

506:デフォルトの名無しさん
25/04/27 20:34:34.42 RSOujG5D.net
>>494
そんなもんVBA以外のプログラミング言語は20年以上前から当然にみんな


507:そうなってる



508:デフォルトの名無しさん
25/04/27 21:56:06.79 22nZEpjv.net
>>497
じゃあC言語とかでもそうなのですか?

509:デフォルトの名無しさん
25/04/27 22:00:02.07 22nZEpjv.net
>>497
いやいや、パッと調べただけでも他言語でも変数の使い回しできてるじゃん
私が言いたいのは一つのループブロックごとに、他の箇所では再利用できない変数一つという事

510:デフォルトの名無しさん
25/04/27 22:56:41.73 RSOujG5D.net
例えばC#のforやforeach文のループ変数はそのループの中だけで有効だが、そういう話か?
C++も大昔のバージョンを除けば同様

511:デフォルトの名無しさん
25/04/28 01:52:20.30 hDmEwqG0.net
>>481
>他人の書いたプログラムを解読して修正できるやつ

自分で描いたものでさえろくに保守出来ない香具師の方が大半な現実

512:デフォルトの名無しさん
25/04/28 10:21:58.00 AuNLagCl.net
ダイクストラが言う構造化プログラミングはモジュールとか抽象データ型とかも含む広範で抽象的な概念として説明されている。
連接・分岐・反復で構成しようという話はそれより前に発表されたものだが、この時代は構造化もクソもないプログラムがまかり通っていたという前提がある。
まずはその三要素を基礎に据えて構成したらわかりやすくね? という提案 (というか感想?) に過ぎず、それで全て事足りるみたいな主張ではない。
(理論上は連接・分岐・反復で全て表現可能であるという証明はされている。)

構造化プログラミングの考え方のキモは構造は人間の認知の中にあるということ。
人間が思考しているときの構造を書き表すためにどんな言語機能 (またはデザインパターン) があればよいの? ってのが構造化プログラミングの議論なんだよ。
書いた人が思ってる構造が表現されているなら構造化プログラミングだし、構造化プログラミングのために用意された機能を使っていても構造が表れていなければ構造化プログラミングではない。
まあついでに言えば書き表されたものについて (コンパイラも人間も) 検証しやすいことも大事だ。

機械的に goto を除去したらむしろ構造が失われるという例をクヌースが出したりもしていて、結局のところはどんな機能も正しく使えば正しいし、悪い使い方をすれば駄目になるというシンプルな話。
そんなわけで break が構造化を崩すか崩さないかは使い方による。
ただ、常識的に考えて break は goto より構造を破綻させにくいだろうってだけ。

513:デフォルトの名無しさん
25/04/28 11:10:41.08 6D3yvt7l.net
どこのスレの誤爆かな?

514:デフォルトの名無しさん
25/04/28 16:28:52.13 5fRt9Dct.net
SQLiteのデータベースをODBC経由ADODBで引っ張ってきてるけど、
CopyFromRecordSet で一発で貼るのと 1行1カラムずつ地道に貼るのとで
267件中1件1カラムだけ違う これは何なんだろう

515:デフォルトの名無しさん
25/04/28 17:32:10.75 L3M/APjY.net
知らんがな
違うと思ったならチェックしたんだろ?どう違うかを知っているのはお前だけ

516:デフォルトの名無しさん
25/04/28 19:04:28.97 opVSzI03.net
>>504
自分で作ったコードを調べて原因を見つける能力がない無能っぷりを白状しているようにしか見えない

517:デフォルトの名無しさん
25/04/28 19:12:48.88 77Ku1S4P.net
質問スレなんだし、そんなにきつく当たらなくてもいいんじゃない? もう少しゆるい感じでやっていこうよ。

518:デフォルトの名無しさん
25/04/28 19:29:47.71 5fRt9Dct.net
辛辣だなぁw CopyFromRecordSetで貼ったやつの方だけ1箇所違うんだよ
1行、1カラムずつ貼った方は正しい 元データももちろん正しい

lobjが対象テーブルのListObject dbrsがADODBで引いたRecordSet

データが違うパターン
lobj.InsertRowRange.CopyFromRecordset dbrs

正しいパターン
rc = 1
Do Until dbrs.EOF
  For co = 1 To lobj.ListColumns.Count
    lobj.ListRows(rc).Range(co).Value = dbrs.Fields(co - 1).Value
  Next
  rc = rc + 1
  dbrs.MoveNext
Loop

これでどう検証したらいいのよ

519:デフォルトの名無しさん
25/04/28 19:34:46.10 aApiL0z1.net
どう違うのかも書かない無能だから

520:デフォルトの名無しさん
25/04/28 20:16:18.13 Fc2g4rbd.net
PowerQueryの方がVBA よりも処理が高速なはずだ
と思っていたけど、配列を使えばVBAの方が処理が高速だったよ

521:デフォルトの名無しさん
25/04/28 22:36:06.18 opVSzI03.net
>>508
一カ所違うというのは実データがおかしな変換をされているのか?
それとも一方のデータが 多い/少ない と言っているのかな?

522:デフォルトの名無しさん
25/04/29 00:38:17.02 Cio0Z7DT.net
>>511
ざっくり例えると、1件ずつ処理すると元データどおり
みかん 150円
バナナ 200円
りんご 250円

となるところがCopyFromRecordSetだと
みかん 150円
みかん 200円
りんご 250円

になる感じかな もちろん今回が初めてのケース

523:デフォルトの名無しさん
25/04/29 03:39:13.13 uCA5xnZY.net
>>512
再現性があるか
何番目がおかしいか
一度にコピーする件数を少しずつ減らしたらどうなるか

そういう地道な作業を繰り返して、条件を絞り込み、原因を突き止めていくんだ

524:デフォルトの名無しさん
25/04/29 05:46:13.95 DUP3Wr3v.net
重複したデータでなければプログラムに問題がありそうだけどなぁ
ザックリすぎてわっかんねぇなぁ

525:デフォルトの名無しさん
25/04/29 05:58:53.59 NELjOoG5.net
質問の間抜けな感じからして凡ミスやな

526:デフォルトの名無しさん
25/04/29 06:09:56.99 DUP3Wr3v.net
スゲー適当なんだけど違いが1件ってことはEOFが入ってるとかそんな感じかな?

527:デフォルトの名無しさん
25/04/29 09:40:01.77 Cio0Z7DT.net
>>513
同じデータをAccessにインポートして実行→再現せず
SQLiteで検索するデータ量を減らす→再現せず
で、よく見たら256レコード目で検索条件(SQL文)変えても必ず発生することがわかった
SQLite3 ODBC DriverからADODBでデータ取得してCopyFromRecordSetでデータ貼付けすると起こる
データ取得方法は同じでも1レコード1カラムずつデータ貼っていくと起こらない
ダミーデータ作って色々試してみるかな

528:デフォルトの名無しさん
25/04/29 09:48:33.61 cxg+2T2y.net
>>517
元データの中に制御文字のようなゴミがあるとか、取得したものを表示する過程でミスっている可能性もある
ダミーで試すか、文字コードをバイナリ値でチェックするとかだな
あと256番目って数値がbyte扱いで0になってないかとか

529:デフォルトの名無しさん
25/04/29 09:57:59.04 LEbvev28.net
昔Oracleのバグで1件くらい少ないレコードセット返ってくるバグ思い出した

530:デフォルトの名無しさん
25/04/29 11:15:10.56 Cio0Z7DT.net
ダミーでも再現した
SQLite側のフィールドがTEXT型の場合のみ、256レコード目の内容が255レコード目と同じになる
INTEGER方だと起らない

531:デフォルトの名無しさん
25/04/29 11:17:05.94 Cio0Z7DT.net
こんな感じ SQLiteに日付型は無いのでTEXT扱い
254 test254 2025/06/11 1253
255 test255 2025/06/12 1254
256 test255 2025/06/12 1255
257 test257 2025/06/14 1256

532:デフォルトの名無しさん
25/04/29 12:21:37.37 TmvDscRd.net
属人的と言うなら車間距離だな
ExcelやVBA利用者には車間距離詰める馬鹿が多過ぎる
総じて「だろう運転」ばかりしていて「かもしれない運転」なんて眼中に無い
そもそもMicrosoft開発陣が「だろう運転」を推奨してる節がある

533:デフォルトの名無しさん
25/04/29 12:25:39.07 Cio0Z7DT.net
連投失礼、256だけじゃなく512,768,1024も同じ現象だった

534:デフォルトの名無しさん
25/04/29 13:23:59.14 lJszgH0z.net
ODBCのバージョンと定義がわかる画面貼っとけ

535:デフォルトの名無しさん
25/04/29 14:30:57.99 AuvQCcIn.net
久しぶりに面白そうな話題じゃん
自己解決しちゃっても是非原因教えてね

536:デフォルトの名無しさん
25/04/29 16:26:16.90 Cio0Z7DT.net
スクショは貼らないw 64bit
SQLite3 ODBC Driver 1.34455.00.00 Christian Werner Software & Consulting SQLITE3ODBC.DLL 2023/10/23

データ取得と貼り付けは至ってシンプル
Set dbcn = New ADODB.Connection
dbcn.ConnectionString = "DRIVER=SQLite3 ODBC Driver;Database=E:\Temp\testdb.db"
dbcn.Open
Set dbrs = New ADODB.Recordset
dbrs.Open "select * from testtbl", dbcn, adOpenStatic, adLockReadOnly
ThisWorkbook.Sheets("Sheet1").Range("A1").CopyFromRecordset dbrs

537:デフォルトの名無しさん
25/04/29 16:31:39.01 Mpe85ZPY.net
>>526
やっと全部情報を出してきた
だから馬鹿とか罵られていたんだよ
ドライバのバージョンを替えてみ

538:デフォルトの名無しさん
25/04/29 16:37:30.76 Cio0Z7DT.net
>>525
早速自決w
Set dbrs = New ADODB.Recordset
dbrs.CursorLocation = adUseClient
dbrs.Open "select * from testtbl", dbcn, adOpenStatic, adLockReadOnly
で正常になった お騒がせしました

539:デフォルトの名無しさん
25/04/29 16:47:03.16 EclpVRbh.net
ちょうど総合相談スレでも
3時間くらい前に発生した本日の事案への弔辞

> 介錯人は頼んだのかな
> 成仏しろよ

540:デフォルトの名無しさん
25/04/29 16:58:21.16 EclpVRbh.net
「自決」の辞書上のもう一つの意味、民族自決主義の「自決」は
「自分の意志で自分のことを決めること」だけど、
くだんの「自決する」の文脈は、意志うんぬんや決めるとかの流れはない。
なので、「問題を自分で解決した」という意味はならなさそう・・・
とマジレスしてみる

541:デフォルトの名無しさん
25/04/29 20:39:35.35 la4ZcTxc.net
自分のケツのことかと思った

542:デフォルトの名無しさん
25/04/29 21:12:16.89 hhMpSOWT.net
痔になったケツかと思った

543:デフォルトの名無しさん
25/04/29 22:00:44.14 V3jk1q3e.net
WinAPIでvisual styleを適用させたい
office2021だとCreateWindowEXで作ればvisual styleになるのにoffice2019だとならない

544:デフォルトの名無しさん
25/04/29 23:44:21.62 jEUD8QFb.net
今頃になって列の行ごとの文字列のReplaceは、まず文字列をカンマでもなんでもいいから全部くっつけてひとまとめにして変数に代入して、Replace(文字列,検索文字,"")すれば一括で置き換えられるって理解したよ
そしてSplitで配列に戻して元通り

545:デフォルトの名無しさん
25/04/30 01:17:17.74 0P1GE/1d.net
>>533
ComCtl32.DLLにリンクしてないからだと思う

546:デフォルトの名無しさん
25/04/30 03:14:35.45 IvfkHP7P.net
>>534
たまたまデリミタと同じ文字(列)がデータにも含まれててExcelのバグだと騒ぐまでがセット

547:デフォルトの名無しさん
25/04/30 06:29:26.31 7AsrwtYN.net
>>536
わかるわかる

548:デフォルトの名無しさん
25/04/30 06:54:36.59 TQaKmIw3.net
>>534
初級を脱したい奴が考えそうな無駄な技
経験積めば自然に書くのが一番て解るよ

549:デフォルトの名無しさん
25/04/30 18:11:25.83 /xZzLlpB.net
Range("A1:C10").Replace What:="置換前の文字", Replacement:="置換後の文字", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False

ってchatgptさんが言ってます

550:デフォルトの名無しさん
25/04/30 18:39:00.27 3/ALrefg.net
Replaceメソッドはシートの検索/置換オプションも変更されるから嫌い

551:デフォルトの名無しさん
25/04/30 19:34:30.68 Ypkgz0ac.net
>>528
さんきゅ

552:デフォルトの名無しさん
25/05/01 10:16:05.61 NoOjVvyj.net
開発では作るだけでなく動作確認、評価、検証をきちんとやるのも大事なのじゃ
わざと異常を出して正しく異常が出るか、桁数やデータが大量だとどうなるかとか、日本語以外の環境でも動くとか
実際に動かして確認すると気づかなかった問題が見えてくるものだ

553:デフォルトの名無しさん
25/05/01 10:51:14.04 /KCrsMZn.net
テストが重要なのはもちろんだが、VBAerレベルではそもそもバグが出にくくテストケースを闇雲に増やさなくていい書き方というものも多少は勉強した方がよい
似た処理をいちいちコピペすればその分ミスは増えるし、プログラムに直行性がないとテストケースは無限に増える

554:デフォルトの名無しさん
25/05/01 11:52:17.40 nTiKCI2R.net
>プログラムに直行性がないとテストケースは無限に増える

ほんそれ
直交性が無いのは言語の欠陥だと思う

555:デフォルトの名無しさん
25/05/01 13:39:51.25 yf6hHvtn.net
x ほんそれ
o 本当にそれ

556:デフォルトの名無しさん
25/05/01 14:02:16.67 NoOjVvyj.net
問題ないですとか言ってたのに後になって実は確認してませんでした とか言う新人たまにいる

557:デフォルトの名無しさん
25/05/01 15:05:48.78 my1nUwSm.net
VBAで単体テスト、カバレージ100とか聞いたことないわ
あれ?ACCESSの納品物の評価ってどうやってたっけ……(もう忘れた)

558:デフォルトの名無しさん
25/05/01 23:23:13.02 15supz3z.net
スレチだけど
やっとPowerQueryの変数宣言、代入、for each、無名(名前付き)関数がわかった。
.Buffer早すぎ

559:デフォルトの名無しさん
25/05/02 00:25:17.81 +dCfSpYU.net
Dim wb As Workbook
Dim pq As WorkbookQuery
Dim ws As Worksheet
Dim i As Long
とか宣言して、wb、wsの変数代入して、
For Each pq In wb.Queries
ws.Cells(i, 1).Value = pq.Name
ws.Cells(i, 2).Value = pq.Formula
i = i + 1
Next pq
とかやると、VBAで各クエリーの名前とM式の中身をワークシートに書き出せるのね

560:デフォルトの名無しさん
25/05/02 01:50:51.67 TLbUOI0p.net
>>549
いやん見ないで照

561:デフォルトの名無しさん
25/05/02 06:41:36.56 TLbUOI0p.net
前に言っていた、Power Automateみたいにコードブロックを入れたら、作成したコードブロックだけで有効な変数が自動的に作成されて、コードブロックを抜けたら変数が削除される、コードブロックごとに変数が一意、コードブロックがカプセル化、秘匿化されている、もはやコードブロックがサブプロシージャ、ファンクション関数っていうの、関数型プログラミングの事だったんだな

562:549
25/05/02 06:43:09.29 +dCfSpYU.net
そんな、他人を痴漢扱いすなw

いやこれ、一昨日ChatGPTに
「クエリーの依存関係がもっと見やすいツール、何かない?」
って聞いた中で、教わったばかりの一部なんだけど。

需要があるなら、フルでプロシージャを晒すよ?
おのおのChatGPTに聞けばいいんだろうけれど。

ここから親子関係の一覧表を作る、次のプロシージャは
正規表現検出をどう扱うか、相談しながらチューニング中なんだけど。

563:デフォルトの名無しさん
25/05/02 07:20:32.31 TLbUOI0p.net
ワイはCopilotにsheet.copyで作成した新規ブックのクエリを削除するにはどうしたらいいですか?
のコードでマクロ実行ブック(コピー元)のクエリも削除された泣

プログラマが型がわからないってマジ?
VBAでtypeっていうともっぱらそのモジュールのみで有効なプロパティ?の事を指すと思うけど

TypeScriptでは静的型付けの様に、バグの無いコードというのは、できる事、やれる事、受け付ける操作を限定する事だと思う。
何でもかんでもできる、受け付けるというのはバグの元だよ。

564:デフォルトの名無しさん
25/05/02 07:59:38.75 TLbUOI0p.net
VBAは変数を宣言しなくても変数が使用できるし、Variantは中のデータの型を判断するし、動的型付けだった😫
宣言を強制しているし、型指定もしているからすっかり忘れていた

565:デフォルトの名無しさん
25/05/02 08:41:13.69 IByDjNOR.net
>>549
WorkbookQuery初めて知った
面白そうだな

566:デフォルトの名無しさん
25/05/02 09:45:33.14 G++s7sQD.net
>>551
Power Automateって使ったことないので分からないんだが、多くの言語で一般的ないわゆるブロックスコープとは別物なの?

567:デフォルトの名無しさん
25/05/02 12:34:26.30 FVfG1Al+.net
>>556
同じなんだけど、
Power Automateはループ処理のアクションを追加すると自動的にvbaでいう for i の i とか for each 変数 の 変数が自動的に宣言される

vbaで同じ事をしようとするといちいち宣言しなくちゃいけないし、命名のレパートリーも尽きるからやらないし、流用になる

個別に変数を自動的に宣言してしかも管理も把握も一目瞭然だと、これからの時代はそれぞれのアクション、ブロックが一つのオブジェクト、関数みたいになるのがスタンダードで、しかもさらに進化するのかなと思う

568:デフォルトの名無しさん
25/05/02 13:08:27.70 i8P7c2SF.net
だからそんなもん20年前から他の言語では一般的だし、
PowerAutomateって複雑なことやろうとすると共通の変数を複数ステップに渡って弄り回すことになって簡単にVBAの糞コードみたいになるよ
変数のスコープに関する君の考えは一般的には正しいが、残念ながらPower Automateは君が期待しているようなものではない

569:デフォルトの名無しさん
25/05/02 13:46:02.65 G++s7sQD.net
スコープが別なことが分かっていれば、ループ変数は同じ名前の流用でも特に問題は起きないような気もするけれど。まぁでも便利なんだろうね。
ブロックスコープがない言語もそこそこあるような……。Pythonとか昔のJavaScriptとかは、関数スコープはあるけれどブロックスコープはないよね。

570:デフォルトの名無しさん
25/05/02 16:53:20.86 nKjy1k/M.net
ブロックがあればええ

571:デフォルトの名無しさん
25/05/02 19:06:46.82 ngu+xaVd.net
全てグローバル
変数名も文字数制限あり

BASICとはそういうものだ

572:デフォルトの名無しさん
25/05/02 20:16:54.76 KF55o+fS.net
変数名といえばおまえら Option Explicitしてるの?
俺はうっかりさんでスペルミスしがちだから外せないけど

573:デフォルトの名無しさん
25/05/02 20:38:35.86 sdnBjLxl.net
しない理由がない

574:デフォルトの名無しさん
25/05/02 20:55:10.60 1BRp4bnH.net
あれ消えないようにして欲しい

575:デフォルトの名無しさん
25/05/03 05:59:05.73 2+JR0EAo.net
今更ながらブックオープン 読み取り専用のコードだけを書いたfunction関数を作れば短い文字数でブックを開いて変数に代入できるって気づいたんだけど
もっと有用なコードはありますか?
さらにテーブルをセットするfunctionとか、ディクショナリーの作成、登録するfunctionとかもいいな

576:デフォルトの名無しさん
25/05/03 07:20:36.45 0JGyO


577:YLe.net



578:デフォルトの名無しさん
25/05/03 09:23:52.05 Hazt22aJ.net
>>565
短い文字数が有用ならコメント付けないで変数名とか全部1文字にしたらいいんじゃね

579:デフォルトの名無しさん
25/05/03 10:20:15.15 VRj6VpYS.net
使用回数によるよね
同じ操作が何回も出てくるなら適当なラッパー書いてあげると見通し良くて親切かなと
もちろんコメント付きでね

580:デフォルトの名無しさん
25/05/03 11:20:28.73 F8pywi6k.net
そのプロジェクト内では1回しか使わなくても、よくある定形処理は関数にまとめた方がいい
文字数を減らす必要はないけど、行数は少ない方がデバッグがしやすくなる

581:デフォルトの名無しさん
25/05/03 16:42:04.86 h9Jrb8E+.net
1ファイルに全部書く

582:デフォルトの名無しさん
25/05/03 17:16:40.74 2+JR0EAo.net
ラッパーというのですね
ありがとうございます
function関数やサブプロシージャは短い方がいい(一つの処理しか行わなくてもいい、行わない方がいい)
一回しか使用しない処理でも、メインプロシージャから切り分けた方がいい
と聞いていましたが、これはラッパーというのですね

583:デフォルトの名無しさん
25/05/03 18:50:44.41 ocHu15P2.net
ぱっぱらぱー

584:デフォルトの名無しさん
25/05/03 21:38:51.92 Hazt22aJ.net
お鍋の中からインチキおじさんが登場しますた

585:デフォルトの名無しさん
25/05/03 22:43:16.33 aLoX39eB.net
ぴーひゃらぴーひゃら

586:デフォルトの名無しさん
25/05/04 07:28:49.39 ajXSlqYh.net
ラッパーというのは、元の関数とかにガワを被せた(つまり、その中で元の関数を呼び出している)関数とかのことね。包装するとかの意味のラップ。念のため。

587:デフォルトの名無しさん
25/05/04 08:17:46.31 kPdoN8ak.net
ラッパーとインターフェースはどう違うのっと

588:デフォルトの名無しさん
25/05/04 09:35:43.88 VN1fyBP0.net
インターフェースは、抽象的にいえばひとまとまりと観念されるコードの塊(クラスとかモジュールとか)同士の間の境界、その境界に接するコード部分かな。インターフェースを介して情報のやり取りを行うに際して互いの前提が異なる場合には、そのままでは情報のやり取りができないので前提を合わせる必要がある。ラッパーはそのために使われることもあるけれど、基本的には全然別の概念。

589:デフォルトの名無しさん
25/05/04 16:30:55.85 IQyuDcpS.net
>>571
それはモジュール分割

ラッパーはすでにあるものを呼び出すファンクションやサブプロシージャ

ラッパーはラッピングだから、モジュールを包むモジュールというイメージ

590:デフォルトの名無しさん
25/05/04 16:35:24.36 IQyuDcpS.net
>>577
質問者じゃないけど、あなたの説明は入出力のインターフェース
質問者はオブジェクト思考のインターフェースのことを聞いているとおもわれる

インターフェースはモジュールに決まったメソッド、プロパティを持たせるための骨格となる設計の定義
特定のインターフェースを継承させることで、そのクラスにはどういうメソッド、どういうプロパティがあるのか調べなくてもわかるようにできる

591:デフォルトの名無しさん
25/05/04 21:24:05.55 NkPvwNmC.net
具象クラスの(>>577の意味での)インターフェイスを規定する抽象クラス(抽象基底クラス)それ自体のことをインターフェイスと呼ぶのは、オブジェクト指向というよりもJavaとかから広まった用語法なのでは。
個人的には、インターフェイスという語の本来の意味はあくまでも577のようなものであって、Javaとかでいうインターフェイスはそこからの派生とか転用として位置付けられるべき用語法だと思うかな。
ただたしかに、Javaみたいな意味でインターフェイスという語を用いることの方が(プログラミング関係の文脈では)もはや多いのかもしれないし、質問した576の意図もそちらにあったのかもしれないね。

592:デフォルトの名無しさん
25/05/04 21:50:46.14 6QG7+rqM.net
PowerQueryでの動的な繰り返し処理を理解したら、VBAにもList.Select関数とかText.PositionOfのOccurrence.Allとか欲しい

593:デフォルトの名無しさん
25/05/05 01:42:23.95 6skGH2rL.net
自分で実装すればいいじゃん

594:デフォルトの名無しさん
25/05/05 09:14:01.67 8n1c0Fvg.net
実装は難しくはないだろうけど、汎用的に使える便利な関数はできれば組み込みで持っていて欲しいという感覚は分かる。

595:デフォルトの名無しさん
25/05/05 10:45:35.51 NKQxWENO.net
配列の中に、対象に含まれているものがあれば、配列から取り出す、
っていう処理だから、内部処理的には、結局配列を全てチェックしていて意味がないのかな

596:デフォルトの名無しさん
25/05/05 10:46:27.32 Q8K4+hk+.net
自分が欲しいと思ったものは誰かがすでに作ってる
作るよりAIに聞いた方が早い

597:デフォルトの名無しさん
25/05/05 11:03:49.52 20YqVkB+.net
>>579
InterfaceはJava用語
TraitはRust用語
Excelでは何と言うのか?概念がそもそも無いのか?

598:デフォルトの名無しさん
25/05/05 11:43:00.38 EffckoF6.net
VBAにもInterfaceという機能があり見た目はJavaに似ている
しかし実質的にはCOM相互運用専用の機能であり、JavaのようなInterfaceは無いと考えて差し支えない
そもそもクラスメンバへのアクセスは常にダックタイピングなのでInterfaceはあってもなくても何の影響もなく、特に意味はない

599:デフォルトの名無しさん
25/05/05 13:17:06.42 bvP/AgOh.net
今時のプログラミングの考え方とか、関数型プログラミングというのは、ワークシート関数でいうindex関数とmatch関数の組み合わせの検索関数や、
マッチ関数とoffset関数とcount if関数の組み合わせによるプルダウンリストの絞り込みの様な、
一つのセルに対して関数のネストはやめましょう、
一つの関数は一つの答えを返しましょう、という認識なのですがどうなのでしょうか?

600:デフォルトの名無しさん
25/05/05 13:26:58.67 qohU83nC.net
入門書読んだこと無いの?

601:デフォルトの名無しさん
25/05/05 13:37:24.10 EffckoF6.net
違う
関数型プログラミングってのは、VBAなんか使わずにワークシートの式と関数だけで作りましょう、というものだと考えるとイメージしやすい
正確には、副作用のない式や関数だけを組み合わせてプログラムを作るのが関数型プログラミングで、Excelのワークシートはその一例
VBAでも注意深くやれば副作用のない関数だけで作ることは可能だが、それができるスキルの奴はVBAなんか使わないだろうね

602:デフォルトの名無しさん
25/05/05 17:39:10.53 ueUnqmHR.net
関数型プログラミングは入門記事でちょっと齧ったくらいだけど自分にはムリそうだなーと思った。
VBAとかPythonとかの手続型言語で書く分には、①決定性や副作用を意識する、②言語に取り入れられた関数型言語由来の構文(Pythonでいえば、イテレーター、内包表記、構造的パターンマッチとか?)を使うというくらいで十分じゃんじゃないかなぁ。
本格的に関数型でやるぞっていう人なら関数型言語(HaskellとかOCamlとか?)を使うんだろうし、そこまでは頑張れないけど手続型言語を書く際に関数型言語の考え方を参考にしたいという程度なら、上記①②くらいでお茶を濁しておく感じになるのではないかと。

603:デフォルトの名無しさん
25/05/05 22:54:48.45 bvP/AgOh.net
オブジェクト指向でカプセル化とか言っていたけど、結局はその理想通りにはならなかった。
その反省で生まれたのが関数型プログラミングという理解です。
関数には引数を引き渡す事と戻り値を受け取る事しか絶対にできない。
横槍も茶々入れも鶴の一声もない。
関数は一つのだけの事しかできない。
だからバグらない、誰がやっても結果は同じ。

604:デフォルトの名無しさん
25/05/05 23:40:24.40 fQ8xBj6s.net
関数型プログラミングはオブジェクト指向よりも圧倒的に古い

605:デフォルトの名無しさん
25/05/06 01:25:53.28 AZSw2w0R.net
関数型において関数は引数を受けることと戻り値を返すことしかできないというのは正しいのだけど、
鬼門なのは関数そのものを引数として渡したり関数の戻り値として関数を返したりできるところ
それにより関数型プログラミングは飛躍的に自由度と難易度が上がり、>>592の頭だとたぶんそこで挫折する

606:デフォルトの名無しさん
25/05/06 06:45:59.65 j1SFEq5D.net
>>594
まさに今それをやろうとしていますね
引数に関数を渡そうとしているの
値を引数にしたいけど、関数をネストせざるを得ない

607:デフォルトの名無しさん
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の推奨は最初にまとめて宣言
チームでやるならみんなに合わせる
個人的な作業ならどっちでもいいけど、途中で方針を変えるとあとで混乱するからどっちかに決めて一生変えないこと


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch