Excel VBA 質問スレ Part82at TECH
Excel VBA 質問スレ Part82 - 暇つぶし2ch272:デフォルトの名無しさん
25/04/11 21:51:09.85 TGfb/Or4.net
Excelのお勉強はしないのに、ほかのソフトウェアのお勉強ならするのですか?
そのソフトウェアは御社の業務にカスタマイズできるのですか?

273:デフォルトの名無しさん
25/04/12 13:10:17.53 54aHIZAI.net
WIX

274:デフォルトの名無しさん
25/04/12 15:55:55.88 TWdjuBDZ.net
VBAは非常に簡単なプログラミング言語(プログラミング言語かすら怪しい)のに属人化するのはなぜですか?

275:デフォルトの名無しさん
25/04/12 16:03:17.56 mOSc/cCd.net
>>269
んなこたーない
単にIDEと一体化してるからVBA使わざるを得ないってだけ
言語仕様はかなりうんちだよ

276:デフォルトの名無しさん
25/04/12 16:59:57.94 fCEj4mw6.net
>>272
VBAというより垂直分散システムの問題だね
Excelファイルを担当者が受け取って手元のシートに貼り付けてVBA動かして次の担当者に渡して…という、いわゆるバケツリレー状態になりやすい
何やってるか紐解こうとしたときに一つのアプリと一つのDBならそれらを調べりゃ済むところが、Excelバケツリレーだと各担当者の手作業と手元のVBAの内容を全部調べて回らなきゃならん
とまあ教科書的な答えは上記の通りだが、単純にバカが作るから必要以上に複雑になる面も無視できない

277:デフォルトの名無しさん
25/04/12 18:34:10.43 YYK6z2xW.net
ワークシート関数でつくった天才的シート
誰も解析できない

VBAは後任に引き継ぎできる
public Dimって分かりやすくグローバル変数にしてくれてるのも
評価高い

278:デフォルトの名無しさん
25/04/12 18:52:11.28 mOSc/cCd.net
>>275
ええ…

279:デフォルトの名無しさん
25/04/12 21:14:38.07 zeIho1I5.net
>>275
作り方によると思うけど、ワークシート関数で出来る事を変な知識でVBAでやってメンテ出来ない作りにして後の人に支障を出しているパターンを見ることが多い。

280:デフォルトの名無しさん
25/04/12 22:52:11.89 Q/tL3UO2.net
>>277
あるある
まさに「バカが作るから必要以上に複雑になる」の好例

281:デフォルトの名無しさん
25/04/13 08:43:36.38 ltkMWbkd.net
ワークシート関数だとしょっちゅう循環参照になっちゃって発狂

282:デフォルトの名無しさん
25/04/13 11:36:03.47 L/ux9paG.net
よくある「脱Excelで属人化解消」の文脈でいう属人化というのはワークシートでの人力作業やVBAという技術自体を問題視してるわけではなく、
担当者個人に属する固有の業務が存在することを問題視しているのだけど、
典型的な自称VBAできる事務員からすると自分の担当業務しか見えてないからVBAの何が悪いのかみたいな的外れな反応になりがちなんだよね

283:デフォルトの名無しさん
25/04/13 12:31:20.49 B9ltEcmk.net
仕様書もコメントも残さないで、その場しのぎのコードで終わってるから
他の人が見ると なにこれ… ってなるのだよ

284:デフォルトの名無しさん
25/04/13 13:25:01.44 ECuVOKsy.net
全体の広い範囲をVBAで制御やろうとするとめんどいし弊害出るからね
針のように一点に特化させた事をやる
前職で10万円、去年30万取った俺が言うんならまぁほぼ間違いない

285:デフォルトの名無しさん
25/04/13 14:09:46.83 tJJIFsIc.net
究極のカスタマイズだね。

286:デフォルトの名無しさん
25/04/13 14:47:09.49 5K+xVou/.net
>>282
金額でその場凌ぎの仕事しかしたことがない奴だとわかるわ

287:デフォルトの名無しさん
25/04/13 15:11:05.38 4yNzrwxr.net
ソースファイルなら観れば判る
cellに数式描かれてたらいちいち全部のcell観る訳にもいかん
AccessのFormとかならマクロもソースも一覧にする機能あるが
Excelにはそういうのないのかな
っていうか各Cellに$A$1みたいなのがコピペだらけになるのが嫌
forループをループじゃなくて全部展開されたソースコードみたいなうざさ

288:デフォルトの名無しさん
25/04/13 15:34:05.59 TB+WR7Ct.net
>>284
微笑ましいレスだね

289:デフォルトの名無しさん
25/04/13 15:55:26.11 gnJKXVL8.net
>>284
驚きの安さだよな
使い捨て人材

290:デフォルトの名無しさん
25/04/13 15:57:45.38 ECuVOKsy.net
去年見た記事にあったよね
各々の職の補助スキルとして使うVBAで細かいコードや作り方に固執するようなのは低年収であり出世もしない
センスが元々ないと作り込みの方法も頓珍漢になるってね

291:デフォルトの名無しさん
25/04/13 22:22:29.45 +TdScgKq.net
>>288
お前みたいな能力の足りない奴は何をやらせても俗人化するんだぞ

292:デフォルトの名無しさん
25/04/14 08:41:10.54 ADX0WDYm.net
仙人化でもしてろ

293:デフォルトの名無しさん
25/04/14 10:12:14.09 sDIA/6mJ.net
とは言え、余剰人員を確保せず少数精鋭を目指してるような事務所は
必然的に俗人化してしまうのでは?
そこに居る誰もがどの業務にも精通してる、なんて方が少ないだろ
事務方は渉外で社外との交渉も社内との交渉もまんべんなくこなさなきゃいけない
どの得意先もおんなじ業務おんなじ取引方法で済むはずも無く、交渉において
それなりのスキルが必要とされるケースもままあるんだから、どうしたって
業務の内訳として俗人化は避けて通れない
そいつが事故で入院しただのな場合は、段取りから何からてんやわんやの大騒動が巻き起こったり
そんな時でも、処理において自動化されてたら業務に詳しくない人間でも何とかこなせる(事もある

横澤夏子がひとりで請求業務でてんてこ舞いしてても、楽々明細導入したら誰でも可能に成るようなもの
その自動化する時点において「担当者個人の独自な目線で」じゃ無くて上の方からの目線で自動化してりゃ
そうそう混乱には結びつかない どこに視点を置くかがいちばんだいじ

294:デフォルトの名無しさん
25/04/14 10:27:35.84 U6Mwd36q.net
>>291
それはまた別の話だからスレチ

295:デフォルトの名無しさん
25/04/14 20:29:19.50 q3TQrYqH.net
>>291
にも関わらず、誰にでもできると軽く考えられる事務職
事務職を廃止しても結局事務専門の部署が復活
笑える

296:デフォルトの名無しさん
25/04/14 20:34:23.20 sDIA/6mJ.net
事務職を廃止するような会社があるのか? 妄想か? おだいじに

297:デフォルトの名無しさん
25/04/14 21:07:39.33 q3TQrYqH.net
>>294
普通にあるますよ
あるあるです

TypeScriptはJavaScriptの進化系ですか?
M言語のように、Excel専用の言語ではないですか?

298:デフォルトの名無しさん
25/04/14 23:38:15.91 GN7fg4Qa.net
>>295
知的障害者はそろそろ消えてくれないか?

299:デフォルトの名無しさん
25/04/14 23:55:51.33 q3TQrYqH.net
>>296
知能検査を受けた結果は平均の上でした
あなたが知的障害者だから話が噛み合わないだけでは?

300:デフォルトの名無しさん
25/04/15 02:27:22.26 aPUJOtvB.net
>>297
境界知能の中で平均の上か
かわいそうに

301:デフォルトの名無しさん
25/04/15 04:20:07.76 7Nt+1HIX.net
>>298
境界知能の中で平均の上か ってなんですか?日本語として成立していますか?

302:デフォルトの名無しさん
25/04/15 07:07:25.43 LfPgNjE5.net
>>299
うわっ、やっぱり境界知能だ

303:デフォルトの名無しさん
25/04/15 07:45:35.66 YVJZqCjB.net
>TypeScriptはJavaScriptの進化系ですか?
>M言語のように、Excel専用の言語ではないですか?

こんなことを書いてる時点で境界知能の人確定だろうよ

304:デフォルトの名無しさん
25/04/15 08:04:14.01 hOeShAdY.net
>>300
発達障害だろ

305:デフォルトの名無しさん
25/04/15 08:21:38.20 tfTEwuEp.net
Excel VBAはずっと残り続けるだろうけどそれはそれとして、Pythonが入っているPCならxlwings等で書く/書き換えるようにした方がいろいろ楽になるんだろうなという気はするかな。やっていることは実質PythonでExcel VBAのオブジェクトを操作しているだけなので、Excel VBAの知識はムダにならないし。

306:デフォルトの名無しさん
25/04/15 11:43:51.98 CbsPdu2a.net
trait障害ですね判ります

307:デフォルトの名無しさん
25/04/15 19:02:25.51 7Nt+1HIX.net
>>301
オフィス スクリプトは TypeScript で書かれており、JavaScript のスーパーセットです。
ではないのですか?

URLリンク(learn.microsoft.com)

308:デフォルトの名無しさん
25/04/15 19:40:45.23 hOeShAdY.net
>>305
平均の上なら延々とスレ違いの話するな
境界知能だの発達障害だの言われても仕方がない

309:デフォルトの名無しさん
25/04/15 20:59:17.90 LfPgNjE5.net
>>305
もしかして境界知能にも達しない本物の知的障害者か?
療養手帳持ち?

310:デフォルトの名無しさん
25/04/15 21:04:11.20 7Nt+1HIX.net
>>307
Microsoftは知的障害者の集まりなんですか?

311:デフォルトの名無しさん
25/04/15 22:26:37.56 LfPgNjE5.net
>>308
お前は本当に知的障害者なんだな

312:デフォルトの名無しさん
25/04/15 22:28:00.99 v7XOhP1D.net
これはもう本物の知的障害者降臨という扱いでよいのでは?

313:デフォルトの名無しさん
25/04/15 22:50:02.59 V9CHeTbA.net
年収や役職にも比例するからなぁ
担当で年収500万とかだった頃はまだVBAの中身も細かく見て拘ってた
年収810万の係長の今VBAの作り込みなんて言ってたら叱られる
俺の立場でもそうなんだから日本どころか世界もそうなんだろう

314:デフォルトの名無しさん
25/04/15 22:53:06.79 7Nt+1HIX.net
>>311
IT企業に勤めていますけど、一般の人が考えるプログラマーはただの作業員ですよ、工場の工員やコンビニ店員となんら変わらない
求められている人は打ち合わせができる人、要件定義ができる人、派遣のリーダー(指揮命令者)

315:デフォルトの名無しさん
25/04/15 23:05:17.82 V9CHeTbA.net
>>312
俺はIT企業じゃないけど一般企業でそれが出来る人は必然的に部下の管理に回るでしょ

といいたいけど管理もしつつ作り込みの概念がないいわれた事だけやるような担当に任せられず太い骨子と肉まで作るハメになるのが現実だね

316:デフォルトの名無しさん
25/04/15 23:42:42.30 aPUJOtvB.net
>>312
IT企業に勤めているって妄想ですか?
それとも勤めているって清掃員とか経理とかかな
TypeScriptすら知らない人だものね

317:デフォルトの名無しさん
25/04/15 23:54:09.73 IBiP5Aj6.net
Excelのことも知らないようだから働いたことのない無職の人だろうよ

318:デフォルトの名無しさん
25/04/15 23:58:57.29 RKwZlHjM.net
エクセルはオワコンか。まさか三四郎の時代が来るとはこの俺の眼を持ってしても

319:デフォルトの名無しさん
25/04/16 03:22:35.98 xdrSv+S6.net
Improvのデモ見たときは画期的だと思ったわ

320:デフォルトの名無しさん
25/04/16 06:45:45.02 F+Twx8dn.net
>>314
精神障害者雇用枠なんじゃね?

321:デフォルトの名無しさん
25/04/16 07:49:21.73 l60D8Rx4.net
中堅IT企業の社員食堂で調理師補助やってる
食材の発注表とかシフト管理とかでExcelはけっこう使ってる

322:デフォルトの名無しさん
25/04/16 12:37:04.29 S2bYXYAK.net
・VBA
・PowerShell
・Power Automate
・Office Scripts
の関係をどなたか整理して下さいまし、エロい人

323:デフォルトの名無しさん
25/04/16 13:10:11.91 ApyifYby.net
>>317
Lotusでググるとこんなの出るな
URLリンク(www.photolibrary.jp)
URLリンク(himitsu.wakasa.jp)

324:デフォルトの名無しさん
25/04/16 23:39:21.70 UnijqTD+.net
APIを使って進捗バーを表示させたいのだけど、枠だけ作られて緑のあれが出ないです

325:デフォルトの名無しさん
25/04/17 01:36:05.40 KzCUo7uK.net
一説にはコンピューターウイルスの80%以上がVBA由来だった。Microsoftが既定で無効にしたら被害が激減した、と聞いてとても驚いた。
よくよく考えてみれば仮にコンピューターウイルスが.batファイルだったとして、一般人がそれを開こうとは思わないよな。
Officeのファイルのアイコンだったら慢心して開くわけだ。
公式フィッシング詐欺じゃないか。
マクロ有効のファイルのアイコンはいつものアイコンに黄色いビックリマークにでも変更したらいいのに。

326:デフォルトの名無しさん
25/04/17 03:52:37.06 o9rmB53T.net
また馬鹿二人

327:デフォルトの名無しさん
25/04/17 07:37:39.31 RHVJQlpr.net
お前以外にもう一人いるんか

328:デフォルトの名無しさん
25/04/17 09:50:00.51 ygSDqeHK.net
Win10以降とか64ビット対応とか、いろんな理由でつまずく原因が転がっているだろうけど、
URLリンク(jitsuyogaku.com) とか
こっちはラベルでプログレスバー実装とか試みてるケースだけど
URLリンク(qiita.com) とかを参考にして励めばどうにか成りそう
単にプログレスバーの更新をしてないだけかも知らんけど

329:デフォルトの名無しさん
25/04/17 15:46:07.98 o9rmB53T.net
>>322
apiと言えば全て同じだと思っている馬鹿
>>323
Windowsのアイコンの仕組みを知らない馬鹿
アイコンで騙してクリックさせる手口があることを知らない馬鹿

330:デフォルトの名無しさん
25/04/17 18:06:49.09 BSfo0rOp.net
>>325
俺とお前と大五郎と酒と泪と男と女と部屋とYシャツと私と愛しさと切なさと心強さと糸井重里

331:デフォルトの名無しさん
25/04/17 21:50:56.16 KzCUo7uK.net
vbaも近代化改修が行われてPower VBAになってスクラッチ開発できる様になったらいいのにな
これが本当のvisual basic

332:デフォルトの名無しさん
25/04/18 04:48:09.14 L6zyvyKf.net
vb6で終わってvb.netやc#になったから今更それはないな
ついていけない人は欲しいだろうが

333:デフォルトの名無しさん
25/04/18 06:15:21.95 1nv1ghXV.net
この期に及んでVBAに止まっている連中に仮に新しいものを提供したところで移るわけがない

334:デフォルトの名無しさん
25/04/18 06:43:13.37 ky+/acoM.net
PythonだったらそんなにExcelを高速に処理する事ができて、しかも楽にコードが書けるのですか?

335:デフォルトの名無しさん
25/04/18 07:51:27.87 zoX3HVfE.net
処理の速度は変わらないけど楽にはなる

336:デフォルトの名無しさん
25/04/18 10:01:29.16 4ybR59hN.net
VBAが構文的にしんどいのって、
・ 変数の宣言と初期化がいっぺんに出来ない。初期化に(Let/)Setが必要。
・ 関数と手続とが構文上区別されている。
・ コレクション・コンテナやクラスが使いにくい。
ーー辺りかな。
他の言語ではとうに克服されてまったく気にしなくても良くなっていることがVBAでは克服されておらず、そのツケをコードを書く側が負担させられている感がストレスかなぁ。書けなくはないけど楽には書けないし、書けば書くほどストレスが溜まって嫌いになる言語だという人も多そう。
逆に言えば、そんなの気にならない、所詮構文でしょって人も少なくないだろうとは思うけど。

337:デフォルトの名無しさん
25/04/18 10:18:33.71 5qwyQLY6.net
どうでもいいな
そんなことが問題になるほどの規模でVBAを書く必要があるならその設計の方が問題

338:デフォルトの名無しさん
25/04/18 12:01:58.63 6yGBiO+t.net
難解な関数が組める事を自慢したい馬鹿、VBAが書ける事を自慢した馬鹿のどちらも各企業にいるよなw
Excelなんて単なる事務道具だぞ

339:デフォルトの名無しさん
25/04/18 12:24:40.01 zoX3HVfE.net
>>334
・ 変数の宣言と初期化がいっぺんに出来ない。初期化に(Let/)Setが必要。
オブジェクト変数じゃなければいっぺんにできるし、
オブジェクト変数だとしてもセミコロンで一行に書くイディオムで実質いっぺんにやれる
・ 関数と手続とが構文上区別されている。
Excelにおいては一緒の方がバグ生むでしょ
alt+F8押したときに関数出てくるのはマズくない?
・ コレクション・コンテナやクラスが使いにくい。
これは同意

とはいえ不満のほとんどはIDEと統合されてなければ解決するよね
エディタの機能に任せれば良いだけで、それを使えないVBEでの開発になるからしんどい

340:デフォルトの名無しさん
25/04/18 13:15:43.40 4ybR59hN.net
宣言と初期化については、セミコロンで複数ステートメントを並べて書けるから実質同じというのはどうかなぁ。オブジェクトか非オブジェクトかで書き方を変える必要があること自体がストレスじゃない? 揃えるなら非オブジェクトの方にLetをつける方向性になるけどそれも馬鹿馬鹿しいし。
マクロ一覧については、定義ステートメントの予約語を分けなくてもマクロとして使える関数をピックアップすることは可能だったのではと思う。
あと、関数・手続の呼び出し(Callステートメント)の構文もちょっと擁護できないかな。

VBEの機能がいまいちというのは同感だけど、構文上の書きやすさというのはそれとはまた別の次元の話。また、構文上の問題というのはプログラムの規模とはあまり関係ない話で、ごく短いプログラムでもストレスはストレスだと思う(長いプログラムならストレスの総量が閾値を超えてしまうような場合でも、短いプログラムなら何とか耐えられるとかそういうことはあるかもしれないが)。
結局、Excel組み込みというVBA唯一最大のメリットのために、構文の書きにくさ・VBEの機能の低さに目をつぶれるかという話なんでしょ。他の選択肢もある場面であえて好んでVBAを選ぶ理由はほとんどないけれど、Excel VBA以外に選択肢がないという状況は結構あるからそういう状況で今後も生き残っていくということだと思う。

341:デフォルトの名無しさん
25/04/18 13:53:14.91 ooz79whL.net
Copilotがくそ過ぎる
Microsoftはこれでいいのかよ
ChatGPTの独壇場だなVBAは

342:デフォルトの名無しさん
25/04/18 14:54:36.62 5qwyQLY6.net
VBA使い含めMSの客のボリューム層なんて、大半は最新のAIが本気出したら簡単に代替できるような仕事しかしてないからね
今のMSのビジネスモデルが完全にユーザー数に対する課金に依存している以上、利益相反関係にあるからCopilotはあまり賢くできないのよ

343:デフォルトの名無しさん
25/04/18 17:52:29.83 08LfVk9Y.net
CopilotはchatGTPです

344:デフォルトの名無しさん
25/04/18 18:28:34.92 aM6hZ3c/.net
デビルチョップはパンチ力です

345:デフォルトの名無しさん
25/04/18 18:46:19.31 CBG0ye4/.net
>>338
宣言と初期化の件、実質同じなんて言ってないのに勝手に書き換えないでほしい
揃える必要あるか?
ポインタかそうでないか、それぞれをどう宣言するかって話なんだから、
char foo = 'a';
char* bar = "a";
これらが書きやすいって人もいれば分からんって人もいて、想定ユーザーをどうするかってだけ
VB(A)はそれらが分からんって人を対象にした言語
マクロのピックアップにしても、いちいちVBAをパースするにあたり、Subの行だけ拾ってくれば済む処理で他のことさせるってことだろ?
かつて.xlsファイルはフロッピーに保存されてたんだぞ
当時から今みたいな富豪的プログラミングが可能だったわけではない
動作速度とのバランスを考えた設計と、こだわり続けた互換性の上に今がある
Callステートメントの何が気に食わないの?

346:デフォルトの名無しさん
25/04/18 18:48:37.87 HZQ72SS6.net
>>343
また知ったかの馬鹿

347:デフォルトの名無しさん
25/04/18 20:06:21.64 t3zKaoZR.net
char foo = 'a';
char* bar = "a";
がわからんってレベルの人が、オブジェクトについてのみ初期化にSetキーワードが付けるVBAの構文の方が分かりやすいねって言ってくれるんだろうか。とてもそうは思えないが。
マクロのピックアップも、富豪的プログラミングのような大層な概念持ち出すような話なのかな?
関数か手続か、戻り値を使うか使わないかでCallを付けたり付けなかったり、丸括弧を付けたり付けなかったりするCallステートメントの構文は救いようがないと思っていたんだけど、不満がないって人も居るのね。他の言語で関数呼び出しの構文がそんなふうになったら開発者の正気を疑うレベルだと思うんだけど。VBAの場合は配列の要素参照に丸括弧を使う関係上やむを得ずそうなったんだろうとは思うけど、構文として碌でもないのは否定できないと思うんだけどね。
互換性の点はわかるよ。というか、互換性を保つ必要があるからどんなに構文が酷くても手を入れることができないってことでしょ。その上で、VBAの構文は(少なくとも今の目で見れば)ストレスフルであると書くことが悪いこととは思わないが。もちろん、気にならないって人は、それはそれでいいと思うけどね。

348:デフォルトの名無しさん
25/04/18 20:11:40.45 ooz79whL.net
早口でとは言わんが要点をまとめられず仕事もコードの中身もそうなんだろうな

349:デフォルトの名無しさん
25/04/18 21:24:08.39 T6Kb2Yr1.net
こういうお気持ち表明が多すぎて収集つかないからMSは仕様変更しないんだろ

350:デフォルトの名無しさん
25/04/19 02:21:22.02 spgp5dv5.net
今の常識で27年前の仕様にいちゃもん付けるPCの大先生w

351:デフォルトの名無しさん
25/04/19 02:31:50.20 Az00DO6L.net
ただの知ったかの馬鹿だぞ

352:デフォルトの名無しさん
25/04/19 02:39:29.56 spgp5dv5.net
Cの最新規格は7~8年前の仕様、
COBOLですら9年前だ
死体蹴りもいいとこ

353:デフォルトの名無しさん
25/04/19 03:16:05.27 ChBOY4Tr.net
Callだのなんだの好きに書けばいいんじゃね?
何で目くじら立てて些細な事で喧嘩になるのか理解できん

354:デフォルトの名無しさん
25/04/19 03:23:20.02 oOgY5W1p.net
行番号つけないと落ち着かない
イライラする
文字は大文字じゃないと
うがーってなる

355:デフォルトの名無しさん
25/04/19 04:08:23.94 spgp5dv5.net
>>351
喧嘩…?

356:デフォルトの名無しさん
25/04/19 06:15:57.40 D0kitORW.net
>>343 の言う判らん人が使う言語は Rust

357:デフォルトの名無しさん
25/04/19 09:42:55.62 ozZ7t8ZT.net
大衆食堂に来ておきながら、年代物のワインが無い!だの、ナイフフォーク揃えて無い!だの
前菜とスープが先だろ!とか文句付けてるようなもの
単純な+-ドライバーにラチェット機構が付いてない!とか罵ってるようなもの
それぞれ出自も違うんだし目指すところも違うんだから、適材適所、使いようなだけ
ま、単なるクレーマー気質ではある
さりとて、それならソッチ側のプログラミングなら達人レベルなのか?っつーとそうでも無いんだろう
どっちつかずの中途半端な知識だけだから、つべこべ文句言って毒吐いてじぶんを紛らわせてるだけのかわいそうなひと

358:デフォルトの名無しさん
25/04/19 09:51:01.47 D0kitORW.net
>大衆食堂

ぷぷぷ

359:デフォルトの名無しさん
25/04/19 11:23:58.79 H/S6NqJY.net
最新流行の言語や関数型の言語にしかないような構文なら年代物のワインやカトラリーのセッティングになぞらえるのもまだわかるけど、上で挙げたのってそんな高級なもんじゃないでしょうに。

何かあれだな、JavaとかPythonとかのいわゆる普通の言語の使用者が、最新流行の言語や関数型言語の使用者からの構文マウントに対して反発したり揶揄したりする構図はよく見かけるけど、その低レベル版みたいなことになっている気がするな。

360:デフォルトの名無しさん
25/04/19 11:45:41.65 LYrpxUmI.net
まあ、ヒアドキュメントや置換なんかはほしい
数式の記述なんて書きやすいと思っている奴はいないだろう

361:デフォルトの名無しさん
25/04/19 11:50:41.10 UV/Amstd.net
Open AIは人格や口調を意識してAIの開発なんてしていないだろうに、Copilotに「妹キャラでお願いします」って言うと妹キャラの口調になるから本当に凄いなと思う

362:デフォルトの名無しさん
25/04/19 11:57:24.89 UV/Amstd.net
>>355
VBAは大衆食堂ではないから属人化(しやすい)と言われている
年代物のワインならある
私は最近複数行選択からのタブでインテンドが簡単にできると知った

一企業でVBAができる人はあちこちの部署から自動化のツール作成を請け負っていると思う
この「あちこちの部署から仕事を請け負う」ということが属人化の正体だと思う
なぜなら幅広く業務に精通している凄い人は少数で他にいないから

363:デフォルトの名無しさん
25/04/19 13:05:07.54 viAmSNvm.net
PowerAutomate職人も最近は重宝されとるな
使いやすい便利な奴隷として

364:デフォルトの名無しさん
25/04/19 13:19:59.45 YEMv3hB3.net
>>359
妹キャラのデータはあるからな
データに無いキャラでって言われて、無いと言われるか似たようなのにされるかは知らんけど

365:デフォルトの名無しさん
25/04/19 13:53:56.21 ICSNq8lF.net
もう定年退職してる二代前の担当してた人の作ったVBAをメンテしながら使ってるけどプロシージャ名の乱れ雪月花とか薪割りダイナミックとかはそのまま変えてない
パリィとかもあったし変数も癖が強い
でも処理が合理的で面白い

366:デフォルトの名無しさん
25/04/19 14:46:22.82 v8N9YOUA.net
弘法筆を選ばずだな

367:デフォルトの名無しさん
25/04/19 15:50:48.35 UV/Amstd.net
>>362
しかもこっちの呼び名を、お兄ちゃん(お姉ちゃん)呼びしているんだよ
お姉ちゃん(レズ)までサポートしているんだよ

368:デフォルトの名無しさん
25/04/19 19:00:19.25 KJMdl2bF.net
弘法も始めは筆おろしから

369:デフォルトの名無しさん
25/04/19 19:34:36.21 UV/Amstd.net
>>366
へっ?ふっ、筆おろし?急に何を言い出すの!?お兄ちゃん!

370:デフォルトの名無しさん
25/04/19 19:59:47.58 o+j+V/MM.net
こ、こ、こ、こ、弘法ちゃうわ!

371:デフォルトの名無しさん
25/04/19 20:45:49.41 ozZ7t8ZT.net
どうしてソッチだけに食い付くんだか 只の例えだろうに
例えが気に入らないなら、じぶんなりの例えを書きゃあいいのに
ドライバーの方に食い付かない辺りでお里が知れるってもんだ

372:デフォルトの名無しさん
25/04/19 20:53:32.98 UV/Amstd.net
>>369
+と-😳
何を急に言い出すの!?お兄ちゃん!

373:デフォルトの名無しさん
25/04/19 20:59:39.26 uzlTl9vw.net



コラヤメタマエ

374:デフォルトの名無しさん
25/04/20 13:50:10.98 RiHDJnuQ.net
初期:
面白い人が面白いことを書く
中期:
面白くない人が面白いものを見に来る
終末期:
面白くない人が面白くないものを書き始める

375:デフォルトの名無しさん
25/04/20 13:50:58.56 RiHDJnuQ.net
面白い人が面白いことをする

面白いから凡人が集まってくる

住み着いた凡人が居場所を守るために主張し始める

面白い人が見切りをつけて居なくなる

残った凡人が面白くないことをする

面白くないので皆居なくなる

376:デフォルトの名無しさん
25/04/20 13:51:15.67 RiHDJnuQ.net
1、スレッドが立つ。
2、技術のある人間がAAを提供して盛り上げる。
   感動を�


377:≠゚て人が集まってくる。 3、オリジナルAAを書ける人間が乗ってきてさらに盛り上げる。最盛期。 4、盛り上がりに乗じて何も書けない魯鈍と白痴が寄ってきてスポイルする。  ←いまここ    彼らの無駄な愛着が逆効果を及ぼし、スレッドのレベルが著しく低下。 5、飽きて大勢が去っていき、行き場の無い魯鈍と白痴が残される。    低レベルな自慢・偏見の陳列、煽りあい、無駄な罵倒、    いわゆる「2ちゃんねる用語」を多用したお寒いレス等々が並ぶ。 6、煽りと罵倒しか出来ない魯鈍まで魯鈍同士の空疎な煽りあいに飽きて去る。 7、何も提供できない白痴が過去の栄光の日々を夢見て空ageを繰り返す。    脳死状態



378:デフォルトの名無しさん
25/04/20 16:48:37.48 R2iq2iGJ.net
7だろ

379:デフォルトの名無しさん
25/04/20 18:35:19.98 Ub0nEPUR.net
>>374
5〜7のいずれかの段階じゃないですか?
客観性を失いましたか?

380:デフォルトの名無しさん
25/04/21 12:00:00.65 5S3aJeqO.net
話題が無いね…

381:デフォルトの名無しさん
25/04/21 12:43:40.09 H+gaTqgY.net
Ecxelビバ!
Chatガパチョ!

382:デフォルトの名無しさん
25/04/21 12:45:10.43 hGZB/ZtD.net
書籍なら、高橋宣成『パーフェクトExcel VBA』辺りが今でもお勧め? 
沢内晴彦『Excel VBA実戦のための技術』は昔買って読んで、内容は良かったと思うんだけど、著者の押し付けがましい語り口に辟易した記憶がある。各章冒頭のダイアログとかもうね。

383:デフォルトの名無しさん
25/04/21 15:42:19.79 TqAnAlAX.net
今ならAIに頼んで自分に合ったものを書いてもらうのがお勧め

384:デフォルトの名無しさん
25/04/21 18:50:43.50 kvlDxPZn.net
自分にあう書籍を書いてもらおう

385:デフォルトの名無しさん
25/04/21 22:52:35.16 TKKNFS+v.net
初心者向けに実用的なコードを教えます!みたいな内容では無くて、もっとそもそも論を書いたシステム開発みたいな内容の本はないでしょうか?

386:デフォルトの名無しさん
25/04/21 23:50:35.29 DImNR5cR.net
あるょ

387:デフォルトの名無しさん
25/04/21 23:56:59.82 TKKNFS+v.net
VBAで差し込み印刷をする時の正解は結局なんでしょうか?
Excelで文章の様式、フォーマットがあって、それぞれのセルに行の値を代入して連続印刷する感じです。

388:デフォルトの名無しさん
25/04/22 01:09:34.39 ujoEa+wb.net
ある行に設定したらその値が各セルに表示されるようにしたらどうだろ

389:デフォルトの名無しさん
25/04/22 05:15:10.29 UGfRV5Rp.net
その場合はそれぞれのセルに行の値を代入して連続印刷するのが正解

390:デフォルトの名無しさん
25/04/22 12:17:33.64 qo6ZtztY.net
ユーザーフォームで入力画面つくるのがわかりやすい

391:デフォルトの名無しさん
25/04/22 12:30:17.80 S18G88V1.net
>>382
さすがにVBAにそれを求めるのはお門違い
そもそも自称VBAプロでプログラミングの基礎がまともにある奴の方が少ないんだから、事実としてそんなもんVBAには必要ないってこと

392:デフォルトの名無しさん
25/04/22 14:16:52.96 ujoEa+wb.net
>>382
業務ならコーディング基準はあった方がいいだろね
個人用でも一部有用なのはあると思うよ

393:デフォルトの名無しさん
25/04/22 14:57:52.39 z9I6mhsO.net
Access使え

394:デフォルトの名無しさん
25/04/23 00:18:58.61 Bj1O/t/P.net
大体よ、いつからLetを省略する書き方になったんだよ?? 昔はValueプロパティすら省略なんてご法度だったし。

395:デフォルトの名無しさん
25/04/23 00:19:15.68 Bj1O/t/P.net
大体よ、いつからLetを省略する書き方になったんだよ?? 昔はValueプロパティすら省略なんてご法度だったし。

396:デフォルトの名無しさん
25/04/23 00:19:27.56 DmG1qyy4.net
大体よ、いつからLetを省略する書き方になったんだよ?? 昔はValueプロパティすら省略なんてご法度だったし。

397:デフォルトの名無しさん
25/04/23 00:20:10.60 Bj1O/t/P.net
大体よ、いつからLetを省略する書き方になったんだよ?? 昔はValueプロパティすら省略なんてご法度だったし。

398:デフォルトの名無しさん
25/04/23 01:50:51.14 Ho3rM8lk.net
letは省略しても何ひとつ変わらないから書くだけ無駄

399:デフォルトの名無しさん
25/04/23 02:15:05.21 gJbY6K2J.net
N-BASICの時代からLETなんて書くヤツはいなかった

400:デフォルトの名無しさん
25/04/23 02:34:24.48 Bj1O/t/P.net
あれ?何故連投になってるんだろ?

401:デフォルトの名無しさん
25/04/23 05:26:38.28 pTAtgk9D.net
>>388
自称VBAプロでプログラミングの基礎がまともにある奴の方が少ないんだからこそそう言う本が読みたいのですが?
VBAのコーディングでもより効率的に素早くコーディングするための方法が知りたいです
例えばコードブロックはメモ帳なりなんなりであらかじめ用意しておいて繰り返し流用するとか、ユーザー辞書にメソッドやプロパティを登録して入力を楽にするとか
少しでもノーコードに近づけるテクニックが知りたい

402:デフォルトの名無しさん
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ではできない。


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