Excel VBA 質問スレ Part77 at TECH
[2ch|▼Menu]
[前50を表示]
600:デフォルトの名無しさん
22/09/14 15:23:36.39 mWSu9Hj1M.net
特にここの奴らの言うことなど……

601:デフォルトの名無しさん
22/09/14 16:32:30.56 AS+oyxbj0.net
このスレも含めてネットをなんでもかんでも鵜呑みにしないように。

602:デフォルトの名無しさん
22/09/14 20:19:10.06 qlFB5bFT0.net
むしろガンガンコードのコピーでも継ぎはぎだらけでも何でもやれ
それで痛い目を見れば二度とやらなくなるだろう
ただし、他の人に迷惑を掛けない範囲でな

603:デフォルトの名無しさん
22/09/14 20:25:13.51 tyPb8uvVM.net
継ぎ接ぎでもなんでも動きゃいいよVBAなんて

604:デフォルトの名無しさん
22/09/14 22:09:32.51 LR6kMMNU0.net
どんなにひどいコードを書こうが仕事は結果がすべて
過程を見て部分点がもらえるのは高校まで

605:デフォルトの名無しさん
22/09/14 23:32:37.08 XFOFR3Sy0.net
ひどいコード書いて、エクセルに殴られたら嫌だなあ

606:デフォルトの名無しさん
22/09/15 02:24:16.54 mZ1kOEzbd.net
>>604
馬鹿はメンテナンスのことを考えない
こういう馬鹿がいるからVBAが禁止の会社が出てくる

607:デフォルトの名無しさん
22/09/15 07:02:34.29 K2oLP0MfM.net
と、馬鹿が申しております。

608:デフォルトの名無しさん
22/09/15 07:47:29.25 p0uH79QOd.net
VBA禁止はメンテがどうのこうのじゃなくて
スキルが低い人間が酷い結果をもたらすコードを書いてしまうからじゃね
下手に書くと他人の労働の成果が一瞬にして無に帰すからね

609:デフォルトの名無しさん
22/09/15 08:13:47.40 V+/rW9Cpd.net
そもそもエクセル側でVBA使ってごちゃごちゃやる職場がセンス無い
エンジニアが管理画面を作ってVBAでやってた処理をそっちでやって、事務系の人は管理画面からcsvを落としてそれをまんま使うぐらいが良い

610:デフォルトの名無しさん
22/09/15 08:15:36.60 HISUe1p20.net
ほいきたばーかばーか

611:デフォルトの名無しさん
22/09/15 08:16:33.94 HISUe1p20.net
CSVって発想がだめだね
プロは引用符も不要になるTSVを使う
うんこ

612:デフォルトの名無しさん
22/09/15 08:20:49.72 tsRCCw+k0.net
いや事務員にはcsvがちょうどいいよ
tsv開けませ~んとか言われるだけ
もっと目線を合わせろ技術キモオタ

613:デフォルトの名無しさん
22/09/15 10:16:19.88 HISUe1p20.net
TSVはメモ帳で開いて全選択のコピペでシートに貼り付けできるんだよ
見事に馬鹿が露呈したな

614:デフォルトの名無しさん
22/09/15 11:34:27.47 9BPOZrDw0.net
いやいや
そこは用途に合わせようよ
PDFやEXCEL出力した場合が良い場合もあるよ

615:デフォルトの名無しさん
22/09/15 14:52:36.98 5XNYG1220.net
なんで事務員がエラーの対処法を知らないんだよ。。
毎日いじってるから一通りの対応はできるだろ?

616:デフォルトの名無しさん
22/09/15 16:19:16.15 9BPOZrDw0.net
エラーの対処法「システム部にお問合せ下さい。」

617:デフォルトの名無しさん
22/09/15 19:11:05.38 5XNYG1220.net
そんなのExcelできる事務員じゃないわ!

618:デフォルトの名無しさん
22/09/15 19:27:19.21 2CSrOwDy0.net
最低限のことしかできないって人結構いるけどな

619:デフォルトの名無しさん
22/09/15 19:44:47.37 bsuDXGPV0.net
ボタン押してるだけの事務いるいる。

620:デフォルトの名無しさん
22/09/15 20:05:30.90 /Qo8z/Hb0.net
ボタンの押し方で仕上がりが変わる。
優秀な事務員はボタンの押し方が素晴らしい。
日本の技術は世界一。

621:デフォルトの名無しさん
22/09/15 20:17:03.66 QyIKtajFH.net
>>608
いいえ、コードは汚いしドキュメントを残さないので、便利であってもレガシーとなってしまうからですよ

622:デフォルトの名無しさん
22/09/15 22:23:17.31 5XNYG1220.net
事務員=Excelを極めている

623:デフォルトの名無しさん
22/09/15 22:31:56.27 QsPmWhIy0.net
VBA のファイル・テキスト処理などは、Ruby に比べて、圧倒的に可読性が悪い。
作った瞬間から、修正できない産業廃棄物となるw
だから、常に廃棄して新規開発しているw

624:デフォルトの名無しさん
22/09/16 00:12:03.43 vQLtnuER0.net
VBAで複雑なものを作ろうという思考がおかしい
適当に組んで動きゃいい程度のスクリプトだろ

625:デフォルトの名無しさん (ワッチョイ 5d79-VPVD)
[ここ壊れてます] .net
VBAに飽きたらVBSがいいよ
VBAの枷から開放される

626:デフォルトの名無しさん (スッププ Sd0a-vfPx)
[ここ壊れてます] .net
>>621
いいえ、レガシーとなることの問題は認めるけど、それは禁止になる理由とはならないわ

627:デフォルトの名無しさん
22/09/16 02:37:02.68 l4bz3k9Q0.net
他人がどんなに良いコードを書いてあろうが、容赦無く切り捨ててイチから書き直すのがプログラマーだと聞いたからよ

628:デフォルトの名無しさん
22/09/16 04:32:30.78 UN95gjXqd.net
>>627
他人から聞いたことを鵜呑みにする馬鹿

629:デフォルトの名無しさん
22/09/16 09:26:48.43 jiIjsvyj0.net
そもそもなんだけど
どんなPG言語使ったって綺麗に書く人は綺麗に書くし
ぐちゃぐちゃにする人はぐちゃぐちゃにする

630:デフォルトの名無しさん
22/09/16 11:41:36.71 eDTruZ7Ya.net
だからほっとけばいい
自分の担当部分だけ直す

631:デフォルトの名無しさん
22/09/16 13:52:21.47 Zuqq5jJMd.net
自分の書くコードと自分に影響する人が書くだけ気にすればいいのに
無関係の人が書くコードなんてきたなかろうがどうでもいいのにな

632:デフォルトの名無しさん
22/09/16 20:53:11.37 IL7FnXUn0.net
>>627
プログラマーはプログラムを書く人だし、設計すればエンジニアだし、営業や事務処理をすることもあるよ
会社員ならわかると思うが他人のコードは他人の給料、自分のコードは自分の給料になるってわかるよね?

633:デフォルトの名無しさん
22/09/17 00:16:02.34 lfSciaka0.net
ならねぇよ。
コード書くだけで給料貰えるとかいつの時代だよ?

634:デフォルトの名無しさん (スップ Sd3f-w3i5)
[ここ壊れてます] .net
下請けの下請けのそのまた下請けの派遣だろ

635:デフォルトの名無しさん
22/09/17 14:40:46.13 P15Vbqti0.net
書けないでコピペするやつのひがみw

636:デフォルトの名無しさん
22/09/17 16:20:56.81 93E6/MjHa.net
コピペばかりのヤツってある意味恥ずかしく無いのかや?
知識ありませーん!
あるのはコピペのスキルだけです!
と、言っているようなモノだぜ。

637:デフォルトの名無しさん
22/09/17 18:06:13.42 T834+5z1M.net
コピペを極めるとオブジェクト指向になるのかもしれんな

638:デフォルトの名無しさん
22/09/17 20:26:19.25 eUUvOszSM.net
オブジェクト指向って奥深いな

639:デフォルトの名無しさん
22/09/17 20:30:59.86 P15Vbqti0.net
コードのコピーじゃなくアプリをコピーして販売したら違法だからな

640:デフォルトの名無しさん
22/09/17 20:39:13.29 lfSciaka0.net
でも現実はコピペ野良マクロ職人が各職場に溢れているんでしょ?

641:デフォルトの名無しさん
22/09/17 21:30:27.81 c/Rfax+qa.net
何もかもは覚えられんからそりゃみんな多少はコピペするでしょな。
問題はちゃんと意味わかって使いこなして、修正や変更の対処ができるかどうか。

642:デフォルトの名無しさん
22/09/17 21:33:47.44 VC1vunq70.net
アマチュアはコピペと卑下するけど
プロは既存コードの利用と言って車輪の再発見で悦んでいる給料泥棒はクビにする
って誰かが言ってた

643:デフォルトの名無しさん
22/09/17 23:02:08.58 Q8wI91eUd.net
>>642
参考にするのとコピペは違う
お前、>>627の馬鹿だろ

644:デフォルトの名無しさん
22/09/17 23:46:26.93 lfSciaka0.net
>>643
そうやってすぐ他人と同一人物と決めつけるヤツの方が余程バカだと思うけどな。
あ、思い込み癖のある病気かゴメンゴメン。

645:デフォルトの名無しさん
22/09/18 05:37:23.90 kct9LvbO0.net
とあるアルゴリズムはコピペして使ったな

646:デフォルトの名無しさん
22/09/18 06:53:23.17 6BtvF8DRa.net
アルゴリズムは脳内コピペで使ってる
でないと例えばクイックソートなんて一生思いつかんし

647:デフォルトの名無しさん
22/09/18 08:41:21.39 flQCTRcU0.net
参考という意味でならコピペすることはあるね。
訳も分からずただ貼り付けて使うのは論外だと思うけど。

648:デフォルトの名無しさん
22/09/18 10:16:08.09 Nn59gXvs0.net
gitやらスニペットやらの今時機能たちを使う試みはよく見ますが
皆さんはどうされていますか

649:デフォルトの名無しさん
22/09/18 10:25:50.10 XVqHa/Kgd.net
>>648
VBAの使用を必要最小限に留める

650:デフォルトの名無しさん
22/09/18 11:33:12.72 Nkc7aKdEd.net
回答の出なくていい話題ばかりでレスが増えてうんざりだな

651:デフォルトの名無しさん
22/09/18 13:38:06.64 KpBP36NGa.net
VBAはオワコン
excelもオワプリ

652:デフォルトの名無しさん
22/09/18 13:39:06.35 RKuP+gWA0.net
>>650
そして一番の問題はそれなのにお前が来て文句を書きなぐることか

653:デフォルトの名無しさん
22/09/18 15:31:19.98 umLTL+l4M.net
>>651
代替ソフトは?

654:デフォルトの名無しさん
22/09/18 16:13:20.55 wwX2JCe10.net
VBAと他言語できる人にしつもん
今までVBAしか知らなくていま他言語勉強してます
VBAだったらエクセルのシートに書いとけば良かったデータとか
一体どこに書いとけばいいのかしら
プログラム内の配列とかじゃ電源切ったら消えちゃうでしょう
やっぱデータベースソフトとか別にいるの?
言語はPythonとC
記録したいのは株価の過去データとかです

655:654
22/09/18 16:25:19.20 wwX2JCe10.net
ちなみにSQLとかあるのは知ってますが
数千行程度のデータでもそんなの使わなくちゃいけないのでしょうか
また別に勉強しなくちゃなんないし、面倒くさい
もっと楽な方法ないもんかと(´・ω・`)

656:デフォルトの名無しさん
22/09/18 16:34:05.92 K8Zbj7cX0.net
データベースの導入が敷居が高く億劫と思うのならば
Pythonから慣れているexcelファイルを操作すればよい
そしてプログラムを組んでいるうちにいろいろ面倒で非効率である感じ
データベースの素晴らしさに気づいたときにデータベースを始めればよい
確かにpythonとデータベースを同時に学習するのは大変だよね

657:デフォルトの名無しさん
22/09/18 16:45:16.35 aJoH8T5Ea.net
>>655
> もっと楽な方法ないもんかと(´・ω・`)
はい、解散!

658:デフォルトの名無しさん
22/09/18 16:46:45.71 Ufv82Dax0.net
>>654
VBAで作ったのをGoogleスプレッドシートに移行しつつある。
シートを複数人で同時参照できるとかメリットも多い。

659:デフォルトの名無しさん
22/09/18 16:47:16.95 si+E4x/dd.net
csv,tsv,xml,データベースとか色々あるだろ
そういうのが難しいと思うならやめとけ

660:デフォルトの名無しさん
22/09/18 17:54:45.16 69Jy4am90.net
>>654
Python のオブジェクトとしてデータがもう手元にあるなら pickle でそのままディスクに残せる。もしくは csv か json に出力するか
データベースでもsqliteならサーバー立てる必要もない

661:デフォルトの名無しさん
22/09/18 17:57:42.22 qB0Seojna.net
>>651
そう
そしてお前らもここも終わり
~終了~

662:デフォルトの名無しさん
22/09/18 18:49:48.79 Nkc7aKdEd.net
>>654
「とか」に何が含まれるかしらんけどその程度のデータならDBなんて使わなくても
今まで通りExcelブックでもいいし、テキストファイルでもなんでもいいのでは
今時の言語(ツール)ならそれぞれのデータにアクセスするライブラリもあるから
質問にある内容だけなら言語なんてなに使っても問題ない
>>655
自分ができる中で楽な方法を探すならまだしもできないことだらけで楽な方法なんてないんじゃない
お金があるなら外注で作ってもらえば楽かもね
世間にあるIT企業はそういうもんだし

663:デフォルトの名無しさん
22/09/18 19:07:54.85 N1Q6b8hc0.net
世の中は金あるヤツが強い

664:654
22/09/18 19:53:45.66 wwX2JCe10.net
皆々様がたありがとう
とりあえず>>656氏の方針でいく
>>657
君はなにもわかっていない
他の商売は知らんがプログラマーの場合
「面倒くさい、なんか楽な方法ねえかな?」からスタートする
Zed Shawがそう言っている

665:デフォルトの名無しさん
22/09/18 19:55:06.18 si+E4x/dd.net
はい、また他人の言葉を鵜呑みにする馬鹿でしたとさ

666:デフォルトの名無しさん
22/09/18 20:11:40.98 /3elu/X80.net
>>664
お前なにを勘違いしてるのか知らんけどプログラマーは
「楽をするためには苦労をいとわない」
という生物だぞ
単に楽をしたいなら>>662が言うように外注しろよw

667:デフォルトの名無しさん
22/09/18 21:07:19.77 a87PubfG0.net
んなわけない。
そういうのは、安月給でヤリガイ搾取されてるような交渉力のないゴミムシ。

668:デフォルトの名無しさん
22/09/18 21:30:30.41 N1Q6b8hc0.net
このスレを含めてインターネットを鵜呑みにしてはいけません!

669:デフォルトの名無しさん
22/09/18 21:53:06.97 oVIBC1f90.net
>>655
vba、C#、python、web系色々と勉強してきたけど、
単純なデータの入出力だけならエクセルvbaがダントツで一番楽
超絶高機能なエクセルってものがあるのにわざわざ他言語を選ぶ理由がない
なおスプレッドシート+jsでも良い

670:デフォルトの名無しさん
22/09/18 22:11:40.89 JTgtpdd/0.net
プロのバックエンド・エンジニアなら、
YouTube で有名な雑食系エンジニア・KENTA の初心者向けRuby on Rails サロンが有名。
他には、RUNTEQ、東京フリーランスのデイトラなどもある
バックエンドは、Linux, Docker, AWS, データベース(DB)などが必須。
データベース・スペシャリストの資格があれば、部長クラス
RailsのO/R マッパーでは、DBの設計の仕方・組み方ばかり勉強する。
第3正規形、1対多・多対多とか、検索用インデックスの作り方など

671:デフォルトの名無しさん
22/09/18 22:19:10.17 si+E4x/dd.net
>>670
釣り?それとも真正馬鹿?
それもいつものキチガイRubyクズ?

672:デフォルトの名無しさん
22/09/18 22:23:40.29 oVIBC1f90.net
rubyとかもうすぐ無くなる言語じゃん

673:デフォルトの名無しさん
22/09/18 22:27:42.29 K8Zbj7cX0.net
VBAももうすぐ無くなると言われてから延命してるな

674:デフォルトの名無しさん
22/09/18 23:15:37.10 69Jy4am90.net
Rubyとか2005年で時間止まってる?

675:デフォルトの名無しさん
22/09/19 01:07:42.95 iZ5Ix3Ky0.net
>>669
ほんとうにそう思う
データをシートに書けばいろいろ考える必要なくアクセスできるもんね
IDEでそういうとこが簡単にできるシートを作って欲しいもんだ

676:デフォルトの名無しさん
22/09/19 01:41:49.94 iY8r+Bg+0.net
この人もRubyがいいと言っている。
URLリンク(youtu.be)
完全に時代遅れ。
もうむちゃくちゃ。
自分を客観視できていない。

677:デフォルトの名無しさん
22/09/19 05:00:23.87 EY8w4DgiM.net
>>675
小規模なデータしか扱ったことのない馬鹿

678:sage
22/09/19 08:40:56.76 ReLBLDbZ0.net

なんか幼稚な煽りしてる奴いてるなあ
そんなことしてて楽しいのか

679:デフォルトの名無しさん
22/09/19 09:31:55.83 vK/zDm8+d.net
このまえ2000万レコード扱った時はC#でSQLite使った

680:デフォルトの名無しさん
22/09/19 10:27:41.73 WQozd2gd0.net
そろそろExcelもビッグデータを扱えるようにしないと時代に取り残される
最低2億レコードぐらいは一発で実用時間内で処理できないと

681:デフォルトの名無しさん
22/09/19 11:09:06.92 NE4NRLG3F.net
tksqlite便利ですぉ

682:デフォルトの名無しさん
22/09/19 11:17:10.29 /tS0t+5W0.net
それソフトよりもハードの問題じゃね

683:デフォルトの名無しさん
22/09/19 14:37:24.08 Z9ZARiSG0.net
>>679
どうだった?
更新、遅くならんかった?

684:デフォルトの名無しさん
22/09/19 14:45:49.33 LZxjUErQd.net
>>678
内容を理解できない馬鹿は黙っていればいいのに

685:デフォルトの名無しさん
22/09/19 15:32:14.37 Z9ZARiSG0.net
>>680
アクセスでさえテーブル容量に2GBの制限bェあるらしいのbナ、エクセルにbサんなもの求めbトも仕方がないbフでは?
2GBでも、中小企業の在庫管理には十分だし。
エクセルの使い道がない人は、無理して使うものでもないと思います。

686:デフォルトの名無しさん
22/09/19 16:01:28.33 vK/zDm8+d.net
>>683
てか、VBAスレでその質問するからには、エクセルとの比較で聞いてるんだろうけど
そもそもエクセルでこのボリュームのデータ扱えないから比較できない
データベースファイルだけで4GB超えるから

687:デフォルトの名無しさん
22/09/19 16:05:58.47 Z9ZARiSG0.net
>>686
SQLiteで2000万レコードについて聞いてますよ。
以前試したときは、ファイルが10GB超えるあたりから性能が悪化したんだけど、今はどうなのかなと思って。

688:デフォルトの名無しさん
22/09/19 16:10:19.86 vK/zDm8+d.net
>>687
遅いですよ
自分の用途だと十分だけど

689:デフォルトの名無しさん
22/09/19 16:24:13.35 Z9ZARiSG0.net
そうですか。
ご親切にどうも。

690:デフォルトの名無しさん
22/09/19 18:23:11.48 mA0CNwkF0.net
win10
office2019
VBAの相談なんですけど、test.xlsmというファイルで練習をしていて
エラーが出てエクセルが落ちてしまいました。
そのあと、復旧したファイルでコードチェックをしてエラーが出ないようになりました。
しかし、test.xlsmファイルを開くと「セキュリティに問題がある」うんぬんという警告が
そのファイルでだけ出るようになりました。
ささいな事ですが気になっています。
もしかして特定のコードを含んでいると出るのでしょうか?
ループ処理が多いとか。

691:デフォルトの名無しさん
22/09/19 18:26:26.58 QQSMzDQg0.net
マクロの場合って必ずでなかったっけ

692:デフォルトの名無しさん
22/09/19 18:47:49.51 b1CdxAyP0.net
トラストセンターで有効にしておけば警告は出ないよ、って言うかこのスレにいる人ならほとんどこの設定にしてると思う
URLリンク(www.officepro.jp)
あとは1番下の「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」がクリアされててtest.xlsmにコードを触るようなコードが入ってる場合ぐらいかな

693:690
22/09/19 21:28:16.87 mA0CNwkF0.net
>>692
ありがとうございます。
もともとそのチェックはどのファイルにも入っていませんでしたので、
触るコードを書いてるという事かと思います。
どんなコードが該当するのですか?
バグに気付けていない可能性もあるので、知りたいです。
オブジェクトモデルっていってもdictionaryを一回重複チェックで使ってるくらいで、
後はsetしてるのは条件付き書式とかworksheetとかworkbookとかrangeくらいでしょうか。
たいした事はしてないのですが、結構長くなってるので特定しづらいです。

694:デフォルトの名無しさん
22/09/19 21:42:09.79 b1CdxAyP0.net
>>693
> どんなコードが該当するのですか?
そんなもん説明しきれんわ
そもそも
> しかし、test.xlsmファイルを開くと「セキュリティに問題がある」うんぬんという警告がそのファイルでだけ出るようになりました。
のスクショなりを上げなよ

695:デフォルトの名無しさん
22/09/19 22:00:45.12 ai3lFfV6d.net
コードを新規作成したtest 2.xlsm にコピペしてみりゃ一発だろうに

696:デフォルトの名無しさん
22/09/19 22:01:05.04 s9D2fBDK0.net
>>679
Ruby on Rails では、2千社・2億レコードでも全く問題ないと、外人が言ってた
Railsでは、開発環境ではSQLite も使うが、
本番環境では、MySQL, PostgreSQL
Heroku では、PostgreSQL
>>676
セレブエンジニアの小松和貴は、反SES/Java で有名。
Java土方はうつ病になるから、やるなと言ってる

697:デフォルトの名無しさん
22/09/19 22:05:09.07 LZxjUErQd.net
rubyみたいなオワコンを持ち上げるキチガイは消えろ

698:デフォルトの名無しさん
22/09/19 22:36:59.93 O/s366mO0.net
火に油を注ぐ発言はやめような

699:デフォルトの名無しさん
22/09/19 23:45:50.71 A/Pc+E3NH.net
火に油を注ぐから楽しいのに

700:デフォルトの名無しさん
22/09/20 00:31:18.18 Rlnm1h+Y0.net
それあぼーんな人だから触らないほうがいいよ

701:デフォルトの名無しさん
22/09/20 07:23:58.96 Qfc1UF5x0.net
>>697
黙れハゲ童貞

702:デフォルトの名無しさん
22/09/20 08:18:55.69 TKjURbNB0.net
なんだかんだで、納品物はエクセルで!とか言ってるからいつまでもVBAやめられなくて辛い

703:デフォルトの名無しさん
22/09/20 12:12:55.21 ZsS5zbqxM.net
>>702
Excelやめてなんのソフトを代替にしたいの?

704:デフォルトの名無しさん
22/09/20 14:20:11.48 E6px8L9o0.net
Excelを使わない事務仕事なんか無いだろうね

705:デフォルトの名無しさん
22/09/20 14:37:00.62 a8qXzxjlM.net
うちの会社は弥生会計をずっと使ってるぞ

706:デフォルトの名無しさん
22/09/20 17:24:35.64 Qfc1UF5x0.net
>>704
うちの会社の経理は紙の帳面だぞ
古代エジプト時代と変わらん

707:デフォルトの名無しさん (スップ Sd3f-w3i5)
[ここ壊れてます] .net
>>706
パピルスと現代の紙とは異なる
髪はその頃と一緒だが

708:デフォルトの名無しさん
22/09/20 19:11:26.07 bPcXAKoD0.net
>>702
そんなに辛いなら転職したらいいんじゃね

709:デフォルトの名無しさん
22/09/20 20:36:15.87 E6px8L9o0.net
>>706
The 昭和

710:デフォルトの名無しさん
22/09/20 20:42:24.19 z6cIhAGk0.net
昭和の頃はすでにMZ-80とか有ったからね。

711:デフォルトの名無しさん
22/09/20 21:20:11.78 9PvWzZvw0.net
>>695
ありがとうございました。
それで徐々にコードを消していったら判明しました。
助かりました。

712:デフォルトの名無しさん
22/09/20 21:52:40.24 9PvWzZvw0.net
ユーザー定義型を配列に入れて使っているのですが、nameでソートしたり、
idでソートしたり、ageでソートしたり、その都度いろいろなプロパティでソートをしたいのです。
いままでは一旦二次元配列に入れてソートしていましたが、二次元配列のkeyposにあたるような
key elementsみたいに引数で渡す事はできないのでしょうか?
Sub Sort(ByRef User as Usertype,ByRef Property asここがわかりません)
なんというかworksheetオブジェクトとrangeオブジェクトみたいな関係みたいな
最悪プロパティ毎に違う名前のソート関数にすれば一応好きなプロパティの値でソートして返せるのですが
こんな感じで

713:デフォルトの名無しさん
22/09/21 15:26:19.55 IxQ+qaQI0.net
まずユーザー定義型をクラスにして、その後は IComparer インターフェイスでよしなに
Sorting of objects by their properties in VBA
URLリンク(scripts4all.eu)
個人的にはここまでやるならVBA以外を検討するけどね

714:デフォルトの名無しさん (ワッチョイ f749-GjCD)
[ここ壊れてます] .net
別の方法としてADODBでメモリ上にテーブルを持つのもある
テーブルにぶち込んでしまえば、ソート、フィルター、その際の項目指定とかどうにでもなる
その分のメモリは必要だし、テーブルに対する出し入れの処理はあるので
配列の大きさやソートの頻度で使うかどうか考える

715:712 (ワッチョイ bf66-W3aP)
[ここ壊れてます] .net
>>713
そちらを見に行ってEnumの便利さに気付きました。
二次元配列のfor for ネストでやってるような処理、列が増えるほどだんだん
わからなくなりますが、enum使えば二次元配列の利便性も残しつつ
ユーザー定義型みたいに使えますね。
二次元配列の悪い所はだんだん自分が何を指定してるのかわからなくなるところだったので、
Enumと相性抜群ですね。

せっかく教えてもらった高度な手法は今回は見送りさせて頂いて、簡単なEnum&二次元配列でやってみようと思います。
感謝です。

716:デフォルトの名無しさん
22/09/21 20:40:31.74 NsHiQ7yd0.net
元データがどこにあって、それをソートしてどうしたいのかわからんが
普通に考えればエクセルシートに展開すれば良いんじゃないかと思うんだが

717:デフォルトの名無しさん (ワッチョイ b7da-E+l9)
[ここ壊れてます] .net
たぶんEXCELのソート機能を使わず自分でソートしたいんじゃね

718:デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
[ここ壊れてます] .net
なぜ競プロではVBAの出番が無いのか

719:デフォルトの名無しさん
22/09/22 11:36:03.90 V4zanZlpM.net
遅いとか記述が冗長とかサーバーサイドで動かせないとかテクニカルな問題はいくらでもあるけど、
最大の理由は競プロやるような人はVBAなんか使いたがらないから

720:デフォルトの名無しさん
22/09/22 18:38:55.33 +Wi4osLB0.net
>>718
年末のAdvent of CodeはVBAだかExcelだけかでやってる人たまにいる

721:デフォルトの名無しさん (ワッチョイ 97da-rZTD)
[ここ壊れてます] .net
>>666
いいえて妙、ワロタw

722:デフォルトの名無しさん
22/09/23 19:12:26.46 27USMHor0.net
外注ってやっぱ高い?

723:デフォルトの名無しさん
22/09/24 01:17:31.15 mU6CwKwa0.net
素人にやらせると、見かけは安上がりだけど結果的に高く付くことが多い

724:デフォルトの名無しさん
22/09/24 03:39:42.11 sis0YFKKa.net
何人で何ヵ月かかるかで金額が変わる

725:デフォルトの名無しさん
22/09/24 04:49:54.00 rKbJBgHg0.net
じゃあここのスレの方ならプロだから安心して頼むそうかな??
金額以外は

726:デフォルトの名無しさん
22/09/24 05:51:09.21 Bbc/0kyt0.net
RubyはそれだけではDBとなるものを持ってないからEXCELやACCESSのVBAとは比較できない。
もっとも、同様にDBを持たない言語と比較するなら
セーフティーでガベージコレクションの概念がなくスピードの速いRust辺りと比べるとゴミ同然

727:デフォルトの名無しさん (ワッチョイ c23d-dJZP)
[ここ壊れてます] .net
エクスプローラーでフォルダーのプロパティを開いて
カスタマイズタブのところに「フォルダーの種類」が全般とかビデオとかになってるけど。
これをVBA/VBSで変更できる?
フォルダーのtypeを見ても全部「ファイル フォルダー」になる。

728:デフォルトの名無しさん
22/09/24 09:33:48.67 DeEi7HC40.net
>>727
レジストリ操作でやりたいことができたわ。

729:デフォルトの名無しさん
22/09/24 14:15:19.28 qbD2jrks0.net
お、おう、よかったな

730:デフォルトの名無しさん
22/09/25 05:30:19.65 /q7OsFL50.net
一般ユーザがある列のセルを編集できないようにしたい。
でも、VBAの実行や、セル関数の結果は反映させたい。
URLリンク(support.microsoft.com)
↑セルのロック
という機能で試してみたがVBAマクロでの変更は許されなくてちょっと困っています。
セルに対してマウスイベントを発生させない。みたいなことを考えて、調べているが。
皆さんも悩まれる案件かと思います。もっと良い方法ないでしょうか?

731:デフォルトの名無しさん
22/09/25 06:18:07.93 jaItMug30.net
VBAん中でロック解除して
処理終了間際にロックし直しってんじゃだめなの?

732:デフォルトの名無しさん
22/09/25 07:44:30.90 dPa0+M2C0.net
SheetSelectionイベントとIntersect使うだけでは

733:デフォルトの名無しさん
22/09/25 09:13:59.54 nIE2ah490.net
お願いします。
検索をシートからではなくブックからをデフォルトにしたいです。
下記のサイトのコードを使い検索は出来るのですが、
結果表示ではなく( '<全てのシートの検索が終わったら、結果を表示します。> )、
検索値まで移動するにはどのようにコードを書けばいいか、ご教授願います。。
URLリンク(www.moug.net)

734:デフォルトの名無しさん
22/09/25 10:44:33.52 mk9vdghN0.net
>>730
worksheet_boforedoubleclick みたいなイベントプロシージャでできる

735:デフォルトの名無しさん
22/09/25 10:58:13.51 /q7OsFL50.net
ありがとうございました。
>>731の方法で簡単にできました。
VBA実行時に保護を解除して、終了時に再度保護をかけることで、
すんなりといけました。

736:デフォルトの名無しさん
22/09/28 13:31:05.50 /kKDTdjO0.net
A1:10もしくはA100に入力された値を配列に格納しています。
動的配列です。
Select Case 文字列A
case A1:A100のどれかに一致するなら
case B1:B100のどれかに一致するなら
みたいな書き方って出来ないのでしょうか?

737:デフォルトの名無しさん
22/09/28 13:35:10.17 Rj0JQSes0.net
ifで条件書けよ

738:デフォルトの名無しさん
22/09/28 15:15:27.03 n6LgYqsE0.net
>>736
恐らく出来ない。
ただ、Select Case の後の文字列の部分をTrueとして、
A10:A100の中に該当文字列が有った場合、
Trueを返す関数を作成して、Case文の後ろに記載して
その条件に当たったかを判別して、Case文の下に
その条件下での処理を記載することは可能。
Caseにある条件のA10:A100にとある文字列が
有った場合とB10:B100にとある文字列が
有った場合と下に続く処理が同じなら、
先程言った関数の引数に対象範囲と検索対象文字列を
持たせておけばCase文を使う必要すら無い。
戻り値がTrueかFalseかをIf文で判断すれば良い。
その辺は実際の状況に合わせて上手く作ってくれ。

739:デフォルトの名無しさん
22/09/28 16:15:51.79 vR69ytL90.net
select caseにtrue??
知らなかったわ何それ??

740:デフォルトの名無しさん
22/09/28 18:26:27.19 Pxqx/4k10.net
Do
With
End With
Loop
よりも
With
Do
Loop
End With
の方が計算が早い(PCにとっては楽)と考えてよいでしょうか

741:デフォルトの名無しさん
22/09/28 19:01:46.26 8l5UWazH0.net
>>736
こんな感じ?
URLリンク(i.imgur.com)

742:デフォルトの名無しさん
22/09/28 19:28:29.47 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:デフォルトの名無しさん
22/09/28 19:32:38.30 Aad51sjLa.net
>>740
たいていのプログラムだと有意な差はでないから気にせずに作りやすい方で作れ
有意な差がでそうならまず測定

744:デフォルトの名無しさん
22/09/28 19:38:38.93 n6LgYqsE0.net
>>740
これも恐らくの話で申し訳ないけど、
元々Withで設定されているインスタンスが既に生成されているものであれば、その格納アドレス先を読むだけなので
Withがループの外にあっても中にあっても処理コストは変わらないと思う。
変わったとしても繰り返し実行での誤差と見分けが付かない程度と思われる。
逆にインスタンスが生成されておらず、With New 〜 のようにWithでインスタンスを生成する場合は
ヒープエリアのメモリにそのインスタンスを展開するため、Withがループの外に有った方が処理コストは低くて済む。

・・・はず。

745:デフォルトの名無しさん
22/09/28 19:40:24.19 2tCqxjcra.net
とりっきー

746:デフォルトの名無しさん
22/09/28 19:51:29.67 30UfjVhGd.net
>>739
ケツの穴をガバガバにして全通しするいやらしい関数だよ
Select Case True
Case オナラ
よし通れ
Case うんこ
よし通れ
End Select

747:デフォルトの名無しさん
22/09/28 21:06:15.14 Apn5XmOg0.net
>>742
結局If文でラップしてるだけじゃん

748:デフォルトの名無しさん
22/09/28 21:06:47.83 vR69ytL90.net
>>746
汚ねえな。。
こっちは夕食のカレー食ってんだぞ。。

749:デフォルトの名無しさん
22/09/28 21:20:17.00 0sCmeNkX0.net
>>747
If 文でラップとか意味わからんこと言われてもw

750:デフォルトの名無しさん
22/09/29 00:27:52.00 tkXe+LzA0.net
ヘイヘイヘイ~!
もしも~オブジェクト変数でぇ~宣言したぁ~値がぁ🎵
ラップ調

751:デフォルトの名無しさん
22/09/29 01:53:20.13 I3DbECBa0.net
ラップのセンスはいまいちだね

752:736
22/09/30 17:41:05.63 8DTKPQSA0.net
>>738-742
ありがとうございました。
変数Strの中の値が配列Listのどれかと一致するかということだったので、そのCountIFがまさにその通りでした。
それようの関数書いてSelect case True使わせていただきます。

753:デフォルトの名無しさん
22/09/30 21:34:23.42 RGIc4eHD0.net
>>752
Select Case True の話持ち出しといてなんだけど
最初のCase の条件に引っ掛かってその下の処理を実行した後でも
次のCaseの条件に引っかかったらその下の処理も実行するからそれだけは気をつけてね

754:デフォルトの名無しさん (スッップ Sd32-r4yT)
[ここ壊れてます] .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になるんだが

755:デフォルトの名無しさん (ワッチョイ 927c-cqZP)
[ここ壊れてます] .net
>>754
多分breakいれなきゃいけないCとかと勘違いしてるんだと思う

756:デフォルトの名無しさん
22/09/30 22:50:53.72 oHn8O8ll0.net
Select みたいな文で複数の選択肢が条件満たした場合に複数の選択肢を実行する言語って PowerShell ぐらいしか知らんけど他にもあるんだろうか?

757:デフォルトの名無しさん
22/09/30 23:04:52.77 FO5tGPcx0.net
>>756
cとかそうだったはずだし、たぶん複数実行するほうが多数派なんじゃね
c#も、文法上は複数実行することになってるけど、break書いて抜けないと怒られるという
よくわからんことになってるし

758:デフォルトの名無しさん
22/09/30 23:17:37.16 2no5G0l30.net
CもそうだしJavaもそうだしPythonもそうだしJavaScriptもそう

759:デフォルトの名無しさん
22/09/30 23:34:30.49 oHn8O8ll0.net
>>757-758
C/C++ はそもそも複数選択肢が条件満たすことはないよ(たいていの処理系でコンパイルエラーになる)
fall through と勘違いしてるでしょ

760:デフォルトの名無しさん
22/09/30 23:56:30.92 2no5G0l30.net
>>759
ああそうだ。勘違いです
申し訳ない

761:デフォルトの名無しさん
22/10/01 00:36:40.48 fyOJn4KOa.net
>>754
これってコンパイル時に畳み込みで定数化されて同一のラベルが複数あってエラーになるとかしないのか

762:デフォルトの名無しさん
22/10/01 01:42:48.83 a0drtoBbd.net
>>761
馬鹿にはそう思えるのだろ

763:デフォルトの名無しさん
22/10/01 01:48:20.03 AX86MJ2c0.net
>>759
ああ、まさにfall throughだった
つかそうなると、fall throughじゃなくて
複数一致したら複数ブロック実行するような言語って知らないな
PowerShellってそうなのか?

764:デフォルトの名無しさん
22/10/01 01:53:07.95 AX86MJ2c0.net
>>761
VBAのCaseは定数以外にいろいろ書けるから

765:デフォルトの名無しさん
22/10/01 04:50:29.38 igg+s+OR0.net
>>763
複数一致
同じ条件を複数回追加すれば、それらすべてがトリガーされます。
URLリンク(learn.microsoft.com)

766:デフォルトの名無しさん
22/10/01 07:29:29.38 66c8QTBM0.net
みんないろんな言語やってるのね

767:デフォルトの名無しさん
22/10/01 07:40:45.91 BiebxrBw0.net
他言語やってる人が暇潰しに見に来る場所って印象があるよね
質問も簡単だし答えるほうに余裕があるので他スレと比べると寛容というかギスギスしてない

768:デフォルトの名無しさん
22/10/01 13:08:15.88 sQwPc1U3d.net
Excelでデータベースを作り、各レコード?事に
〜月〜日 〜
〜月〜日 〜
みたいなログを表示したいのですがどの様にすればできるのか教えていただけませんか?

769:デフォルトの名無しさん
22/10/01 13:10:34.86 PSWCeSJW0.net
キーボードで打ち込め

770:デフォルトの名無しさん
22/10/01 13:17:44.94 GEkLNCKa0.net
>>768
入門書買って自分で勉強したらどうかな
あ、EXCELが入っているPCを持ってないと無理かも

771:デフォルトの名無しさん
22/10/01 13:31:32.89 sQwPc1U3d.net
テキストボックスにセルの値を参照するとか、繰り返しの処理とかlookup関数とかindexとmatch関数はわかります
あとはこのリストが欲しいです

772:デフォルトの名無しさん
22/10/01 13:34:23.97 mp76wcbAa.net
MSのサイトを見ればいいだけじゃね?

773:デフォルトの名無しさん
22/10/01 14:11:06.32 m6/aGG23M.net
>>771
漠然としすぎていて適切に回答できない
書式設定のこと?ファイル出力?
どこにそれを表示したいの?

774:デフォルトの名無しさん
22/10/01 14:50:47.98 ozHkf13K0.net
もう自分で勉強してくれって。

775:デフォルトの名無しさん
22/10/01 15:38:51.00 66c8QTBM0.net
>>768
そもそもそのログの日付とやらはどこから持ってくるつもりなのか

776:デフォルトの名無しさん
22/10/01 15:39:00.83 05rfSfda0.net
>>773
すみません
VBAのユーザーフォームで検索用のテキストボックスを作り、
検索結果に該当したレコード(行)を選択(抽出)?して
それをテキストボックス2やリストボックスに表示したいです
〜番(ID)
名前
テキストボックス(リストボックス)
〜月〜日 何をした
みたいな表示画面が作りたいです

777:デフォルトの名無しさん
22/10/01 15:40:48.76 05rfSfda0.net
>>775
〜番号 名前 〜 〜 〜
の様な感じで列に追加していくやり方で作ろうかなと考えています

778:デフォルトの名無しさん
22/10/01 16:48:39.94 vnBH5ihbM.net
>>776
まずワークシート上でlookup,index,matchで検索、表示できるものを作る。
それからフォームのテキストボックスに入れた値をワークシートの検索用のセルに書き込み、結果をフォーム上のテキストボックス、リストボックスに書き込むVBAを作る。

779:デフォルトの名無しさん
22/10/01 16:50:40.38 05rfSfda0.net
>>778
ありがとうございます
まずはそこからですよね

780:デフォルトの名無しさん
22/10/01 16:52:55.19 GEkLNCKa0.net
どこでつまずいているかを書かないで答えだけほしいとか言われてもね

781:デフォルトの名無しさん
22/10/01 16:55:41.93 HuJ3UkiEd.net
>>768
こんなんVBAでもなんでもなくシステムを作りたいっていってるようなもんでしょ
金払って作ってもらえよ

782:デフォルトの名無しさん
22/10/01 17:09:04.65 AX86MJ2c0.net
>>768
なぜそれをエクセルでやりたいと思ったのか
今のレベルだと一から勉強レベルだと思えるが
c#かせめてVB.Net覚えたほうがいいんじゃない

783:デフォルトの名無しさん
22/10/01 18:15:10.78 BiebxrBw0.net
セルの内容(日付のところは文字列型(頭にアポストロフィ)で入れてる)
ID 名前 日付 イベント
1 名前1 2012年3月14日 Aをした
2 名前2 2012年3月15日 Bをした
3 名前3 2012年3月16日 Cをした
4 名前4 2012年3月17日 Dをした
5 名前5 2012年3月18日 Eをした
6 名前6 2012年3月19日 Fをした
※Sheet1のマクロ
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With UserForm1
y = ActiveCell.Row
.TextBox1 = Cells(y, 1)
.TextBox2 = Cells(y, 2)
.TextBox3 = Cells(y, 3) + vbNewLine + Cells(y, 4)
End With
End Sub
フォーム(UserForm1)を作って下記コントロールを配置
TextBox,TextBox1,TextBox2,TextBox3(Multiline=true),CommandButton1
UserForm1のマクロ
Private Sub CommandButton1_Click()
Sheets(1).Range("A1").AutoFilter 2, "*" & UserForm1.TextBox.Text & "*"
End Sub
ファイル開くイベントとかボタン作って下記マクロでフォームを表示
UserForm1.Show vbModeless
聞いた限りではこんなのしか思い浮かばない


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

36日前に更新/265 KB
担当:undef