!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
探検
Excel VBA 質問スレ Part74
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ d3fd-v8OD)
2021/12/20(月) 01:40:59.22ID:jnlr9GaR0634デフォルトの名無しさん (ワッチョイ a768-kzOy)
2022/01/25(火) 11:21:08.63ID:bToP/k2z0635デフォルトの名無しさん (ドコグロ MM4f-x+w6)
2022/01/25(火) 11:59:13.06ID:NVa7IPQ3M >>626
> worksheet や workbook も確かにオブジェクトだけど
> オブジェクト指向のオブジェクトとは意味が異なるよ。
どこが違うというのか?
> オブジェクト指向言語であるか否かは、C言語と、C++やJavaの違いなので。
意味不明
> worksheet や workbook も確かにオブジェクトだけど
> オブジェクト指向のオブジェクトとは意味が異なるよ。
どこが違うというのか?
> オブジェクト指向言語であるか否かは、C言語と、C++やJavaの違いなので。
意味不明
636デフォルトの名無しさん (ワッチョイ 5fda-4V6Q)
2022/01/25(火) 11:59:36.95ID:HS+/VKuh0 その業種独特とか固有とかそこらじゅうに転がってるぞ それを読み解くチカラ無くしてVBAだけ 等とは笑止千万
だいたいが、VBAどころかExcelすら無関係でも彼らはそれをこなしてる 先ずはそこがボーダー
そこを起点に、それが効率化できるか改善できるか、でようやくVBAの出番
改善や効率化が不要なら出番すら無い むしろ出しゃばるな 今のままでいい それを見極めるのが上司上長の役目
あと無意味に改行する奴
だいたいが、VBAどころかExcelすら無関係でも彼らはそれをこなしてる 先ずはそこがボーダー
そこを起点に、それが効率化できるか改善できるか、でようやくVBAの出番
改善や効率化が不要なら出番すら無い むしろ出しゃばるな 今のままでいい それを見極めるのが上司上長の役目
あと無意味に改行する奴
637デフォルトの名無しさん (ラクッペペ MM8f-DS0X)
2022/01/25(火) 11:59:54.76ID:7EThQbwZM オブジェクティブCは?
638デフォルトの名無しさん (アウアウウー Sa4b-ZIwK)
2022/01/25(火) 12:15:21.94ID:zQXNzX5la >>628
自分ができないのにできる人が来ないとか言うなよ
自分ができないのにできる人が来ないとか言うなよ
639デフォルトの名無しさん (スフッ Sd7f-IuBN)
2022/01/25(火) 12:31:10.86ID:zFwMgogDd 「オブジェクト構造」と「オブジェクト指向プログラミング」を混同していませんか
640デフォルトの名無しさん (ワッチョイ 7fda-ZIwK)
2022/01/25(火) 12:42:30.48ID:Y5KLOHGW0 自分の要求を完璧に実行してくれる天才に
金を払わないでもやってくれる人ってなかなかいないんだよね
金を払わないでもやってくれる人ってなかなかいないんだよね
641デフォルトの名無しさん (スッップ Sd7f-4V6Q)
2022/01/25(火) 13:18:00.17ID:j/cJSCFFd 事務員に+αでVBA知識なんだから月給なんて20万程度での募集なんでしょ
やめとき
やめとき
642デフォルトの名無しさん (オイコラミネオ MMdb-fJoz)
2022/01/25(火) 14:06:19.97ID:WI95qNC1M テスト
643デフォルトの名無しさん (オイコラミネオ MMdb-fJoz)
2022/01/25(火) 14:10:24.68ID:WI95qNC1M644デフォルトの名無しさん (ワッチョイ 5fda-oAy5)
2022/01/25(火) 14:50:40.66ID:CplOG10X0 余程VBAが好きならその仕事を受けるのはアリだと思いますが、それでも知らない会社のシステム組むのは恐いですな。
何かあった時の各種トラブル対応を完璧にできる人じゃないとキツイのでは?
何かあった時の各種トラブル対応を完璧にできる人じゃないとキツイのでは?
645デフォルトの名無しさん (ワッチョイ 5fda-oAy5)
2022/01/25(火) 14:52:58.84ID:CplOG10X0646デフォルトの名無しさん (ワッチョイ a768-kzOy)
2022/01/25(火) 15:04:52.93ID:bToP/k2z0 大介って光2コンボ好きなのか
647デフォルトの名無しさん (ワッチョイ 8724-ZIwK)
2022/01/25(火) 16:23:40.81ID:KtMUUOjX0 右から来たものを左へ受け流す
648デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 19:20:32.27ID:mNb42c/J0 Excel VBAで、Windowsサーバの管理とか
OracleとかのDB連携システムを構築できれば
月収40〜50万は余裕でもらえるけどね。
一般職よりIT技術者になった方が
年収は一気に上がるのに。
OracleとかのDB連携システムを構築できれば
月収40〜50万は余裕でもらえるけどね。
一般職よりIT技術者になった方が
年収は一気に上がるのに。
649デフォルトの名無しさん (ワッチョイ a768-IuBN)
2022/01/25(火) 19:43:09.58ID:bToP/k2z0650デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 20:00:58.11ID:mNb42c/J0 ん?意味わかってないね…(汗
Excel のフォームをフロントエンドにして
データベース検索できるようにするんだよ。
Excelでボタン押すと、入出力フォームが出てきて
データベースへの読み書きを簡単にできるってやつ。
VBA上級者なら簡単に作れる。
Excel のフォームをフロントエンドにして
データベース検索できるようにするんだよ。
Excelでボタン押すと、入出力フォームが出てきて
データベースへの読み書きを簡単にできるってやつ。
VBA上級者なら簡単に作れる。
651デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 20:05:26.58ID:mNb42c/J0 あとは、 Excelフォームから、WindowsサーバにAPIでアクセスして
ハードウェアのリソース管理とか、AD管理できるようにするとか。
サーバーの監視部隊が定期的に手作業でやってる管理業務を自動化する。
AD とは、Active Directory のことね。
ハードウェアのリソース管理とか、AD管理できるようにするとか。
サーバーの監視部隊が定期的に手作業でやってる管理業務を自動化する。
AD とは、Active Directory のことね。
652デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 20:09:23.34ID:mNb42c/J0653デフォルトの名無しさん (ワッチョイ 5f7c-U/bu)
2022/01/25(火) 20:16:10.91ID:ZGZoh/tR0 >>651
フロントエンドにExcelを選定する時点で怪しすぎるわ
フロントエンドにExcelを選定する時点で怪しすぎるわ
654デフォルトの名無しさん (ブーイモ MM6b-tDnv)
2022/01/25(火) 20:18:03.17ID:ncFbLrOnM VBAでイキってて草
655デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 20:19:27.46ID:mNb42c/J0 もちろん、DBの深い知識とか、Windowsサーバを
管理できる知識がないとできないけどね。
どちらもSQLの読み書きは必須。
管理できる知識がないとできないけどね。
どちらもSQLの読み書きは必須。
656デフォルトの名無しさん (ワッチョイ 5fda-oAy5)
2022/01/25(火) 20:19:40.81ID:CplOG10X0 酷い言い方する人は、VBAはプログラミングではないと言いきる人いますからね
657デフォルトの名無しさん (ワッチョイ 7fda-4V6Q)
2022/01/25(火) 20:21:51.60ID:Y5KLOHGW0 吾輩は猫であるとかいう人もいるからな
658デフォルトの名無しさん (ワッチョイ a768-IuBN)
2022/01/25(火) 20:22:00.61ID:bToP/k2z0659デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 20:22:19.53ID:mNb42c/J0 ん?Access でも、Word でも作れるよ。
MS Office を使えばコスパ良く自動化できる
ってのを、割と知らない無能が多いから
ヒントを書いたまでだけど?
MS Office を使えばコスパ良く自動化できる
ってのを、割と知らない無能が多いから
ヒントを書いたまでだけど?
660デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 20:25:27.78ID:mNb42c/J0 なぜかバカほど高価なミドルウェアを使いたがるけど
VBAで自動化したらタダでできるのに。
オレはVBSでも作ったけどね。
VBSならメモ帳だけでプログラミング可能。
VBAで自動化したらタダでできるのに。
オレはVBSでも作ったけどね。
VBSならメモ帳だけでプログラミング可能。
661デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 20:28:01.06ID:mNb42c/J0662デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 20:31:39.60ID:mNb42c/J0663デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 20:35:14.51ID:mNb42c/J0 MS Officeが無い場合でも JavaScriptでも
できるけど。
とにかく色んな自動化は、格安でできるってこと。
弘法筆を選ばずとはこの事。笑
できるけど。
とにかく色んな自動化は、格安でできるってこと。
弘法筆を選ばずとはこの事。笑
664デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 20:38:14.03ID:mNb42c/J0 まあ、給料上げたいなら
努力して頑張りましょう。
努力して頑張りましょう。
665デフォルトの名無しさん (ドコグロ MM4f-x+w6)
2022/01/25(火) 20:40:51.27ID:f4GoSiUSM Excel VBAでも作れるけどC#とかの方が全然楽だぞ
定期的なADの操作とかならPowerShellでいいし
VBAしか書けないというのでなければ.NETFrameworkの恩恵を受けられないVBAの出る幕はない
定期的なADの操作とかならPowerShellでいいし
VBAしか書けないというのでなければ.NETFrameworkの恩恵を受けられないVBAの出る幕はない
666デフォルトの名無しさん (ワントンキン MM3f-pR+k)
2022/01/25(火) 20:41:24.90ID:4M+ZFVtxM いつもの馬鹿か?
667デフォルトの名無しさん (ワッチョイ 7f8e-4Ql0)
2022/01/25(火) 20:44:12.39ID:EmlIIuq10 ID:mNb42c/J0
いつもの知ったかの馬鹿?
いつもの知ったかの馬鹿?
668デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 20:46:43.85ID:mNb42c/J0 コスパの話をしてんのよ。
わかるかな?無能さん。
わかるかな?無能さん。
669デフォルトの名無しさん (ワッチョイ 7f8e-4Ql0)
2022/01/25(火) 20:58:23.53ID:EmlIIuq10670デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 21:01:31.55ID:mNb42c/J0 もちろん、PowerShellでも作れるし
他にもテキストベースなら
JavaScript、VBSでもつくれるし。
他にもテキストベースなら
JavaScript、VBSでもつくれるし。
671デフォルトの名無しさん (ワッチョイ 0768-IuBN)
2022/01/25(火) 21:01:47.49ID:7v92mOzc0 VBAスレなのになぁ
672デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 21:04:24.62ID:mNb42c/J0 無能はスマソ。
Windows環境なら、簡単に自動化する方法は
沢山あるよって話でした。
さようなら。
Windows環境なら、簡単に自動化する方法は
沢山あるよって話でした。
さようなら。
673デフォルトの名無しさん (ワッチョイ 7f8e-4Ql0)
2022/01/25(火) 21:28:25.73ID:EmlIIuq10 >>672
話しを誤魔化して逃げるのかよ、馬鹿
話しを誤魔化して逃げるのかよ、馬鹿
674デフォルトの名無しさん (ドコグロ MM4f-x+w6)
2022/01/25(火) 21:31:06.39ID:Ezk4VrXqM 放置しとけよw
別に今時のWindowsならC#でもVB.NETでも使えることすら知らんみたいだし
別に今時のWindowsならC#でもVB.NETでも使えることすら知らんみたいだし
675デフォルトの名無しさん (ワッチョイ 8756-xA1r)
2022/01/25(火) 22:00:31.09ID:+A6ImuRo0 >>604
なんかもうため息というかなんというか。要は上司の「俺が理解できないから」だよね。
悪い意味での日本流。東アジア流かもしれん。
偶然の産物かもだけど、「長々とした入れ子は駄目」は賛成する。
4段以上のネストとか30行以上の関数とか俺の頭じゃバッファオーバーフロー。
なんかもうため息というかなんというか。要は上司の「俺が理解できないから」だよね。
悪い意味での日本流。東アジア流かもしれん。
偶然の産物かもだけど、「長々とした入れ子は駄目」は賛成する。
4段以上のネストとか30行以上の関数とか俺の頭じゃバッファオーバーフロー。
676デフォルトの名無しさん (ワッチョイ 8756-xA1r)
2022/01/25(火) 22:08:37.63ID:+A6ImuRo0 If( 正当条件1 ) Then
If( 正当条件2 ) Then
If( 正当条件3 ) Then
If( 正当条件4 ) Then
長〜い正当処理1
長〜い正当処理2
長〜い正当処理3
Else
エラー4
Else
エラー3
Else
エラー2
Else
エラー1
End If
こんなの見ると、「初手でエラー全部弾けよ」と思う。
If( 正当条件2 ) Then
If( 正当条件3 ) Then
If( 正当条件4 ) Then
長〜い正当処理1
長〜い正当処理2
長〜い正当処理3
Else
エラー4
Else
エラー3
Else
エラー2
Else
エラー1
End If
こんなの見ると、「初手でエラー全部弾けよ」と思う。
677デフォルトの名無しさん (ワッチョイ 7fe6-BmHk)
2022/01/25(火) 22:11:24.49ID:Zmf/5OMz0 まあまあ、自分が昔組んだコード見ると何でこんな面倒なことやってたんだろうってみんなが通る道だし
678デフォルトの名無しさん (ワッチョイ a768-IuBN)
2022/01/25(火) 22:16:18.25ID:bToP/k2z0679デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/25(火) 22:21:46.97ID:mNb42c/J0 いま、Youtubeひろゆきライブ配信やってるから
よく聴いて、社畜奴隷の洗脳を解きなさいな。
よく聴いて、社畜奴隷の洗脳を解きなさいな。
680デフォルトの名無しさん (ワッチョイ 5fda-oAy5)
2022/01/25(火) 22:23:22.62ID:CplOG10X0 Office田中先生、近々ようつべに復帰するみたいですね。
内容は当たり外れあるからアレだけど、あの方の喋りはひょうきんで楽しい。
内容は当たり外れあるからアレだけど、あの方の喋りはひょうきんで楽しい。
681デフォルトの名無しさん (ワッチョイ 5fda-oAy5)
2022/01/25(火) 22:24:31.01ID:CplOG10X0682デフォルトの名無しさん (ドコグロ MM4f-x+w6)
2022/01/25(火) 22:32:38.66ID:T9L9nj8SM >>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で途中脱出させると思う
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で途中脱出させると思う
683デフォルトの名無しさん (ワッチョイ 5f7c-4V6Q)
2022/01/25(火) 23:09:39.57ID:ZGZoh/tR0 Select Case 0
Case 正当条件1
エラー1
Case 正当条件2
エラー2
Case 正当条件3
エラー3
Case 正当条件4
エラー4
Case Else
長〜い正当処理1
長〜い正当処理2
長〜い正当処理3
End Select
どやさ
Case 正当条件1
エラー1
Case 正当条件2
エラー2
Case 正当条件3
エラー3
Case 正当条件4
エラー4
Case Else
長〜い正当処理1
長〜い正当処理2
長〜い正当処理3
End Select
どやさ
684デフォルトの名無しさん (ワッチョイ 7fda-4V6Q)
2022/01/25(火) 23:20:00.64ID:Y5KLOHGW0 Call 長い正当処理1to3
685デフォルトの名無しさん (ワッチョイ e7ce-IuBN)
2022/01/25(火) 23:22:36.33ID:DW1OPm0+0 >>676
VBAはショートサーキットしないからIfを何段も並べた方が効率いい場合がある
けど、この場合はエラーも4種類だから判定式を1つにまとめるわけにいかない
この書き方が読みにくいと思うならIfからエラーまでをそれぞれ4つのFunctionに飛ばすかな
VBAはショートサーキットしないからIfを何段も並べた方が効率いい場合がある
けど、この場合はエラーも4種類だから判定式を1つにまとめるわけにいかない
この書き方が読みにくいと思うならIfからエラーまでをそれぞれ4つのFunctionに飛ばすかな
686デフォルトの名無しさん (スフッ Sd7f-N4O5)
2022/01/25(火) 23:29:04.02ID:UWkwB/rRd 頭が悪いからずっとこれだわ
If エラー条件1 Then
エラー処理
Exit Sub
End if
If エラー条件2 Then
エラー処理
Exit Sub
End if
If エラー条件3 Then
エラー処理
Exit Sub
End if
正当処理
If エラー条件1 Then
エラー処理
Exit Sub
End if
If エラー条件2 Then
エラー処理
Exit Sub
End if
If エラー条件3 Then
エラー処理
Exit Sub
End if
正当処理
687デフォルトの名無しさん (ワッチョイ 7f8e-4Ql0)
2022/01/26(水) 01:52:17.01ID:ULWJ4UsX0 >>679
馬鹿が底の浅い知識をひけらかして嘘を書いて、捨てゼリフ吐いて逃げたのにノコノコ戻ってきて再び捨てゼリフと
馬鹿は自分の拙さを知らずに馬鹿な自分が見えるだけの世界が全てだと思っているから馬鹿なんだよ
馬鹿が底の浅い知識をひけらかして嘘を書いて、捨てゼリフ吐いて逃げたのにノコノコ戻ってきて再び捨てゼリフと
馬鹿は自分の拙さを知らずに馬鹿な自分が見えるだけの世界が全てだと思っているから馬鹿なんだよ
688デフォルトの名無しさん (ドコグロ MM4f-x+w6)
2022/01/26(水) 06:27:00.95ID:0epn3Uk/M >>686
サブルーチンに切り出せるならそれが一番見易い
サブルーチンに切り出せるならそれが一番見易い
689デフォルトの名無しさん (ワッチョイ 5fda-oAy5)
2022/01/26(水) 11:26:17.93ID:RGV8ouxS0 パッと思い付いてすぐコードを書ける自体有能だと思いますよ。
みんな凄い。
みんな凄い。
690デフォルトの名無しさん (オッペケ Sr7b-zlty)
2022/01/26(水) 11:54:57.36ID:xGOCvJmUr たしかにVBとか普段書かないからif thenおかendなんて思い出せないよな
691デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/26(水) 13:10:14.89ID:q0HuFlPw0 ちゃんと単体結合テストやるところの場合だと
処理毎に、Function に分けるのが吉。
処理毎に、Function に分けるのが吉。
692デフォルトの名無しさん (ワントンキン MM3f-iT+O)
2022/01/26(水) 14:42:22.30ID:ip0aOcF2M みんな試行錯誤してきたのがよくわかる
693デフォルトの名無しさん (ワッチョイ 5fda-oAy5)
2022/01/26(水) 16:16:07.18ID:RGV8ouxS0 Excel全般て本当に努力しないと使えないってのはウソじゃないですな
694デフォルトの名無しさん (オッペケ Sr7b-8IZx)
2022/01/26(水) 16:21:39.28ID:ykAsNY55r Excel VBAビギナーの頃
5000万の案件をやり遂げた事あるけど
VBの入り口としては良いよね。
昔はVBAを入り口に、VB6.0 に移行できたから
良かったんだがな。
5000万の案件をやり遂げた事あるけど
VBの入り口としては良いよね。
昔はVBAを入り口に、VB6.0 に移行できたから
良かったんだがな。
695デフォルトの名無しさん (ワッチョイ 5f4f-NNUQ)
2022/01/26(水) 18:39:36.99ID:WAP1y4aa0 >>623
まぁ他言語をやってない奴の意見なんてそんなもんだろな。
VBAで使えるものもあれば使えないものもある。
テンプレートメソッドパターンなんかは使えないけどストラテジーパターンなんかは使える。
そういうの使った際に分岐が減るからUT楽になるかなー、とか、それ使う程の規模かなー、とか
楽な方を選べるってことだよ。
まぁ他言語をやってない奴の意見なんてそんなもんだろな。
VBAで使えるものもあれば使えないものもある。
テンプレートメソッドパターンなんかは使えないけどストラテジーパターンなんかは使える。
そういうの使った際に分岐が減るからUT楽になるかなー、とか、それ使う程の規模かなー、とか
楽な方を選べるってことだよ。
696デフォルトの名無しさん (ドコグロ MM4f-x+w6)
2022/01/26(水) 18:53:39.06ID:YVr9NW6iM697デフォルトの名無しさん (ラクッペペ MM8f-DS0X)
2022/01/26(水) 19:15:39.62ID:xR2ItXtPM グローバルしかない古代BASICに比べれば天国じゃよ
698676 (ワッチョイ 8756-xA1r)
2022/01/26(水) 20:11:08.97ID:+JbM4Kut0 みんなやっぱ困ってるお題なんだなこれ。反応ありがとう。
俺は
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 て書けるのかな。
俺は
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 て書けるのかな。
699デフォルトの名無しさん (ワッチョイ a768-IuBN)
2022/01/26(水) 20:33:27.76ID:Rwt/NS3J0 エラーとしてまとめるってのを昔見たことあるけど、見づらいかなぁ
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
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
700デフォルトの名無しさん (ドコグロ MM4f-x+w6)
2022/01/26(水) 20:50:31.29ID:8zLJqphFM >>698
> C風に
> If ( (Func = TestArguments(Args))<>Normal ) Then て書けるのかな。
書けるけど君の思ったようには動かない、例えば
Work = (Func = TestArguments(Args))
は TestArguments() の戻り値が Func と同じなら True、違うなら False が Work に入るから、それと Normal を比較することになる
※ 実際には Func は再帰呼出しとなるが引数が指定されてないのでエラーになる
> C風に
> If ( (Func = TestArguments(Args))<>Normal ) Then て書けるのかな。
書けるけど君の思ったようには動かない、例えば
Work = (Func = TestArguments(Args))
は TestArguments() の戻り値が Func と同じなら True、違うなら False が Work に入るから、それと Normal を比較することになる
※ 実際には Func は再帰呼出しとなるが引数が指定されてないのでエラーになる
701デフォルトの名無しさん (ワッチョイ 8756-xA1r)
2022/01/26(水) 21:48:41.76ID:+JbM4Kut0 >>700
なる。ありがとう。
なる。ありがとう。
702デフォルトの名無しさん (ワッチョイ 47b0-4RXt)
2022/01/27(木) 01:44:43.12ID:f6ffcYr70703デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/27(木) 02:13:33.38ID:iz7yjT+P0 後藤使うのは素人
704デフォルトの名無しさん (ドコグロ MM4f-x+w6)
2022/01/27(木) 07:25:42.82ID:EosWc+uxM >>702
Raise ならエラー情報(番号とメッセージ)を伝えられると言うメリットがあるな
Raise ならエラー情報(番号とメッセージ)を伝えられると言うメリットがあるな
705デフォルトの名無しさん (ワッチョイ a768-IuBN)
2022/01/27(木) 09:17:43.26ID:ISwrtggt0706デフォルトの名無しさん (ワッチョイ 5f4f-NNUQ)
2022/01/27(木) 09:49:42.96ID:jZ2PQbyQ0 >>696
何故そう思う?
何故そう思う?
707デフォルトの名無しさん (ドコグロ MM4f-x+w6)
2022/01/27(木) 10:10:14.97ID:pNJphUuoM >>706
CallByName() とかを使ってやってやれなくは無いけど無理矢理感あるしな
Strategyパターンはアルゴリズムを記述するサブルーチンへの参照をデータ構造の内部に保持する。
このパターンの実現には、関数ポインタや関数オブジェクト、デリゲートのほか、オーソドックスなオブジェクト指向言語におけるポリモーフィズムと委譲、あるいはリフレクションによる動的ダック・タイピングなどが利用される。
VBAにもまともな関数ポインタがあればね…
CallByName() とかを使ってやってやれなくは無いけど無理矢理感あるしな
Strategyパターンはアルゴリズムを記述するサブルーチンへの参照をデータ構造の内部に保持する。
このパターンの実現には、関数ポインタや関数オブジェクト、デリゲートのほか、オーソドックスなオブジェクト指向言語におけるポリモーフィズムと委譲、あるいはリフレクションによる動的ダック・タイピングなどが利用される。
VBAにもまともな関数ポインタがあればね…
708デフォルトの名無しさん (ワッチョイ 5f4f-NNUQ)
2022/01/27(木) 10:41:53.58ID:jZ2PQbyQ0709デフォルトの名無しさん (ドコグロ MM4f-x+w6)
2022/01/27(木) 11:20:16.68ID:NmFY0FMsM >>708
ああ、インターフェースはあるから移譲はできるか
ああ、インターフェースはあるから移譲はできるか
710デフォルトの名無しさん (ワッチョイ 275f-8IZx)
2022/01/27(木) 12:29:10.84ID:iz7yjT+P0 シンプル・イズ・ベスト。
スティーブ・ジョブズの信条でもあった。
凡才は複雑を好み、天才はシンプルを好む。
スティーブ・ジョブズの信条でもあった。
凡才は複雑を好み、天才はシンプルを好む。
711デフォルトの名無しさん (ワッチョイ e7da-lWUc)
2022/01/28(金) 00:04:37.97ID:sv+QVprG0 WorkSheetのEventで、
テーブルのフィルタソート機能(昇順or降順)をユーザが使ったときのEvent
ってできるんでしょうか?
最悪、"フィルタ機能を使った"時点でも取得できれば。。。
テーブルのフィルタソート機能(昇順or降順)をユーザが使ったときのEvent
ってできるんでしょうか?
最悪、"フィルタ機能を使った"時点でも取得できれば。。。
712デフォルトの名無しさん (ワッチョイ e7ce-IuBN)
2022/01/28(金) 00:19:09.31ID:6Z68BDtw0 >>711
ない
ない
713デフォルトの名無しさん (ワッチョイ e7da-Yr+x)
2022/01/28(金) 03:12:47.26ID:sv+QVprG0 >>712
まじですか、、、ありがとうございました。
まじですか、、、ありがとうございました。
714デフォルトの名無しさん (ワッチョイ 7d01-+o4x)
2022/01/28(金) 12:32:58.97ID:EweXC9jR0 すんません、膨大なデータ量の集計を任されて困ってます。
例えばA1セルに
「1.5G」とあるものは
Gを取った上で1024を3乗し、B1に表示
「256M」とあるものは
Mを取った上で1024を2乗し、B1に表示
「504K」とあるものは
Kを取った上で1024を掛け、B1に表示
みたいな便利なことができる関数があれば教えて頂きたく。
SUBSTITUTEで文字を取ったりVALUEで数字だけ抜き出したりしてみても、そこに条件判定を組み込むことが出来なくて…。
例えばA1セルに
「1.5G」とあるものは
Gを取った上で1024を3乗し、B1に表示
「256M」とあるものは
Mを取った上で1024を2乗し、B1に表示
「504K」とあるものは
Kを取った上で1024を掛け、B1に表示
みたいな便利なことができる関数があれば教えて頂きたく。
SUBSTITUTEで文字を取ったりVALUEで数字だけ抜き出したりしてみても、そこに条件判定を組み込むことが出来なくて…。
715デフォルトの名無しさん (ワッチョイ f1ce-Xc5L)
2022/01/28(金) 13:00:06.93ID:6Z68BDtw0 >>714
Excelのバージョン書いて
Excelのバージョン書いて
716デフォルトの名無しさん (ブーイモ MM81-Xc5L)
2022/01/28(金) 13:09:05.83ID:tnq08GUKM >>714
あんまりスッキリした方法じゃないけど、単位ごとに処理を分けて並べるぐらいしかないのでは
式はもうちょっと整理できると思うけど、とりあえず動くやつ
=IF(RIGHT(A1,1)="G",LEFT(A1,LEN(A1)-1)*1024^3,IF(RIGHT(A1,1)="M",LEFT(A1,LEN(A1)-1)*1024^2,IF(RIGHT(A1,1)="K",LEFT(A1,LEN(A1)-1)*1024,A1)))
あんまりスッキリした方法じゃないけど、単位ごとに処理を分けて並べるぐらいしかないのでは
式はもうちょっと整理できると思うけど、とりあえず動くやつ
=IF(RIGHT(A1,1)="G",LEFT(A1,LEN(A1)-1)*1024^3,IF(RIGHT(A1,1)="M",LEFT(A1,LEN(A1)-1)*1024^2,IF(RIGHT(A1,1)="K",LEFT(A1,LEN(A1)-1)*1024,A1)))
717デフォルトの名無しさん (ワッチョイ 7d01-+o4x)
2022/01/28(金) 13:43:11.42ID:EweXC9jR0718デフォルトの名無しさん (ワッチョイ ad68-Xc5L)
2022/01/28(金) 13:54:48.79ID:SUVzbVrJ0 powerとfindで考えてたけど、あんまり変わらんかった
719デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/28(金) 14:06:54.61ID:54qKpcGwM >>717
365 なら
=SWITCH(RIGHT(A1, 1), "G", 1024^3, "M", 1024^2, "K", 1024) * LEFT(A1, LEN(A1) - 1)
ただし、最後が GMK でなかった時はエラーになるのでその場合はIFERROR()で回避かな
365 なら
=SWITCH(RIGHT(A1, 1), "G", 1024^3, "M", 1024^2, "K", 1024) * LEFT(A1, LEN(A1) - 1)
ただし、最後が GMK でなかった時はエラーになるのでその場合はIFERROR()で回避かな
720デフォルトの名無しさん (ワッチョイ a563-ntHq)
2022/01/28(金) 14:10:37.46ID:pNi2eyZM0 集計なら式使わずに素直にVBAで処理すれば?
721デフォルトの名無しさん (ワッチョイ 7d01-+o4x)
2022/01/28(金) 15:01:21.24ID:EweXC9jR0 >>719
ありがとう、それも問題なくいけました。
ありがとう、それも問題なくいけました。
722デフォルトの名無しさん (ワッチョイ f1ce-Xc5L)
2022/01/28(金) 15:16:30.86ID:6Z68BDtw0 >>721
1K未満の単位の付かない数値に対応したやつ
=LET(u,RIGHT(A1,1),p,SEARCH(u,"kmg"),IFERROR(LEFT(A1,LEN(A1)-1)*1024^p,A1))
1K未満の単位の付かない数値に対応したやつ
=LET(u,RIGHT(A1,1),p,SEARCH(u,"kmg"),IFERROR(LEFT(A1,LEN(A1)-1)*1024^p,A1))
723デフォルトの名無しさん (ワッチョイ 7d01-+o4x)
2022/01/28(金) 15:34:49.10ID:EweXC9jR0 色々ありがとう。使わせていただきます。
724デフォルトの名無しさん (ワッチョイ ea4f-stl2)
2022/01/28(金) 16:00:55.15ID:Pw9WEPs80 >>723
スピードを求めるならVBAでやった方がいい。
基本、VBAよりCELLに入れた数式の方が計算早いけど、
値を設定するたび再計算が走るのでは当然遅くなる。
単位をRightの1文字切り取って使うかInStrRevで1文字切り取って使うかは自由だし、
数値部分も最後のひと文字を抜いて数値変換する方法はどうにでもなるはずだから、
後は切り取った単位で冪乗計算の乗数を変えてあげれば簡単に行けるはず。
スピードを求めるならVBAでやった方がいい。
基本、VBAよりCELLに入れた数式の方が計算早いけど、
値を設定するたび再計算が走るのでは当然遅くなる。
単位をRightの1文字切り取って使うかInStrRevで1文字切り取って使うかは自由だし、
数値部分も最後のひと文字を抜いて数値変換する方法はどうにでもなるはずだから、
後は切り取った単位で冪乗計算の乗数を変えてあげれば簡単に行けるはず。
725デフォルトの名無しさん (ワッチョイ a95f-4IfY)
2022/01/28(金) 16:07:42.05ID:eEIZm5jJ0 膨大な行数になるようなら
関数よりマクロの方が断然軽い。
マクロの記録で瞬間でできるし。
関数よりマクロの方が断然軽い。
マクロの記録で瞬間でできるし。
726デフォルトの名無しさん (ワッチョイ a95f-4IfY)
2022/01/28(金) 16:08:26.59ID:eEIZm5jJ0 記述すら必要なし。
727デフォルトの名無しさん (スプッッ Sd12-Xc5L)
2022/01/28(金) 17:30:28.61ID:vX0FG/YWd マクロの記録で瞬間て、どうやるの?
728デフォルトの名無しさん (ワッチョイ f1a6-bU36)
2022/01/28(金) 17:31:33.84ID:MK2zcruJ0 一瞬で
729デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/28(金) 17:35:47.36ID:sJpZ8snBM この程度なら関数の方が速いと思うぞ
マルチスレッドで動くし
再計算も変化したセルに関連するところしかやらないから問題にはならないと思う
マルチスレッドで動くし
再計算も変化したセルに関連するところしかやらないから問題にはならないと思う
730デフォルトの名無しさん (スップ Sdea-dw97)
2022/01/28(金) 17:36:25.47ID:u6dzd5iJd ここはVBAスレだから質問はスレチだけどみんな優しいね
731デフォルトの名無しさん (ワッチョイ 66da-Xc5L)
2022/01/28(金) 17:49:38.97ID:qJef3P+M0732デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/28(金) 17:57:01.02ID:sJpZ8snBM > ここはVBAスレだから(計算式の)質問はスレチだけどみんな優しいね
733デフォルトの名無しさん (ワッチョイ 668e-ltXr)
2022/01/28(金) 18:14:34.37ID:ZcQb+fCA0 >>714
こんな奴に作業を任せるとかそもそも間違えている
こんな奴に作業を任せるとかそもそも間違えている
734デフォルトの名無しさん (ワッチョイ 792f-Cnlt)
2022/01/28(金) 18:21:53.88ID:np+yf06a0 今のエクセルの計算式は基本マルチスレッドでやるから、VBAでちまちまやるよりは早いだろうけど
このスレ的にはVBAで関数作るんが正解じゃないかと思った
で、ふと思ったが、VBAの関数をワークシートの計算式で使ったら、シングルスレッドで処理されるのかな
このスレ的にはVBAで関数作るんが正解じゃないかと思った
で、ふと思ったが、VBAの関数をワークシートの計算式で使ったら、シングルスレッドで処理されるのかな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★7 [七波羅探題★]
- 「そんなに米国が言う通りにやりたいのか」小泉氏、防衛費増額で立民・後藤祐一氏に反論 [少考さん★]
- 中国がここまで過敏になるのは日本に前科があるから。盧溝橋、満州事変。ジャップの先制攻撃は挙げればキリがないけど [472617201]
- 犬って顔くっつけて寝たがるよな
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- ひらがなの"ふ"、"な"がかけないFラン新入社員に激怒。学歴フィルターは必要と厳格化に踏み切った企業 [737440712]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- 実際、朝7~8時の電車通勤は確実にQOL下げてるけど、心に余裕のない社畜にそれ言ったら炎上するよな [315293707]
