1 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 07:07:35.59 ID:tS4zKdphH.net] !extend:checked:vvvvv:1000:512 !extend:checked:vvvvv:1000:512 ↑同じ内容を3行貼り付けること ExcelのVBAに関する質問スレ コード書き込みや作成依頼もOK 次スレは>>980 が立てること 無理なら細かく安価指定 ※前スレ Excel VBA 質問スレ Part76 https://mevius.5ch.net/test/read.cgi/tech/1651339421/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
654 名前:デフォルトの名無しさん [2022/09/18(日) 16:13:20.55 ID:wwX2JCe10.net] VBAと他言語できる人にしつもん 今までVBAしか知らなくていま他言語勉強してます VBAだったらエクセルのシートに書いとけば良かったデータとか 一体どこに書いとけばいいのかしら プログラム内の配列とかじゃ電源切ったら消えちゃうでしょう やっぱデータベースソフトとか別にいるの? 言語はPythonとC 記録したいのは株価の過去データとかです
655 名前:654 mailto:sage [2022/09/18(日) 16:25:19.20 ID:wwX2JCe10.net] ちなみにSQLとかあるのは知ってますが 数千行程度のデータでもそんなの使わなくちゃいけないのでしょうか また別に勉強しなくちゃなんないし、面倒くさい もっと楽な方法ないもんかと(´・ω・`)
656 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 16:34:05.92 ID:K8Zbj7cX0.net] データベースの導入が敷居が高く億劫と思うのならば Pythonから慣れているexcelファイルを操作すればよい そしてプログラムを組んでいるうちにいろいろ面倒で非効率である感じ データベースの素晴らしさに気づいたときにデータベースを始めればよい 確かにpythonとデータベースを同時に学習するのは大変だよね
657 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 16:45:16.35 ID:aJoH8T5Ea.net] >>655 > もっと楽な方法ないもんかと(´・ω・`) はい、解散!
658 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 16:46:45.71 ID:Ufv82Dax0.net] >>654 VBAで作ったのをGoogleスプレッドシートに移行しつつある。 シートを複数人で同時参照できるとかメリットも多い。
659 名前:デフォルトの名無しさん [2022/09/18(日) 16:47:16.95 ID:si+E4x/dd.net] csv,tsv,xml,データベースとか色々あるだろ そういうのが難しいと思うならやめとけ
660 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 17:54:45.16 ID:69Jy4am90.net] >>654 Python のオブジェクトとしてデータがもう手元にあるなら pickle でそのままディスクに残せる。もしくは csv か json に出力するか データベースでもsqliteならサーバー立てる必要もない
661 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 17:57:42.22 ID:qB0Seojna.net] >>651 そう そしてお前らもここも終わり ~終了~
662 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 18:49:48.79 ID:Nkc7aKdEd.net] >>654 「とか」に何が含まれるかしらんけどその程度のデータならDBなんて使わなくても 今まで通りExcelブックでもいいし、テキストファイルでもなんでもいいのでは 今時の言語(ツール)ならそれぞれのデータにアクセスするライブラリもあるから 質問にある内容だけなら言語なんてなに使っても問題ない >>655 自分ができる中で楽な方法を探すならまだしもできないことだらけで楽な方法なんてないんじゃない お金があるなら外注で作ってもらえば楽かもね 世間にあるIT企業はそういうもんだし
663 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 19:07:54.85 ID:N1Q6b8hc0.net] 世の中は金あるヤツが強い
664 名前:654 [2022/09/18(日) 19:53:45.66 ID:wwX2JCe10.net] 皆々様がたありがとう とりあえず>>656 氏の方針でいく >>657 君はなにもわかっていない 他の商売は知らんがプログラマーの場合 「面倒くさい、なんか楽な方法ねえかな?」からスタートする Zed Shawがそう言っている
665 名前:デフォルトの名無しさん [2022/09/18(日) 19:55:06.18 ID:si+E4x/dd.net] はい、また他人の言葉を鵜呑みにする馬鹿でしたとさ
666 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 20:11:40.98 ID:/3elu/X80.net] >>664 お前なにを勘違いしてるのか知らんけどプログラマーは 「楽をするためには苦労をいとわない」 という生物だぞ 単に楽をしたいなら>>662 が言うように外注しろよw
667 名前:デフォルトの名無しさん [2022/09/18(日) 21:07:19.77 ID:a87PubfG0.net] んなわけない。 そういうのは、安月給でヤリガイ搾取されてるような交渉力のないゴミムシ。
668 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 21:30:30.41 ID:N1Q6b8hc0.net] このスレを含めてインターネットを鵜呑みにしてはいけません!
669 名前:デフォルトの名無しさん [2022/09/18(日) 21:53:06.97 ID:oVIBC1f90.net] >>655 vba、C#、python、web系色々と勉強してきたけど、 単純なデータの入出力だけならエクセルvbaがダントツで一番楽 超絶高機能なエクセルってものがあるのにわざわざ他言語を選ぶ理由がない なおスプレッドシート+jsでも良い
670 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 22:11:40.89 ID:JTgtpdd/0.net] プロのバックエンド・エンジニアなら、 YouTube で有名な雑食系エンジニア・KENTA の初心者向けRuby on Rails サロンが有名。 他には、RUNTEQ、東京フリーランスのデイトラなどもある バックエンドは、Linux, Docker, AWS, データベース(DB)などが必須。 データベース・スペシャリストの資格があれば、部長クラス RailsのO/R マッパーでは、DBの設計の仕方・組み方ばかり勉強する。 第3正規形、1対多・多対多とか、検索用インデックスの作り方など
671 名前:デフォルトの名無しさん [2022/09/18(日) 22:19:10.17 ID:si+E4x/dd.net] >>670 釣り?それとも真正馬鹿? それもいつものキチガイRubyクズ?
672 名前:デフォルトの名無しさん [2022/09/18(日) 22:23:40.29 ID:oVIBC1f90.net] rubyとかもうすぐ無くなる言語じゃん
673 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 22:27:42.29 ID:K8Zbj7cX0.net] VBAももうすぐ無くなると言われてから延命してるな
674 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 23:15:37.10 ID:69Jy4am90.net] Rubyとか2005年で時間止まってる?
675 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 01:07:42.95 ID:iZ5Ix3Ky0.net] >>669 ほんとうにそう思う データをシートに書けばいろいろ考える必要なくアクセスできるもんね IDEでそういうとこが簡単にできるシートを作って欲しいもんだ
676 名前:デフォルトの名無しさん [2022/09/19(月) 01:41:49.94 ID:iY8r+Bg+0.net] この人もRubyがいいと言っている。 https://youtu.be/ipMC90r26uA 完全に時代遅れ。 もうむちゃくちゃ。 自分を客観視できていない。
677 名前:デフォルトの名無しさん [2022/09/19(月) 05:00:23.87 ID:EY8w4DgiM.net] >>675 小規模なデータしか扱ったことのない馬鹿
678 名前:sage [2022/09/19(月) 08:40:56.76 ID:ReLBLDbZ0.net] ↑ なんか幼稚な煽りしてる奴いてるなあ そんなことしてて楽しいのか
679 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 09:31:55.83 ID:vK/zDm8+d.net] このまえ2000万レコード扱った時はC#でSQLite使った
680 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 10:27:41.73 ID:WQozd2gd0.net] そろそろExcelもビッグデータを扱えるようにしないと時代に取り残される 最低2億レコードぐらいは一発で実用時間内で処理できないと
681 名前:デフォルトの名無しさん [2022/09/19(月) 11:09:06.92 ID:NE4NRLG3F.net] tksqlite便利ですぉ
682 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 11:17:10.29 ID:/tS0t+5W0.net] それソフトよりもハードの問題じゃね
683 名前:デフォルトの名無しさん [2022/09/19(月) 14:37:24.08 ID:Z9ZARiSG0.net] >>679 どうだった? 更新、遅くならんかった?
684 名前:デフォルトの名無しさん [2022/09/19(月) 14:45:49.33 ID:LZxjUErQd.net] >>678 内容を理解できない馬鹿は黙っていればいいのに
685 名前:デフォルトの名無しさん [2022/09/19(月) 15:32:14.37 ID:Z9ZARiSG0.net] >>680 アクセスでさえテーブル容量に2GBの制限bェあるらしいのbナ、エクセルにbサんなもの求めbトも仕方がないbフでは? 2GBでも、中小企業の在庫管理には十分だし。 エクセルの使い道がない人は、無理して使うものでもないと思います。
686 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 16:01:28.33 ID:vK/zDm8+d.net] >>683 てか、VBAスレでその質問するからには、エクセルとの比較で聞いてるんだろうけど そもそもエクセルでこのボリュームのデータ扱えないから比較できない データベースファイルだけで4GB超えるから
687 名前:デフォルトの名無しさん [2022/09/19(月) 16:05:58.47 ID:Z9ZARiSG0.net] >>686 SQLiteで2000万レコードについて聞いてますよ。 以前試したときは、ファイルが10GB超えるあたりから性能が悪化したんだけど、今はどうなのかなと思って。
688 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 16:10:19.86 ID:vK/zDm8+d.net] >>687 遅いですよ 自分の用途だと十分だけど
689 名前:デフォルトの名無しさん [2022/09/19(月) 16:24:13.35 ID:Z9ZARiSG0.net] そうですか。 ご親切にどうも。
690 名前:デフォルトの名無しさん [2022/09/19(月) 18:23:11.48 ID:mA0CNwkF0.net] win10 office2019 VBAの相談なんですけど、test.xlsmというファイルで練習をしていて エラーが出てエクセルが落ちてしまいました。 そのあと、復旧したファイルでコードチェックをしてエラーが出ないようになりました。 しかし、test.xlsmファイルを開くと「セキュリティに問題がある」うんぬんという警告が そのファイルでだけ出るようになりました。 ささいな事ですが気になっています。 もしかして特定のコードを含んでいると出るのでしょうか? ループ処理が多いとか。
691 名前:デフォルトの名無しさん [2022/09/19(月) 18:26:26.58 ID:QQSMzDQg0.net] マクロの場合って必ずでなかったっけ
692 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 18:47:49.51 ID:b1CdxAyP0.net] トラストセンターで有効にしておけば警告は出ないよ、って言うかこのスレにいる人ならほとんどこの設定にしてると思う https://www.officepro.jp/excelmacro/rec/img/p4-11.png あとは1番下の「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」がクリアされててtest.xlsmにコードを触るようなコードが入ってる場合ぐらいかな
693 名前:690 [2022/09/19(月) 21:28:16.87 ID:mA0CNwkF0.net] >>692 ありがとうございます。 もともとそのチェックはどのファイルにも入っていませんでしたので、 触るコードを書いてるという事かと思います。 どんなコードが該当するのですか? バグに気付けていない可能性もあるので、知りたいです。 オブジェクトモデルっていってもdictionaryを一回重複チェックで使ってるくらいで、 後はsetしてるのは条件付き書式とかworksheetとかworkbookとかrangeくらいでしょうか。 たいした事はしてないのですが、結構長くなってるので特定しづらいです。
694 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 21:42:09.79 ID:b1CdxAyP0.net] >>693 > どんなコードが該当するのですか? そんなもん説明しきれんわ そもそも > しかし、test.xlsmファイルを開くと「セキュリティに問題がある」うんぬんという警告がそのファイルでだけ出るようになりました。 のスクショなりを上げなよ
695 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 22:00:45.12 ID:ai3lFfV6d.net] コードを新規作成したtest 2.xlsm にコピペしてみりゃ一発だろうに
696 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 22:01:05.04 ID:s9D2fBDK0.net] >>679 Ruby on Rails では、2千社・2億レコードでも全く問題ないと、外人が言ってた Railsでは、開発環境ではSQLite も使うが、 本番環境では、MySQL, PostgreSQL Heroku では、PostgreSQL >>676 セレブエンジニアの小松和貴は、反SES/Java で有名。 Java土方はうつ病になるから、やるなと言ってる
697 名前:デフォルトの名無しさん [2022/09/19(月) 22:05:09.07 ID:LZxjUErQd.net] rubyみたいなオワコンを持ち上げるキチガイは消えろ
698 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 22:36:59.93 ID:O/s366mO0.net] 火に油を注ぐ発言はやめような
699 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 23:45:50.71 ID:A/Pc+E3NH.net] 火に油を注ぐから楽しいのに
700 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 00:31:18.18 ID:Rlnm1h+Y0.net] それあぼーんな人だから触らないほうがいいよ
701 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 07:23:58.96 ID:Qfc1UF5x0.net] >>697 黙れハゲ童貞
702 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 08:18:55.69 ID:TKjURbNB0.net] なんだかんだで、納品物はエクセルで!とか言ってるからいつまでもVBAやめられなくて辛い
703 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 12:12:55.21 ID:ZsS5zbqxM.net] >>702 Excelやめてなんのソフトを代替にしたいの?
704 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 14:20:11.48 ID:E6px8L9o0.net] Excelを使わない事務仕事なんか無いだろうね
705 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 14:37:00.62 ID:a8qXzxjlM.net] うちの会社は弥生会計をずっと使ってるぞ
706 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 17:24:35.64 ID:Qfc1UF5x0.net] >>704 うちの会社の経理は紙の帳面だぞ 古代エジプト時代と変わらん
707 名前:デフォルトの名無しさん (スップ Sd3f-w3i5) [[ここ壊れてます] .net] >>706 パピルスと現代の紙とは異なる 髪はその頃と一緒だが
708 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 19:11:26.07 ID:bPcXAKoD0.net] >>702 そんなに辛いなら転職したらいいんじゃね
709 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 20:36:15.87 ID:E6px8L9o0.net] >>706 The 昭和
710 名前:デフォルトの名無しさん [2022/09/20(火) 20:42:24.19 ID:z6cIhAGk0.net] 昭和の頃はすでにMZ-80とか有ったからね。
711 名前:デフォルトの名無しさん [2022/09/20(火) 21:20:11.78 ID:9PvWzZvw0.net] >>695 ありがとうございました。 それで徐々にコードを消していったら判明しました。 助かりました。
712 名前:デフォルトの名無しさん [2022/09/20(火) 21:52:40.24 ID:9PvWzZvw0.net] ユーザー定義型を配列に入れて使っているのですが、nameでソートしたり、 idでソートしたり、ageでソートしたり、その都度いろいろなプロパティでソートをしたいのです。 いままでは一旦二次元配列に入れてソートしていましたが、二次元配列のkeyposにあたるような key elementsみたいに引数で渡す事はできないのでしょうか? Sub Sort(ByRef User as Usertype,ByRef Property asここがわかりません) なんというかworksheetオブジェクトとrangeオブジェクトみたいな関係みたいな 最悪プロパティ毎に違う名前のソート関数にすれば一応好きなプロパティの値でソートして返せるのですが こんな感じで
713 名前:デフォルトの名無しさん [2022/09/21(水) 15:26:19.55 ID:IxQ+qaQI0.net] まずユーザー定義型をクラスにして、その後は IComparer インターフェイスでよしなに Sorting of objects by their properties in VBA https://scripts4all.eu/sorting-of-objects-by-their-properties-in-vba/ 個人的にはここまでやるならVBA以外を検討するけどね
714 名前:デフォルトの名無しさん (ワッチョイ f749-GjCD) mailto:sage [[ここ壊れてます] .net] 別の方法としてADODBでメモリ上にテーブルを持つのもある テーブルにぶち込んでしまえば、ソート、フィルター、その際の項目指定とかどうにでもなる その分のメモリは必要だし、テーブルに対する出し入れの処理はあるので 配列の大きさやソートの頻度で使うかどうか考える
715 名前:712 (ワッチョイ bf66-W3aP) mailto:sage [[ここ壊れてます] .net] >>713 そちらを見に行ってEnumの便利さに気付きました。 二次元配列のfor for ネストでやってるような処理、列が増えるほどだんだん わからなくなりますが、enum使えば二次元配列の利便性も残しつつ ユーザー定義型みたいに使えますね。 二次元配列の悪い所はだんだん自分が何を指定してるのかわからなくなるところだったので、 Enumと相性抜群ですね。 せっかく教えてもらった高度な手法は今回は見送りさせて頂いて、簡単なEnum&二次元配列でやってみようと思います。 感謝です。
716 名前:デフォルトの名無しさん mailto:sage [2022/09/21(水) 20:40:31.74 ID:NsHiQ7yd0.net] 元データがどこにあって、それをソートしてどうしたいのかわからんが 普通に考えればエクセルシートに展開すれば良いんじゃないかと思うんだが
717 名前:デフォルトの名無しさん (ワッチョイ b7da-E+l9) mailto:sage [[ここ壊れてます] .net] たぶんEXCELのソート機能を使わず自分でソートしたいんじゃね
718 名前:デフォルトの名無しさん (アウアウウー Sa5b-8eP5) [[ここ壊れてます] .net] なぜ競プロではVBAの出番が無いのか
719 名前:デフォルトの名無しさん mailto:sage [2022/09/22(木) 11:36:03.90 ID:V4zanZlpM.net] 遅いとか記述が冗長とかサーバーサイドで動かせないとかテクニカルな問題はいくらでもあるけど、 最大の理由は競プロやるような人はVBAなんか使いたがらないから
720 名前:デフォルトの名無しさん mailto:sage [2022/09/22(木) 18:38:55.33 ID:+Wi4osLB0.net] >>718 年末のAdvent of CodeはVBAだかExcelだけかでやってる人たまにいる
721 名前:デフォルトの名無しさん (ワッチョイ 97da-rZTD) mailto:sage [[ここ壊れてます] .net] >>666 いいえて妙、ワロタw
722 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 19:12:26.46 ID:27USMHor0.net] 外注ってやっぱ高い?
723 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 01:17:31.15 ID:mU6CwKwa0.net] 素人にやらせると、見かけは安上がりだけど結果的に高く付くことが多い
724 名前:デフォルトの名無しさん [2022/09/24(土) 03:39:42.11 ID:sis0YFKKa.net] 何人で何ヵ月かかるかで金額が変わる
725 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 04:49:54.00 ID:rKbJBgHg0.net] じゃあここのスレの方ならプロだから安心して頼むそうかな?? 金額以外は
726 名前:デフォルトの名無しさん [2022/09/24(土) 05:51:09.21 ID:Bbc/0kyt0.net] RubyはそれだけではDBとなるものを持ってないからEXCELやACCESSのVBAとは比較できない。 もっとも、同様にDBを持たない言語と比較するなら セーフティーでガベージコレクションの概念がなくスピードの速いRust辺りと比べるとゴミ同然
727 名前:デフォルトの名無しさん (ワッチョイ c23d-dJZP) mailto:sage [[ここ壊れてます] .net] エクスプローラーでフォルダーのプロパティを開いて カスタマイズタブのところに「フォルダーの種類」が全般とかビデオとかになってるけど。 これをVBA/VBSで変更できる? フォルダーのtypeを見ても全部「ファイル フォルダー」になる。
728 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 09:33:48.67 ID:DeEi7HC40.net] >>727 レジストリ操作でやりたいことができたわ。
729 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 14:15:19.28 ID:qbD2jrks0.net] お、おう、よかったな
730 名前:デフォルトの名無しさん [2022/09/25(日) 05:30:19.65 ID:/q7OsFL50.net] 一般ユーザがある列のセルを編集できないようにしたい。 でも、VBAの実行や、セル関数の結果は反映させたい。 https://support.microsoft.com/ja-jp/office/excel-%E3%81%A7%E3%82%BB%E3%83%AB%E3%82%92%E3%83%AD%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B-b942fe92-5e87-0985-214b-9617b5b6d53f ↑セルのロック という機能で試してみたがVBAマクロでの変更は許されなくてちょっと困っています。 セルに対してマウスイベントを発生させない。みたいなことを考えて、調べているが。 皆さんも悩まれる案件かと思います。もっと良い方法ないでしょうか?
731 名前:デフォルトの名無しさん [2022/09/25(日) 06:18:07.93 ID:jaItMug30.net] VBAん中でロック解除して 処理終了間際にロックし直しってんじゃだめなの?
732 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 07:44:30.90 ID:dPa0+M2C0.net] SheetSelectionイベントとIntersect使うだけでは
733 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 09:13:59.54 ID:nIE2ah490.net] お願いします。 検索をシートからではなくブックからをデフォルトにしたいです。 下記のサイトのコードを使い検索は出来るのですが、 結果表示ではなく( '<全てのシートの検索が終わったら、結果を表示します。> )、 検索値まで移動するにはどのようにコードを書けばいいか、ご教授願います。。 https://www.moug.net/tech/exvba/0040005.html
734 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 10:44:33.52 ID:mk9vdghN0.net] >>730 worksheet_boforedoubleclick みたいなイベントプロシージャでできる
735 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 10:58:13.51 ID:/q7OsFL50.net] ありがとうございました。 >>731 の方法で簡単にできました。 VBA実行時に保護を解除して、終了時に再度保護をかけることで、 すんなりといけました。
736 名前:デフォルトの名無しさん [2022/09/28(水) 13:31:05.50 ID:/kKDTdjO0.net] A1:10もしくはA100に入力された値を配列に格納しています。 動的配列です。 Select Case 文字列A case A1:A100のどれかに一致するなら case B1:B100のどれかに一致するなら みたいな書き方って出来ないのでしょうか?
737 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 13:35:10.17 ID:Rj0JQSes0.net] ifで条件書けよ
738 名前:デフォルトの名無しさん [2022/09/28(水) 15:15:27.03 ID:n6LgYqsE0.net] >>736 恐らく出来ない。 ただ、Select Case の後の文字列の部分をTrueとして、 A10:A100の中に該当文字列が有った場合、 Trueを返す関数を作成して、Case文の後ろに記載して その条件に当たったかを判別して、Case文の下に その条件下での処理を記載することは可能。 Caseにある条件のA10:A100にとある文字列が 有った場合とB10:B100にとある文字列が 有った場合と下に続く処理が同じなら、 先程言った関数の引数に対象範囲と検索対象文字列を 持たせておけばCase文を使う必要すら無い。 戻り値がTrueかFalseかをIf文で判断すれば良い。 その辺は実際の状況に合わせて上手く作ってくれ。
739 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 16:15:51.79 ID:vR69ytL90.net] select caseにtrue?? 知らなかったわ何それ??
740 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 18:26:27.19 ID:Pxqx/4k10.net] Do With End With Loop よりも With Do Loop End With の方が計算が早い(PCにとっては楽)と考えてよいでしょうか
741 名前:デフォルトの名無しさん [2022/09/28(水) 19:01:46.26 ID:8l5UWazH0.net] >>736 こんな感じ? https://i.imgur.com/wuSExDf.png
742 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 19:28:29.47 ID:Aad51sjLa.net] >>736 Private Function F(R As RangeRange, S As String) As Boolean Dim C As Range For Each C In R If C.Value = S Then F = True Exit Function End If Next F = False End Function ... Select Case True Case F(Range("A1:100"), 文字列A) ... Case F(Range("B1:100"), 文字列A) ... Case ... End Select
743 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 19:32:38.30 ID:Aad51sjLa.net] >>740 たいていのプログラムだと有意な差はでないから気にせずに作りやすい方で作れ 有意な差がでそうならまず測定
744 名前:デフォルトの名無しさん [2022/09/28(水) 19:38:38.93 ID:n6LgYqsE0.net] >>740 これも恐らくの話で申し訳ないけど、 元々Withで設定されているインスタンスが既に生成されているものであれば、その格納アドレス先を読むだけなので Withがループの外にあっても中にあっても処理コストは変わらないと思う。 変わったとしても繰り返し実行での誤差と見分けが付かない程度と思われる。 逆にインスタンスが生成されておらず、With New 〜 のようにWithでインスタンスを生成する場合は ヒープエリアのメモリにそのインスタンスを展開するため、Withがループの外に有った方が処理コストは低くて済む。 ・・・はず。
745 名前:デフォルトの名無しさん [2022/09/28(水) 19:40:24.19 ID:2tCqxjcra.net] とりっきー
746 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 19:51:29.67 ID:30UfjVhGd.net] >>739 ケツの穴をガバガバにして全通しするいやらしい関数だよ Select Case True Case オナラ よし通れ Case うんこ よし通れ End Select
747 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 21:06:15.14 ID:Apn5XmOg0.net] >>742 結局If文でラップしてるだけじゃん
748 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 21:06:47.83 ID:vR69ytL90.net] >>746 汚ねえな。。 こっちは夕食のカレー食ってんだぞ。。
749 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 21:20:17.00 ID:0sCmeNkX0.net] >>747 If 文でラップとか意味わからんこと言われてもw
750 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 00:27:52.00 ID:tkXe+LzA0.net] ヘイヘイヘイ~! もしも~オブジェクト変数でぇ~宣言したぁ~値がぁ🎵 ラップ調
751 名前:デフォルトの名無しさん [2022/09/29(木) 01:53:20.13 ID:I3DbECBa0.net] ラップのセンスはいまいちだね
752 名前:736 mailto:sage [2022/09/30(金) 17:41:05.63 ID:8DTKPQSA0.net] >>738-742 ありがとうございました。 変数Strの中の値が配列Listのどれかと一致するかということだったので、そのCountIFがまさにその通りでした。 それようの関数書いてSelect case True使わせていただきます。
753 名前:デフォルトの名無しさん [2022/09/30(金) 21:34:23.42 ID:RGIc4eHD0.net] >>752 Select Case True の話持ち出しといてなんだけど 最初のCase の条件に引っ掛かってその下の処理を実行した後でも 次のCaseの条件に引っかかったらその下の処理も実行するからそれだけは気をつけてね
754 名前:デフォルトの名無しさん (スッップ Sd32-r4yT) mailto:sage [[ここ壊れてます] .net] >>753 そんなことないのでは?と思って試したけどやっぱりそんなことなかったんだが 普通はcaseの条件の中に入ったら次のステップはEnd Selectにいかないか? Dim ncount As Long ncount = 0 Select Case True Case 0 = 0 ncount = ncount + 1 Case 1 = 1 ncount = ncount + 1 Case 2 = 2 ncount = ncount + 1 End Select Debug.Print ncount これは1になるんだが