- 1 名前:デフォルトの名無しさん mailto:sage [2021/12/20(月) 01:40:59.22 ID:jnlr9GaR0.net]
- !extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512 ↑同じ内容を2行貼り付けるナリ ExcelのVBAに関する質問スレナリ コード書き込みや作成依頼もOKナリ ※前スレ Excel VBA 質問スレ Part73 https://mevius.5ch.net/test/read.cgi/tech/1631485799/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
- 604 名前:デフォルトの名無しさん [2022/01/24(月) 21:39:41.61 ID:0uV4r5KA0.net]
- workbookという巨大なオブジェクトがあるじゃろ
- 605 名前:デフォルトの名無しさん [2022/01/24(月) 21:43:12.08 ID:HmIH0Tmsr.net]
- WorkBook、正直邪魔だよね。
少人数の給料計算くらいなら良いけど 大量のデータ管理には重くて使えないし。
- 606 名前:デフォルトの名無しさん [2022/01/24(月) 21:51:17.38 ID:aObfNlgq0.net]
- >>601
馬鹿にはわからん使い方があるのだろ
- 607 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 22:27:03.42 ID:0XRM59Ri0.net]
- そういえば初心者の頃は、配列とか定数変数の代わりに
WorkBook を使ったりしてたな。 これはデメリットだらけ。
- 608 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 22:46:11.44 ID:5FJvHF790.net]
- マクロ禁止になった理由はいろいろあるけど、一番は属人化になるからという理由でしたわ。
関数も長々とした入れ子はダメというローカルルールできた。
- 609 名前:デフォルトの名無しさん [2022/01/24(月) 22:53:36.30 ID:0XRM59Ri0.net]
- 職場を無能だけで構成しようとすれば
そうせざるを得ない そこが欧米企業と旧日本型企業との違い
- 610 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 22:58:12.91 ID:0XRM59Ri0.net]
- セルに五重くらいのIF,OR文の関数を入れて
悦に浸ってるオッサン居たけど アホにしか見えんかったわ
- 611 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 23:00:41.29 ID:5FJvHF790.net]
- あと、上席が言うには「うちはVBAを書くのが仕事じゃないんだから、そればっかにとらわれて本来の業務を疎かにしないでくれ」と。
- 612 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 23:09:57.20 ID:0XRM59Ri0.net]
- 出たw
大多数の日本企業の実態がソレ。 業務効率化という 意識が30年遅れてます、とね… VBAは隠れてやった方がええよ。
- 613 名前:デフォルトの名無しさん mailto: [2022/01/24(月) 23:10:32.49 ID:0XRM59Ri0.net]
- アテクシなんざ
手作業で、一日かかる作業 (大量のドキュメント作成)を マクロで1時間で終わらせて 残りの時間はVBAで遊んでましたぜ。 Word VBAも出来ると素敵だよ。
- 614 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 23:32:47.93 ID:j9lgzOiA0.net]
- >>589
自己流だけどメインルーチンはあらすじ、グローバル変数は登場人物みたいな感じで使ってるわ フォームやシートに書くコードはイベントハンドラくらいで、ちょっとでも長ければ似た名前のモジュール(Form1bみたいな)の中に コントロールごとに分類して関数なりなんなりを作ってそれを呼んでる 複数のフォームで使い回せるものは複数のフォーム名が入ったモジュールを作って入れてる プロシージャ名はフォーム名_コントロール名(略せれば略)_処理名で統一してる グローバル変数もPbという名前の専用のモジュールに突っ込んでる 登場人物一覧みたいな感じで参照ができる 多分これでだいぶ解りやすくなると思うんだが…… VBAもxmlコメントが使えれば解りやすいんだけどな
- 615 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 23:42:30.31 ID:veuEuZMi0.net]
- VBAなんて自分の作業効率化するときだけにしとき
他人に使わせて良い事無い
- 616 名前:デフォルトの名無しさん [2022/01/24(月) 23:43:46.42 ID:0uV4r5KA0.net]
- >>607
最初の一回だけ構築すれば、後は全自動・ミスなしの瞬殺なのにねぇ
- 617 名前:デフォルトの名無しさん mailto:sage [2022/01/24(月) 23:52:36.12 ID:aJKkYLDpd.net]
- >>607の上席が、小手先の作業効率改善オナニーばっかりやってないで業務そのものを見直せという意味で言ってるんだとしたら極めて正しいと思うけどね
VBAで簡単に自動化できる業務なんてそもそもほとんどが無意味なんだよ
- 618 名前:デフォルトの名無しさん [2022/01/24(月) 23:56:01.84 ID:0uV4r5KA0.net]
- それが出来れば苦労せんわw
末端から少しずつ見直していく事で、大きな改善ができるようになる いきなり改善しようとすると、大体無理が出る、というか出た。
- 619 名前:デフォルトの名無しさん [2022/01/25(火) 00:50:53.14 ID:Y5KLOHGW0.net]
- excel VBAは手段であって目的ではない
- 620 名前:デフォルトの名無しさん [2022/01/25(火) 01:30:31.84 ID:mNb42c/J0.net]
- 日本の場合、会社組織そのものが、非効率の根源なんだけどね。
上層部は社内での自分の立場を確立するために、イエスマンで固める伝統が根付いてて 下から変えるのは、ほぼ不可能。 その意味から言って、コロナ禍は日本にとって救いの神だった。 コロナ禍がなかったら、マズゴミの情報鎖国で、あと10年以上、変わらずに 気がついた時にはASEAN諸国にまで、IT技術と経済で抜かれてただろう。 おそロシア
- 621 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 02:03:41.94 ID:mNb42c/J0.net]
- >>613
まさに典型的な、俗人的業務の思考。 個人の力量に関係なく、最高パフォーマンスで会社がまわるのを考えるのが 企業としての真の効率化。 いまだに営業職がメインの日本型企業は特に糞。 GAFAM等、欧米のトップ企業に、そんなカビ臭い会社が無いのを見れば明らか。
- 622 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 04:51:07.51 ID:jYjAr1e40.net]
- >>604
>関数も長々とした入れ子はダメというローカルルールできた。 それはちょっと残念かも 呼び出す関数の役割が明確化されていれば どんなに入れ子が多くなっていても 一度内容を理解してしまえば そんなに読み込むの苦労しないと思うし 場合によっては途中から奥まで 読まなくても解るようになるのに。 デコレーターパターンみたいのを 使いたい場合はどうするの?
- 623 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 06:27:16.77 ID:T29wyfYtM.net]
- >>599
> VBA自体がオブジェクト指向言語だけどね。 VBAのオブジェクト指向はあまりにも中途半端 Workbook や Worksheet 等のオブジェクトを扱えるけどオブジェクト指向の知識はほとんど要らん Let と Set の違いがわかれば充分
- 624 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 06:40:37.19 ID:nnTBaJb2M.net]
- >>604
嫌がらせに100万行 x 1.6万列目のセルに途中の計算式入れて50万行目 x 8万列目辺りからoffset関数で参照だな
- 625 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 07:26:11.67 ID:jYjAr1e40.net]
- >>619
まぁMicrosoftが元々中途半端で終わらせるのが好きだからしょうがない。 旧VB6とVB.Netに切り替わったときもそうだった。 とは言ってもObject指向知ってるのと知らないのではロジック作成するときの視野の広がりが変わってくる。 何かのロジック組むときにどういう方法で組むのがモアベターか、取れる手段が増えてくるよ。
- 626 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 07:56:08.67 ID:ZGZoh/tR0.net]
- >>618
途中計算用のシートを作れば良いのでは
- 627 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 08:05:53.28 ID:vd4sNBPHM.net]
- >>621
取れる手段増えてもVBAで使えなきゃ意味ないだろ てか余計ストレス溜まるわ
- 628 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 08:50:51.46 ID:j/cJSCFFd.net]
- >>607の例は結局どんなことして出した結果なのかを証明できなければ使えないってことも含まれてるんでしょ
そういう場所では非効率でも電卓なりつかえってことさ
- 629 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 09:32:01.78 ID:vxmGrPnAM.net]
- 上席から見たら本来業務を疎かにしてVBAで遊んでるように見えてるんだろ
そりゃマクロ禁止にするわな
- 630 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 10:18:32.74 ID:1FWjey8wr.net]
- >>619
worksheet や workbook も確かにオブジェクトだけど オブジェクト指向のオブジェクトとは意味が異なるよ。 オブジェクト指向言語であるか否かは、C言語と、 C++やJavaの違いなので。
- 631 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 10:26:48.56 ID:1FWjey8wr.net]
- 本当にVBAプログラミングがやりたいのなら
仕事を変えるしか無いわな。 いまだに80年代のようなやり方を変えずに やるのを良しとする老害が、上席に居るような 会社に、残念ながら未来はない。
- 632 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 10:46:46.71 ID:qTksV7dH0.net]
- 製造業の事務員にVBA使える人一人欲しいんだけど事務で求人しても碌なの来ないんだよなぁ
- 633 名前:デフォルトの名無しさん [2022/01/25(火) 10:53:10.17 ID:bToP/k2z0.net]
- >>628
ここで募集してみては? リモートでやってくれる人がいるかもしれない
- 634 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 10:58:19.04 ID:CplOG10X0.net]
- 同志達の職場もいろいろ大変だね書き込み見ていると。うちだけじゃないのね。
長い計算式はバグがあった時に困るから作業列を使えとお達しがありましたよ。 うちの女の子達は複雑なのはあまり直せないから。 マクロはやはり過去に作った人が退職して誰も直せないから禁止になったみたい。
- 635 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 11:00:59.60 ID:CplOG10X0.net]
- >>620
その手があった! じゃなくてそれやるのやめてけろー泣
- 636 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 11:06:46.89 ID:j/cJSCFFd.net]
- VBA使いたいから仕事辞める人なんていないでしょ
>>628 ここにいるぐらいなら自分でやればいいのでは
- 637 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 11:15:20.00 ID:a/XPvOPlM.net]
- 俺を雇ってくれ
必要な能力はVBAだけでええんか?その業種に固有の知識が必要だとアウトかもしんないけど
- 638 名前:デフォルトの名無しさん [2022/01/25(火) 11:21:08.63 ID:bToP/k2z0.net]
- >>630
基本的には作業列が良い ただその作業列も、右に言ったり左にいったり、ではなく、 左の数字を右に流していく、最後は一番右に書く、 のように統一していないと、やっぱり読みづらくなる
- 639 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 11:59:13.06 ID:NVa7IPQ3M.net]
- >>626
> worksheet や workbook も確かにオブジェクトだけど > オブジェクト指向のオブジェクトとは意味が異なるよ。 どこが違うというのか? > オブジェクト指向言語であるか否かは、C言語と、C++やJavaの違いなので。 意味不明
- 640 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 11:59:36.95 ID:HS+/VKuh0.net]
- その業種独特とか固有とかそこらじゅうに転がってるぞ それを読み解くチカラ無くしてVBAだけ 等とは笑止千万
だいたいが、VBAどころかExcelすら無関係でも彼らはそれをこなしてる 先ずはそこがボーダー そこを起点に、それが効率化できるか改善できるか、でようやくVBAの出番 改善や効率化が不要なら出番すら無い むしろ出しゃばるな 今のままでいい それを見極めるのが上司上長の役目 あと無意味に改行する奴
- 641 名前:デフォルトの名無しさん [2022/01/25(火) 11:59:54.76 ID:7EThQbwZM.net]
- オブジェクティブCは?
- 642 名前:デフォルトの名無しさん [2022/01/25(火) 12:15:21.94 ID:zQXNzX5la.net]
- >>628
自分ができないのにできる人が来ないとか言うなよ
- 643 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 12:31:10.86 ID:zFwMgogDd.net]
- 「オブジェクト構造」と「オブジェクト指向プログラミング」を混同していませんか
- 644 名前:デフォルトの名無しさん [2022/01/25(火) 12:42:30.48 ID:Y5KLOHGW0.net]
- 自分の要求を完璧に実行してくれる天才に
金を払わないでもやってくれる人ってなかなかいないんだよね
- 645 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 13:18:00.17 ID:j/cJSCFFd.net]
- 事務員に+αでVBA知識なんだから月給なんて20万程度での募集なんでしょ
やめとき
- 646 名前:デフォルトの名無しさん [2022/01/25(火) 14:06:19.97 ID:WI95qNC1M.net]
- テスト
- 647 名前:デフォルトの名無しさん [2022/01/25(火) 14:10:24.68 ID:WI95qNC1M.net]
- >>628
詳細をお伺いしたいので、よろしければ一度ご連絡下さい vba_20220125@yahoo.co.jp
- 648 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 14:50:40.66 ID:CplOG10X0.net]
- 余程VBAが好きならその仕事を受けるのはアリだと思いますが、それでも知らない会社のシステム組むのは恐いですな。
何かあった時の各種トラブル対応を完璧にできる人じゃないとキツイのでは?
- 649 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 14:52:58.84 ID:CplOG10X0.net]
- >>634
なるほど。同志の言うとおり 作業セルも作り方が人によりけりなので統一すべきですね。
- 650 名前:デフォルトの名無しさん [2022/01/25(火) 15:04:52.93 ID:bToP/k2z0.net]
- 大介って光2コンボ好きなのか
- 651 名前:デフォルトの名無しさん [2022/01/25(火) 16:23:40.81 ID:KtMUUOjX0.net]
- 右から来たものを左へ受け流す
- 652 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 19:20:32.27 ID:mNb42c/J0.net]
- Excel VBAで、Windowsサーバの管理とか
OracleとかのDB連携システムを構築できれば 月収40〜50万は余裕でもらえるけどね。 一般職よりIT技術者になった方が 年収は一気に上がるのに。
- 653 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 19:43:09.58 ID:bToP/k2z0.net]
- >>648
それはさすがにMSSQLサーバー必須 vbaはほとんど使わない 構築だけならアホみたいに余裕
- 654 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:00:58.11 ID:mNb42c/J0.net]
- ん?意味わかってないね…(汗
Excel のフォームをフロントエンドにして データベース検索できるようにするんだよ。 Excelでボタン押すと、入出力フォームが出てきて データベースへの読み書きを簡単にできるってやつ。 VBA上級者なら簡単に作れる。
- 655 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:05:26.58 ID:mNb42c/J0.net]
- あとは、 Excelフォームから、WindowsサーバにAPIでアクセスして
ハードウェアのリソース管理とか、AD管理できるようにするとか。 サーバーの監視部隊が定期的に手作業でやってる管理業務を自動化する。 AD とは、Active Directory のことね。
- 656 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:09:23.34 ID:mNb42c/J0.net]
- >>649
SQL Serverじゃなくても、VBAから OracleでもMySQLでも連携可能だよ。
- 657 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:16:10.91 ID:ZGZoh/tR0.net]
- >>651
フロントエンドにExcelを選定する時点で怪しすぎるわ
- 658 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:18:03.17 ID:ncFbLrOnM.net]
- VBAでイキってて草
- 659 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:19:27.46 ID:mNb42c/J0.net]
- もちろん、DBの深い知識とか、Windowsサーバを
管理できる知識がないとできないけどね。 どちらもSQLの読み書きは必須。
- 660 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:19:40.81 ID:CplOG10X0.net]
- 酷い言い方する人は、VBAはプログラミングではないと言いきる人いますからね
- 661 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:21:51.60 ID:Y5KLOHGW0.net]
- 吾輩は猫であるとかいう人もいるからな
- 662 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:22:00.61 ID:bToP/k2z0.net]
- >>653
うん・・・ SQLServerの情報は、accessで引っ張って来て終わりなんだ VBAは使わないはず
- 663 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:22:19.53 ID:mNb42c/J0.net]
- ん?Access でも、Word でも作れるよ。
MS Office を使えばコスパ良く自動化できる ってのを、割と知らない無能が多いから ヒントを書いたまでだけど?
- 664 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:25:27.78 ID:mNb42c/J0.net]
- なぜかバカほど高価なミドルウェアを使いたがるけど
VBAで自動化したらタダでできるのに。 オレはVBSでも作ったけどね。 VBSならメモ帳だけでプログラミング可能。
- 665 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:28:01.06 ID:mNb42c/J0.net]
- >>656
ああ居る居る。 Javaとか、Pythonじゃないととか… ただマウント取りたがる無能なんだろうね。 VBAは、Officeのリソースしか使わないから コストパフォーマンス最高なのに。
- 666 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:31:39.60 ID:mNb42c/J0.net]
- >>658
Accessなら、標準でSQL Serverとの連携は VBA使わなくても簡単にできるけど、 フォームを使いたい場合は、VBA必須。
- 667 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:35:14.51 ID:mNb42c/J0.net]
- MS Officeが無い場合でも JavaScriptでも
できるけど。 とにかく色んな自動化は、格安でできるってこと。 弘法筆を選ばずとはこの事。笑
- 668 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:38:14.03 ID:mNb42c/J0.net]
- まあ、給料上げたいなら
努力して頑張りましょう。
- 669 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:40:51.27 ID:f4GoSiUSM.net]
- Excel VBAでも作れるけどC#とかの方が全然楽だぞ
定期的なADの操作とかならPowerShellでいいし VBAしか書けないというのでなければ.NETFrameworkの恩恵を受けられないVBAの出る幕はない
- 670 名前:デフォルトの名無しさん [2022/01/25(火) 20:41:24.90 ID:4M+ZFVtxM.net]
- いつもの馬鹿か?
- 671 名前:デフォルトの名無しさん [2022/01/25(火) 20:44:12.39 ID:EmlIIuq10.net]
- ID:mNb42c/J0
いつもの知ったかの馬鹿?
- 672 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 20:46:43.85 ID:mNb42c/J0.net]
- コスパの話をしてんのよ。
わかるかな?無能さん。
- 673 名前:デフォルトの名無しさん [2022/01/25(火) 20:58:23.53 ID:EmlIIuq10.net]
- >>668
無能はお前だろ、馬鹿が コスパなら>>665が書いてるようにPowerShellだろうが
- 674 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 21:01:31.55 ID:mNb42c/J0.net]
- もちろん、PowerShellでも作れるし
他にもテキストベースなら JavaScript、VBSでもつくれるし。
- 675 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 21:01:47.49 ID:7v92mOzc0.net]
- VBAスレなのになぁ
- 676 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 21:04:24.62 ID:mNb42c/J0.net]
- 無能はスマソ。
Windows環境なら、簡単に自動化する方法は 沢山あるよって話でした。 さようなら。
- 677 名前:デフォルトの名無しさん [2022/01/25(火) 21:28:25.73 ID:EmlIIuq10.net]
- >>672
話しを誤魔化して逃げるのかよ、馬鹿
- 678 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 21:31:06.39 ID:Ezk4VrXqM.net]
- 放置しとけよw
別に今時のWindowsならC#でもVB.NETでも使えることすら知らんみたいだし
- 679 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 22:00:31.09 ID:+A6ImuRo0.net]
- >>604
なんかもうため息というかなんというか。要は上司の「俺が理解できないから」だよね。 悪い意味での日本流。東アジア流かもしれん。 偶然の産物かもだけど、「長々とした入れ子は駄目」は賛成する。 4段以上のネストとか30行以上の関数とか俺の頭じゃバッファオーバーフロー。
- 680 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 22:08:37.63 ID:+A6ImuRo0.net]
- If( 正当条件1 ) Then
If( 正当条件2 ) Then If( 正当条件3 ) Then If( 正当条件4 ) Then 長〜い正当処理1 長〜い正当処理2 長〜い正当処理3 Else エラー4 Else エラー3 Else エラー2 Else エラー1
- 681 名前:End If
こんなの見ると、「初手でエラー全部弾けよ」と思う。 [] - [ここ壊れてます]
- 682 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 22:11:24.49 ID:Zmf/5OMz0.net]
- まあまあ、自分が昔組んだコード見ると何でこんな面倒なことやってたんだろうってみんなが通る道だし
- 683 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 22:16:18.25 ID:bToP/k2z0.net]
- >>676
こういう場合どうすべきかね フラグ立ててfalseならexitsubにしてしまうか gotoかエラーコードで最後に飛ばすか
- 684 名前:デフォルトの名無しさん [2022/01/25(火) 22:21:46.97 ID:mNb42c/J0.net]
- いま、Youtubeひろゆきライブ配信やってるから
よく聴いて、社畜奴隷の洗脳を解きなさいな。
- 685 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 22:23:22.62 ID:CplOG10X0.net]
- Office田中先生、近々ようつべに復帰するみたいですね。
内容は当たり外れあるからアレだけど、あの方の喋りはひょうきんで楽しい。
- 686 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 22:24:31.01 ID:CplOG10X0.net]
- >>677
恥ずかしくなりますよね昔のシート見ると。 当時の自分は何がしたかったのかみたいな。
- 687 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 22:32:38.66 ID:T9L9nj8SM.net]
- >>676 なら
If Not 正当条件1 Then エラー1 ElseIf Not 正当条件2 Then エラー2 ElseIf Not 正当条件3 Then エラー3 ElseIf Not 正当条件4 Then エラー4 Else 長〜い正当処理1 長〜い正当処理2 長〜い正当処理3 End If とする、面倒なのは If 正当条件1 Then ちょっとした処理1 If 正当条件2 Then ちょっとした処理2 If 正当条件3 Then 長〜い正当処理1...3 Else エラー3 Else エラー2 Else エラー1 のケースでこの時はルーチン分けるかGotoで途中脱出させると思う
- 688 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 23:09:39.57 ID:ZGZoh/tR0.net]
- Select Case 0
Case 正当条件1 エラー1 Case 正当条件2 エラー2 Case 正当条件3 エラー3 Case 正当条件4 エラー4 Case Else 長〜い正当処理1 長〜い正当処理2 長〜い正当処理3 End Select どやさ
- 689 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 23:20:00.64 ID:Y5KLOHGW0.net]
- Call 長い正当処理1to3
- 690 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 23:22:36.33 ID:DW1OPm0+0.net]
- >>676
VBAはショートサーキットしないからIfを何段も並べた方が効率いい場合がある けど、この場合はエラーも4種類だから判定式を1つにまとめるわけにいかない この書き方が読みにくいと思うならIfからエラーまでをそれぞれ4つのFunctionに飛ばすかな
- 691 名前:デフォルトの名無しさん mailto:sage [2022/01/25(火) 23:29:04.02 ID:UWkwB/rRd.net]
- 頭が悪いからずっとこれだわ
If エラー条件1 Then エラー処理 Exit Sub End if If エラー条件2 Then エラー処理 Exit Sub End if If エラー条件3 Then エラー処理 Exit Sub End if 正当処理
- 692 名前:デフォルトの名無しさん [2022/01/26(水) 01:52:17.01 ID:ULWJ4UsX0.net]
- >>679
馬鹿が底の浅い知識をひけらかして嘘を書いて、捨てゼリフ吐いて逃げたのにノコノコ戻ってきて再び捨てゼリフと 馬鹿は自分の拙さを知らずに馬鹿な自分が見えるだけの世界が全てだと思っているから馬鹿なんだよ
- 693 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 06:27:00.95 ID:0epn3Uk/M.net]
- >>686
サブルーチンに切り出せるならそれが一番見易い
- 694 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 11:26:17.93 ID:RGV8ouxS0.net]
- パッと思い付いてすぐコードを書ける自体有能だと思いますよ。
みんな凄い。
- 695 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 11:54:57.36 ID:xGOCvJmUr.net]
- たしかにVBとか普段書かないからif thenおかendなんて思い出せないよな
- 696 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 13:10:14.89 ID:q0HuFlPw0.net]
- ちゃんと単体結合テストやるところの場合だと
処理毎に、Function に分けるのが吉。
- 697 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 14:42:22.30 ID:ip0aOcF2M.net]
- みんな試行錯誤してきたのがよくわかる
- 698 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 16:16:07.18 ID:RGV8ouxS0.net]
- Excel全般て本当に努力しないと使えないってのはウソじゃないですな
- 699 名前:デフォルトの名無しさん [2022/01/26(水) 16:21:39.28 ID:ykAsNY55r.net]
- Excel VBAビギナーの頃
5000万の案件をやり遂げた事あるけど VBの入り口としては良いよね。 昔はVBAを入り口に、VB6.0 に移行できたから 良かったんだがな。
- 700 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 18:39:36.99 ID:WAP1y4aa0.net]
- >>623
まぁ他言語をやってない奴の意見なんてそんなもんだろな。 VBAで使えるものもあれば使えないものもある。 テンプレートメソッドパターンなんかは使えないけどストラテジーパターンなんかは使える。 そういうの使った際に分岐が減るからUT楽になるかなー、とか、それ使う程の規模かなー、とか 楽な方を選べるってことだよ。
- 701 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 18:53:39.06 ID:YVr9NW6iM.net]
- >>695
> ストラテジーパターンなんかは使える。 無理じゃね?
- 702 名前:デフォルトの名無しさん [2022/01/26(水) 19:15:39.62 ID:xR2ItXtPM.net]
- グローバルしかない古代BASICに比べれば天国じゃよ
- 703 名前:676 mailto:sage [2022/01/26(水) 20:11:08.97 ID:+JbM4Kut0.net]
- みんなやっぱ困ってるお題なんだなこれ。反応ありがとう。
俺は Function Func(Args) Func = TestArguments( Args ) // ←このへんは異論出るかもだけど、内部関数で引数テストはありだと思う。 If Func <> Normal Then Exit Function EndIf Call 長〜い処理1をファンクションにしたもの Call 長〜い処理2をファンクションにしたもの Call 長〜い処理3をファンクションにしたもの End Function てな感じをイメージしてた。VBAの文法的にはむちゃくちゃかもだけど、最近書いてないのでそこは許してw C風に If ( (Func = TestArguments(Args))<>Normal ) Then て書けるのかな。
- 704 名前:デフォルトの名無しさん mailto:sage [2022/01/26(水) 20:33:27.76 ID:Rwt/NS3J0.net]
- エラーとしてまとめるってのを昔見たことあるけど、見づらいかなぁ
Sub Func() On Error GoTo err flg = True If flg Then err.Raise Number:=513, Description:="内容" End If ' Call 長〜い処理1をファンクションにしたもの ' Call 長〜い処理2をファンクションにしたもの ' Call 長〜い処理3をファンクションにしたもの Exit Sub 'エラー処理 err: MsgBox err.Number & vbCrLf & err.Description End Sub
|

|