1 名前:デフォルトの名無しさん [2025/01/24(金) 03:31:15.25 ID:l239yW+P.net] ExcelのVBAに関する質問スレ コード書き込みや作成依頼もOK 次スレは>>980 が立てること 無理なら細かく安価指定 関連スレ Excel VBA 質問スレ Part79(ワッチョイあり) https://mevius.5ch.net/test/read.cgi/tech/1674875532/ Excel VBA 質問スレ Part80(ワッチョイあり) https://mevius.5ch.net/test/read.cgi/tech/1700826110/ ※前スレ Excel VBA 質問スレ Part79 https://mevius.5ch.net/test/read.cgi/tech/1674874007/ Excel VBA 質問スレ Part80 https://mevius.5ch.net/test/read.cgi/tech/1685489018/ Excel VBA 質問スレ Part81 https://mevius.5ch.net/test/read.cgi/tech/1713416618/
447 名前:デフォルトの名無しさん [2025/04/24(木) 16:13:34.27 ID:jkAUiXuj.net] 長文をこんなところに大量に書き散らすだけあって馬鹿の極みそのもの そもそも働いたことがあるのかね
448 名前:デフォルトの名無しさん mailto:sage [2025/04/24(木) 17:18:18.39 ID:Cj39D1EW.net] 会話が通じないなら、いちいちアンカ打ってまで絡んで来ンなよw 気色悪いなあ ハナシが通じない残りの三割ってことでいいぢゃねーか 電車で隣の会話にいちいち割り込んで「正確な会話をしろ」とかイチャモン付けるタイプか? 文章文章って、国語の教員か? おてがみやり取りしてる訳じゃねーぞw 宿題でもねーし OSSガー 突飛な例えで何が言いたいんだか あんたの会社はOSSで業務アプリ組んでンのか? 枝葉末節にこだわって本質を把握できない、つか、しようともせず、他人の揚げ足取りだけに注力して 勝ち誇ったような気分になってご満悦 どっかのバカな芸人がそういう話芸で人気を博して有頂天に成ったはいいが 今や誰からもどこからもお声も掛からない憐れな人生歩んでるようだが、ソッチへ寄り添った生き方目指してンのか?
449 名前:デフォルトの名無しさん mailto:sage [2025/04/24(木) 17:31:20.41 ID:Xkh5MdoU.net] >>440 大昔のVBAマルウェア「メリッサ」で痛い目に遭い禁止して、 それを見直すこともなく踏襲し続けてるところが全面禁止にしてる
450 名前:デフォルトの名無しさん mailto:sage [2025/04/24(木) 17:51:26.09 ID:IKFgVNqa.net] >>444 もちろんセキュリティ上の理由は大きいだろうね。見直すこともなくというより、そういう会社はVBAの有用性をさほど高く評価していない(少なくともリスクを上回るほどの有用性があるとは考えていない)から全面禁止にしているんだと思うよ。 経営判断としてはあり得る考え方の1つだとは思う。
451 名前:デフォルトの名無しさん [2025/04/24(木) 19:41:44.24 ID:9Ww3k6uP.net] 誰にでも簡単に扱えて不具合もバグもない業務用ソフトと言うのはできる事を制限している業務用ソフトしか無いと思う 入力出来る事、場所に制限をかけているから誰がやっても出鱈目なデータにもバグにもならない 逆にExcelは本当になんでも出来るから壊すし、壊れるし、出鱈目なデータも入力する
452 名前:デフォルトの名無しさん [2025/04/24(木) 20:09:51.89 ID:DzE0RqCV.net] VBAで関数の値が入った配列を作りたいのだが、 e = [{1,0;0,1}] r = [{Cos(1),-sin(1);sin(1),cos(1)}] eは2x2の配列になる。 rはエラーになる。 ああいう配列作れないかな?
453 名前:デフォルトの名無しさん mailto:sage [2025/04/24(木) 20:49:12.55 ID:Xkh5MdoU.net] array関数使え
454 名前:デフォルトの名無しさん [2025/04/24(木) 20:49:52.86 ID:9Ww3k6uP.net] >>447 どう言う配列でしょうか? 関数の計算結果が入った1次配列でしょうか?
455 名前:デフォルトの名無しさん mailto:sage [2025/04/24(木) 21:45:53.65 ID:pk6Uyn00.net] 話題かわるけど、exce.live使ったことあるやついる? 今日、お客さんから聞かれたんだけど、本家以外の情報が皆無で。マイクロソフト公式からダウンロードできるから、怪しくはないと思う、とだけ言っておいた
456 名前:デフォルトの名無しさん [2025/04/24(木) 22:02:59.97 ID:xYJ9bO0b.net] >>443 Forbidden
457 名前:デフォルトの名無しさん mailto:sage [2025/04/24(木) 22:06:30.71 ID:hG5Dm3ai.net] >>450 話題どころかスレ違い
458 名前:デフォルトの名無しさん [2025/04/24(木) 22:26:01.96 ID:9Ww3k6uP.net] Static ステートメントとか、ParamArrayとか、まだまだ知らない事だらけだなぁ
459 名前:デフォルトの名無しさん mailto:sage [2025/04/24(木) 22:34:31.26 ID:pk6Uyn00.net] vbaの質問だからここかと思ったけど、違うのか
460 名前:デフォルトの名無しさん mailto:sage [2025/04/24(木) 22:40:35.14 ID:y97YKOAy.net] >>454 VBAじゃないけど何を見てVBAだと思ったのか
461 名前:デフォルトの名無しさん mailto:sage [2025/04/24(木) 22:43:45.46 ID:pk6Uyn00.net] 元々はインターネ
462 名前:ットから自作vba関数を呼べるか?というお客さんの質問から、それにたどり着いたんだけど、スレ違いならまあいいや。誘導先あればよろ [] [ここ壊れてます]
463 名前:デフォルトの名無しさん mailto:sage [2025/04/24(木) 22:48:56.22 ID:pk6Uyn00.net] それかvbaのコードで代替手段があれば、それを教えて貰うほうが嬉しいが
464 名前:デフォルトの名無しさん [2025/04/24(木) 23:34:51.71 ID:9Ww3k6uP.net] >>456 Power Automateからデスクトップ版Power Automateのフローを実行して、マクロブックを開いてマクロ実行
465 名前:デフォルトの名無しさん mailto:sage [2025/04/24(木) 23:40:15.35 ID:d0sUSPt9.net] https://i.imgur.com/MH2glZF.png
466 名前:デフォルトの名無しさん [2025/04/25(金) 06:34:58.46 ID:dnInGKcO.net] 自分の業務を少しでも助けるためのマクロを書いてたのだが、 そろそろoffice script に移行しようとしてつまづきまくり
467 名前:デフォルトの名無しさん [2025/04/25(金) 07:29:28.50 ID:/g0CbH00.net] vbaのフォームが古臭くて嫌なんだけど
468 名前:デフォルトの名無しさん mailto:sage [2025/04/25(金) 09:31:20.86 ID:TZkMTXnM.net] ラベルとテキストボックス駆使して自作できるよ 何なら図形とか画像とか貼り付けて工夫してもいいし それらをクリックすることで別の動作させるとかも ま、センス無いとずっと使い続けても飽きないフォーム作るのは大変だし やっぱ奇抜過ぎて評判悪くてオーソドックスに立ち返るなんて経験もいいのかも
469 名前:デフォルトの名無しさん mailto:sage [2025/04/25(金) 10:00:05.67 ID:CvA5DtPe.net] モダンUIに寄せたい気持ちはわかる 今時Windows2000かよ!みたいなダイアログが出てくると驚く
470 名前:デフォルトの名無しさん [2025/04/25(金) 15:12:56.80 ID:25bmG4NH.net] 細部にこだわるか、正常に動けば良いのかは人によるだろうな もっと優先してやることはないのか?
471 名前:デフォルトの名無しさん mailto:sage [2025/04/25(金) 19:40:58.08 ID:orbf6qCm.net] VBAと同じくらい簡単でモダンっぽいUIにしたい場合って、今は何を使うのがいいのかな。Pythonのfletなんかはかなり簡単っぽいが。
472 名前:デフォルトの名無しさん mailto:sage [2025/04/25(金) 19:49:49.85 ID:ScCl4KIR.net] VisualStudioでVB.NETやろ
473 名前:デフォルトの名無しさん mailto:sage [2025/04/25(金) 19:56:48.42 ID:DbDcSEbW.net] ノーコード/ローコードでいいだろ MS365の契約あるならPowerAppsから試してみたら
474 名前:デフォルトの名無しさん mailto:sage [2025/04/25(金) 21:21:31.07 ID:235iTcZf.net] fletはたいしたことしないならさくっと作れて良い
475 名前:デフォルトの名無しさん [2025/04/26(土) 09:23:31.77 ID:hSaHsy30.net] VBAは簡単、プログラミング言語ですらない VBAは属人化する、しやすい 見事な矛盾だね
476 名前:デフォルトの名無しさん mailto:sage [2025/04/26(土) 09:50:16.77 ID:kN9FmZ13.net] >>413 にあるとおりだよ。コードを書く人間にきちんとしたスキルがあり、会社側にまともな管理体制があれば、基本的に属人化の問題というのは生じない。VBAは構造的にどちらの条件も欠きがちだから、属人化の問題が指摘されやすい。それだけの話。
477 名前:デフォルトの名無しさん mailto:sage [2025/04/26(土) 09:58:22.07 ID:iRBbkycD.net] そう、つまるところバカが使うからバカなものができるってだけの話で、何も矛盾しない ただ、仕事でバカとかクソとかいう表現は憚られるから「属人化」(=他人が触りたくないクソ)と表現する
478 名前:デフォルトの名無しさん mailto:sage [2025/04/26(土) 11:19:16.93 ID:SDFKeMf3.net] まだやるのか? やるなら先ずは「属人」てのを定義しろ それの延長で属人的・属人化って奴を述べろ 若しくは「VBAは属人的だから悪だ」ってサイトのリンク貼るでもいいし それを踏まえたうえで語らなきゃ、個人の勝手な思い込みを主張してるだけに成り果てて それこそ「モノホンのバカ」だろ ぼくはバカですって書いてるに等しい
479 名前:デフォルトの名無しさん mailto:sage [2025/04/26(土) 12:23:43.88 ID:B+cR9sp6.net] 自分の意見は>>413 、425、430辺りに既に書い
480 名前:たし、自分の意見と必ずしも一致する見解ばかりではないが、「VBA 属人化」で検索すればいくらでもこの話題は出てくるでしょ。 VBA好きな人が属人化の話題を避けたがるのは分かるんだけど、他の言語と比べて属人化の問題を指摘されることが顕著に多いということまで否定しようとするのはさすがにムリがあるよ。属人化が指摘されることが多いというのは、ハードルの低さ・アプローチのしやすさという強みの裏返しなんだけどね。 [] [ここ壊れてます]
481 名前:デフォルトの名無しさん [2025/04/26(土) 12:44:03.71 ID:aliF/5Yp.net] 異動や退職するときvba消していってほしい。
482 名前:デフォルトの名無しさん [2025/04/26(土) 13:08:06.04 ID:TbcyjxDY.net] OSから初期化やろ
483 名前:デフォルトの名無しさん mailto:sage [2025/04/26(土) 15:51:46.44 ID:IX/fzv3g.net] >>473 その理屈だとCでもRustでもPythonでもRubyでも属人化する訳だが VBAは参入障壁が低い(んだろうと思う)ことが属人化に拍車を掛けてる罠 (要するに馬鹿でも使えるってこと)
484 名前:デフォルトの名無しさん [2025/04/26(土) 16:45:09.66 ID:lLp4rKiB.net] これに限らず仕事全般に言えるけどセンスが全てだわ 本で知識だけびっしり学んだだけの自称VBA出来ますの作るシステムは使い物にならん というかシステム組む頭すらないし
485 名前:デフォルトの名無しさん mailto:sage [2025/04/26(土) 17:07:15.54 ID:B+cR9sp6.net] Rustみたいに書くこと自体が難しいとされているような言語はともかくとして、PytnonやRubyが今のVBAと同じような感じでExcelに組み込まれて、Excelで実行できたとしたら、たぶん今のVBAと同じような感じで属人化の問題を指摘されることになったと思うよ(そこからのリカバリーはVBAより多少はマシかもしれないが)。
486 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 09:59:46.14 ID:HBc7xJ0o.net] 僕はもう書いただの検索しろだのは話をややこしくする元だから定義しろと書いたんだが 今書かれてる「属人化」てのは、有頂天になった社員がVBA駆使して作業を自動化したはいいが そいつが退職したら他の誰もがそのメンテ出来なく成って業務大混乱右往左往 てコトでいいのか? じゃあさ、他の例えで、自動車免許持ってる奴が仕事で車使って仕入だ配達だに奔走してくれてた しかし、そいつが辞めて他の社員は免許持ってる奴が誰一人居なくて業務に支障が出まくり も属人化か? そン時は会社としてはどう対応したらいいんだ? 自転車に積んで何十回も往復するなり、外注下請けに作業を委託するなり、免許持ってる奴を募集したり どうとでも好きな方法選べるだろ? それを殊更「属人化」とか特殊な事例として言い募る界隈には、どんな思惑があるんだ? VBA憎し君が広めてるとしか思えんのだが それとも「VBAの属人化」には何か他の意味があるのか?
487 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 10:51:58.45 ID:PEcsUA/t.net] 話をややこしくするじゃなくて、VBAは属人化の問題を指摘されることが多いということを認めたくなくて必死なだけでしょ。 君が挙げた例は、世間でVBAによる属人化の弊害として一般的にいわれている状況と、結果こそ類似するが原因がまったく異なる。 したがって、VBAについて指摘されることの多い属人化と同様の原因に基づくものを「属人化(の弊害)」と呼ぶことにするのであれば、君が挙げた例は「属人化(の弊害)」ではない。 自動車の運転は、運転免許制度によってそれをする人のスキルが保証されているでしょ(VBAと違って)。 また、自動車の運転は、腕の足りない人間がその方法を勝手にカスタマイズしたりすることもできないでしょ(VBAと違って)。 自動車の運転が業務上必要不可欠で業務がそれに依存しているなら、そのことは外形上会社側に明らかだから、会社側はハンドリングの機会も保証されているわけ(VBAと違って)。 大体さ、VBAと違って自動車の運転一般について「属人化(の弊害)」が語られることなんてほとんどないでしょ。その時点で自分の強弁にムリがあると気付かんか? VBAが属人化の問題を指摘されることが多いということを認めたくなくて色々と
488 名前:言い募るのはいいんだけどさ、説得力のないことを書けば書くほど「VBAに強い拘りを持つ人って、やっぱりそういうレベルなんだな」という見方を補強することになりかねないよ。 「VBAはExcelユーザーに最も近い親しみやすい言語、属人化をいわれることが多いのはその代償」ってことで良いじゃない。 [] [ここ壊れてます]
489 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 10:57:39.63 ID:bnOAlujA.net] >>479 運転とプログラマーじゃ、代わりを探す労力に差がありすぎる 免許持ちもVBAが書けるやつもいくらでもいるが、他人の書いたプログラムを解読して修正できるやつってのはちょっとレア しかも、多くの経営者はこれが特殊スキルと思ってないからそんなとこにコストをかけたくないってのが本音 だから問題になる
490 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 11:08:15.27 ID:aTGSLIj0.net] NGワードに属人化を入れることでスッキリさせることに成功
491 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 11:08:56.65 ID:RSOujG5D.net] いやいや、スキル的にできる奴は山ほどいる 問題は、やりたい奴が極めて少ないという点だ まともなプログラミングスキルがあるならもっと面白くてスキルアップできる仕事が山ほどあるのに、安い賃金で誰にも評価されずスキルアップにも繋がらない便所掃除をやりたがる奴はいない
492 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 11:27:31.76 ID:aTGSLIj0.net] ちなみに個人事業主やってて、 どこぞのVBAで抜き差しならなくなったものを書き直して仕様書と併せて納品 あるいはPythonに移植して仕様書と併せて納品してるけど、 おまいらの想像以上に良い金になる 濡れ手に粟
493 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 11:43:54.54 ID:PEcsUA/t.net] 会社側もよほど切羽詰まっていたんだろうねえ。 大局的に見れば抑えられたはずのコストだろうけど、484みたいにそれで儲かっている人が居るならそれはそれで良い話だ。
494 名前:デフォルトの名無しさん [2025/04/27(日) 14:49:25.30 ID:rRExk4WB.net] 運転でもうまいやつとへたなやつがいるだろう VBA使いにはプログラミングやシステム設計がへたなやつが多いということ
495 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 15:15:18.84 ID:0hsNeEWH.net] 適当にかじって自分用に作ってるからな
496 名前:デフォルトの名無しさん [2025/04/27(日) 16:07:51.42 ID:SWrT9XSV.net] 逆引き大全買っちゃった
497 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 16:31:38.91 ID:HBc7xJ0o.net] 君が挙げた例は「属人化(の弊害)」ではない。 だから、定義しろっつってんの じゃあ、どういうのがVBAの弊害と世間一般では言われてんだよ?って聞いてんの コッチが例え話すりゃあ「それはちがう」 単なる例え話だぞ? 免許が特殊な技術的国家資格とかでもいい ウエが阿呆だから現場でそんなてんやわんやが発生すると書いた人が居るけど、その通りの事を言ってるんだ 上長がしっかりして、そういった個人技術を全体に普及・波及する努力をしてりゃあ、誰が抜けたところで 即座に困る事なんかほぼほぼ無いんだ 鼻くそ丸めながら「なんか知らんが勝手な事してる奴が居るなあ」 でのほほんとしてるから、いざ退職されてから困り果てる そんな会社は潰れたって構いやしないだろうに それが例えば従業員数百人規模の会社だろうとだ ま、数千人規模でもおんなじだけど ご利益にも繋がらないような「VBAは属人的」なんてぇお題目唱えてるだけで、何らの解決策も講じないような スカポンタンな集団が蔓延るのが鬱陶しいんだ 六根清浄と唱えてる方がまだご利益ありそうだろ 違うか? なんか知らんがその辺に転がってる耳触りだけはいいビジネスワードを、これ見よがしに口真似して その本質を見ようともしないで得意満面な奴は、ぶっ飛
498 名前:ホしたくなるってだけ ひと頃流行った「悩ましいですねえ」とかと一緒 (一生悩んでろ、ボケ)と罵ってるようなもの 「一旦社内で揉んでみます」とかなら、まぁまだ分かるが [] [ここ壊れてます]
499 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 16:39:50.30 ID:HBc7xJ0o.net] VBAは属人的 とはつまり、事務業務に根本的な問題がある企業のくせに 責任を末端に押し付けるブラック体質だと、自ら公言してるに等しい阿呆責任者の言い逃れに過ぎない
500 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 17:10:22.95 ID:9974j3MB.net] 属人化って要するに担当者が意地悪してるだけやん? 使い方をちゃんと教えてくれて、ソースもパスワードかけずに公開してたら読めるヤツは読むぞ コピペしか能のない奴には他人のソースが読解できないってだけの話やら?
501 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 17:19:04.92 ID:oHyIRNV3.net] 多くの場合、VBAは大したことやってないのに担当者のスプログラミングスキルの低さ故に無駄に複雑かつ保守性の低いものになっており、 後から他人が読み解いてメンテを継続するのは非常にコスパが悪いケースが多い コスパ的には多くの場合において棄てて仕切り直した方がマシなのだが、とはいえ中途半端に自動化されているため、いざ棄てると一時的にそれなりの業務効率の低下が生じる その業務効率の低下量をVBAにおける「属人性」と定義するのがよろしい
502 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 17:39:11.20 ID:PEcsUA/t.net] >>489-490 VBAは属人性の問題を指摘されることが多いというのをどうしても否定したいんだね。「VBAに強い拘りを持つ人って、やっぱりそういうレベルなんだな」という印象は強まるばかりだけど。 会社側がきちんと管理できる体制なら属人化の問題は生じないというのは最初から書いているでしょ。だからこそ、VBAの属人化リスクが広く認識されるようになった今では、多くの会社が、VBAを全面的に禁止するなり、個人の裁量の範囲内でのみ許可したりという形で対応しているんだよ。 会社の多くはVBAの属人化リスクを認識して既にその対応をとっているわけで、属人化リスクが高いということ自体を否定したがる君のような議論ははっきり言って周回遅れなんだよ。 君は、「個人技術を全体に普及・波及する努力」というのを唯一のあるべき管理体制として捉えているみたいだけど、残念ながら多くの会社は、素人の書いたVBAコードに対して管理コストを投下するほどの価値を認めていない。だから、「使うな」とか「使ってもいいけど個人で責任のとれる範囲内で」という方針にしているわけ。 ついでにいえば、属人化という言葉には、会社が社員に責任を押し付けるというニュアンスも特にない。VBA はExcel内で書いて実行できるので、質の低いコードがいつの間にか業務に使われているという好ましくない事態が生じる可能性が他の言語と比べて顕著に高い。それで痛い目を見た会社が少なからずあったのでリスクとして認識されるようになったに過ぎない。
503 名前:デフォルトの名無しさん [2025/04/27(日) 19:30:20.87 ID:22nZEpjv.net] Power Automateで思ったんだけど 一つ一つごとのループブロックごとにそれぞれ別の変数(カウンタやカレントなど)を設定する事によって、変数のスコープを極小にする、 むしろカプセル化の様にループブロックやコードブロックの外からアクセスを受け付けない、という事がこれからの当たり前になるのだろうか。 もはや一つ一つのコードブロックが別々のプロシージャなんだと 人智を超えていても、ソフトウェアがそれを補えるし
504 名前:デフォルトの名無しさん [2025/04/27(日) 19:33:19.45 ID:22nZEpjv.net] VBAはVBAでも、APIの様な高度な知識が必要なやつはさすがに属人化だと思う(APIはまだやってないだけ、かも知らないけど) 基本的なメソッド、オブジェクトだけだよね
505 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 19:46:24.57 ID:bnOAlujA.net] 一定のスキルがあれば、APIの意味や使い方なんてぐぐればわかる ドキュメントはみんなネットに公開されてるんだから
506 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 20:34:34.42 ID:RSOujG5D.net] >>494 そんなもんVBA以外のプログラミング言語は20年以上前から当然にみんな
507 名前:そうなってる [] [ここ壊れてます]
508 名前:デフォルトの名無しさん [2025/04/27(日) 21:56:06.79 ID:22nZEpjv.net] >>497 じゃあC言語とかでもそうなのですか?
509 名前:デフォルトの名無しさん [2025/04/27(日) 22:00:02.07 ID:22nZEpjv.net] >>497 いやいや、パッと調べただけでも他言語でも変数の使い回しできてるじゃん 私が言いたいのは一つのループブロックごとに、他の箇所では再利用できない変数一つという事
510 名前:デフォルトの名無しさん mailto:sage [2025/04/27(日) 22:56:41.73 ID:RSOujG5D.net] 例えばC#のforやforeach文のループ変数はそのループの中だけで有効だが、そういう話か? C++も大昔のバージョンを除けば同様
511 名前:デフォルトの名無しさん [2025/04/28(月) 01:52:20.30 ID:hDmEwqG0.net] >>481 >他人の書いたプログラムを解読して修正できるやつ 自分で描いたものでさえろくに保守出来ない香具師の方が大半な現実
512 名前:デフォルトの名無しさん mailto:sage [2025/04/28(月) 10:21:58.00 ID:AuNLagCl.net] ダイクストラが言う構造化プログラミングはモジュールとか抽象データ型とかも含む広範で抽象的な概念として説明されている。 連接・分岐・反復で構成しようという話はそれより前に発表されたものだが、この時代は構造化もクソもないプログラムがまかり通っていたという前提がある。 まずはその三要素を基礎に据えて構成したらわかりやすくね? という提案 (というか感想?) に過ぎず、それで全て事足りるみたいな主張ではない。 (理論上は連接・分岐・反復で全て表現可能であるという証明はされている。) 構造化プログラミングの考え方のキモは構造は人間の認知の中にあるということ。 人間が思考しているときの構造を書き表すためにどんな言語機能 (またはデザインパターン) があればよいの? ってのが構造化プログラミングの議論なんだよ。 書いた人が思ってる構造が表現されているなら構造化プログラミングだし、構造化プログラミングのために用意された機能を使っていても構造が表れていなければ構造化プログラミングではない。 まあついでに言えば書き表されたものについて (コンパイラも人間も) 検証しやすいことも大事だ。 機械的に goto を除去したらむしろ構造が失われるという例をクヌースが出したりもしていて、結局のところはどんな機能も正しく使えば正しいし、悪い使い方をすれば駄目になるというシンプルな話。 そんなわけで break が構造化を崩すか崩さないかは使い方による。 ただ、常識的に考えて break は goto より構造を破綻させにくいだろうってだけ。
513 名前:デフォルトの名無しさん mailto:sage [2025/04/28(月) 11:10:41.08 ID:6D3yvt7l.net] どこのスレの誤爆かな?
514 名前:デフォルトの名無しさん [2025/04/28(月) 16:28:52.13 ID:5fRt9Dct.net] SQLiteのデータベースをODBC経由ADODBで引っ張ってきてるけど、 CopyFromRecordSet で一発で貼るのと 1行1カラムずつ地道に貼るのとで 267件中1件1カラムだけ違う これは何なんだろう
515 名前:デフォルトの名無しさん mailto:sage [2025/04/28(月) 17:32:10.75 ID:L3M/APjY.net] 知らんがな 違うと思ったならチェックしたんだろ?どう違うかを知っているのはお前だけ
516 名前:デフォルトの名無しさん mailto:sage [2025/04/28(月) 19:04:28.97 ID:opVSzI03.net] >>504 自分で作ったコードを調べて原因を見つける能力がない無能っぷりを白状しているようにしか見えない
517 名前:デフォルトの名無しさん mailto:sage [2025/04/28(月) 19:12:48.88 ID:77Ku1S4P.net] 質問スレなんだし、そんなにきつく当たらなくてもいいんじゃない? もう少しゆるい感じでやっていこうよ。
518 名前:デフォルトの名無しさん [2025/04/28(月) 19:29:47.71 ID: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 名前:デフォルトの名無しさん [2025/04/28(月) 19:34:46.10 ID:aApiL0z1.net] どう違うのかも書かない無能だから
520 名前:デフォルトの名無しさん [2025/04/28(月) 20:16:18.13 ID:Fc2g4rbd.net] PowerQueryの方がVBA よりも処理が高速なはずだ と思っていたけど、配列を使えばVBAの方が処理が高速だったよ
521 名前:デフォルトの名無しさん mailto:sage [2025/04/28(月) 22:36:06.18 ID:opVSzI03.net] >>508 一カ所違うというのは実データがおかしな変換をされているのか? それとも一方のデータが 多い/少ない と言っているのかな?
522 名前:デフォルトの名無しさん [2025/04/29(火) 00:38:17.02 ID:Cio0Z7DT.net] >>511 ざっくり例えると、1件ずつ処理すると元データどおり みかん 150円 バナナ 200円 りんご 250円 となるところがCopyFromRecordSetだと みかん 150円 みかん 200円 りんご 250円 になる感じかな もちろん今回が初めてのケース
523 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 03:39:13.13 ID:uCA5xnZY.net] >>512 再現性があるか 何番目がおかしいか 一度にコピーする件数を少しずつ減らしたらどうなるか そういう地道な作業を繰り返して、条件を絞り込み、原因を突き止めていくんだ
524 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 05:46:13.95 ID:DUP3Wr3v.net] 重複したデータでなければプログラムに問題がありそうだけどなぁ ザックリすぎてわっかんねぇなぁ
525 名前:デフォルトの名無しさん [2025/04/29(火) 05:58:53.59 ID:NELjOoG5.net] 質問の間抜けな感じからして凡ミスやな
526 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 06:09:56.99 ID:DUP3Wr3v.net] スゲー適当なんだけど違いが1件ってことはEOFが入ってるとかそんな感じかな?
527 名前:デフォルトの名無しさん [2025/04/29(火) 09:40:01.77 ID:Cio0Z7DT.net] >>513 同じデータをAccessにインポートして実行→再現せず SQLiteで検索するデータ量を減らす→再現せず で、よく見たら256レコード目で検索条件(SQL文)変えても必ず発生することがわかった SQLite3 ODBC DriverからADODBでデータ取得してCopyFromRecordSetでデータ貼付けすると起こる データ取得方法は同じでも1レコード1カラムずつデータ貼っていくと起こらない ダミーデータ作って色々試してみるかな
528 名前:デフォルトの名無しさん [2025/04/29(火) 09:48:33.61 ID:cxg+2T2y.net] >>517 元データの中に制御文字のようなゴミがあるとか、取得したものを表示する過程でミスっている可能性もある ダミーで試すか、文字コードをバイナリ値でチェックするとかだな あと256番目って数値がbyte扱いで0になってないかとか
529 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 09:57:59.04 ID:LEbvev28.net] 昔Oracleのバグで1件くらい少ないレコードセット返ってくるバグ思い出した
530 名前:デフォルトの名無しさん [2025/04/29(火) 11:15:10.56 ID:Cio0Z7DT.net] ダミーでも再現した SQLite側のフィールドがTEXT型の場合のみ、256レコード目の内容が255レコード目と同じになる INTEGER方だと起らない
531 名前:デフォルトの名無しさん [2025/04/29(火) 11:17:05.94 ID: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 名前:デフォルトの名無しさん [2025/04/29(火) 12:21:37.37 ID:TmvDscRd.net] 属人的と言うなら車間距離だな ExcelやVBA利用者には車間距離詰める馬鹿が多過ぎる 総じて「だろう運転」ばかりしていて「かもしれない運転」なんて眼中に無い そもそもMicrosoft開発陣が「だろう運転」を推奨してる節がある
533 名前:デフォルトの名無しさん [2025/04/29(火) 12:25:39.07 ID:Cio0Z7DT.net] 連投失礼、256だけじゃなく512,768,1024も同じ現象だった
534 名前:デフォルトの名無しさん [2025/04/29(火) 13:23:59.14 ID:lJszgH0z.net] ODBCのバージョンと定義がわかる画面貼っとけ
535 名前:デフォルトの名無しさん [2025/04/29(火) 14:30:57.99 ID:AuvQCcIn.net] 久しぶりに面白そうな話題じゃん 自己解決しちゃっても是非原因教えてね
536 名前:デフォルトの名無しさん [2025/04/29(火) 16:26:16.90 ID: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 名前:デフォルトの名無しさん [2025/04/29(火) 16:31:39.01 ID:Mpe85ZPY.net] >>526 やっと全部情報を出してきた だから馬鹿とか罵られていたんだよ ドライバのバージョンを替えてみ
538 名前:デフォルトの名無しさん [2025/04/29(火) 16:37:30.76 ID:Cio0Z7DT.net] >>525 早速自決w Set dbrs = New ADODB.Recordset dbrs.CursorLocation = adUseClient dbrs.Open "select * from testtbl", dbcn, adOpenStatic, adLockReadOnly で正常になった お騒がせしました
539 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 16:47:03.16 ID:EclpVRbh.net] ちょうど総合相談スレでも 3時間くらい前に発生した本日の事案への弔辞 > 介錯人は頼んだのかな > 成仏しろよ
540 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 16:58:21.16 ID:EclpVRbh.net] 「自決」の辞書上のもう一つの意味、民族自決主義の「自決」は 「自分の意志で自分のことを決めること」だけど、 くだんの「自決する」の文脈は、意志うんぬんや決めるとかの流れはない。 なので、「問題を自分で解決した」という意味はならなさそう・・・ とマジレスしてみる
541 名前:デフォルトの名無しさん mailto:sage [2025/04/29(火) 20:39:35.35 ID:la4ZcTxc.net] 自分のケツのことかと思った
542 名前:デフォルトの名無しさん [2025/04/29(火) 21:12:16.89 ID:hhMpSOWT.net] 痔になったケツかと思った
543 名前:デフォルトの名無しさん [2025/04/29(火) 22:00:44.14 ID:V3jk1q3e.net] WinAPIでvisual styleを適用させたい office2021だとCreateWindowEXで作ればvisual styleになるのにoffice2019だとならない
544 名前:デフォルトの名無しさん [2025/04/29(火) 23:44:21.62 ID:jEUD8QFb.net] 今頃になって列の行ごとの文字列のReplaceは、まず文字列をカンマでもなんでもいいから全部くっつけてひとまとめにして変数に代入して、Replace(文字列,検索文字,"")すれば一括で置き換えられるって理解したよ そしてSplitで配列に戻して元通り
545 名前:デフォルトの名無しさん [2025/04/30(水) 01:17:17.74 ID:0P1GE/1d.net] >>533 ComCtl32.DLLにリンクしてないからだと思う
546 名前:デフォルトの名無しさん mailto:sage [2025/04/30(水) 03:14:35.45 ID:IvfkHP7P.net] >>534 たまたまデリミタと同じ文字(列)がデータにも含まれててExcelのバグだと騒ぐまでがセット
547 名前:デフォルトの名無しさん [2025/04/30(水) 06:29:26.31 ID:7AsrwtYN.net] >>536 わかるわかる