Excel VBA 質問スレ Part76

■ このスレッドは過去ログ倉庫に格納されています
2022/05/01(日) 02:23:41.78ID:2t63WK/jM
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けること

ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
Excel VBA 質問スレ Part75
https://mevius.5ch.net/test/read.cgi/tech/1644384272/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2022/06/29(水) 17:56:17.53ID:vfJ3sAv3M
Excelで例えるなら関数を特定のオブジェクトのメソッドとしてではなく、それ自体を実体のあるオブジェクト(あるいはコレクション)と見做すようなもの
利用側の関数内で関数オブジェクト(のようなもの)を参照する手段として関数そのものをラムダとして扱う
2022/06/29(水) 18:54:09.74ID:zPLPBKg6H
エクセルもVBAも詳しくないんですけど
VBAは非同期処理でコールバック関数を使わないんですか?
2022/06/29(水) 19:06:05.99ID:tW8kR1cqM
イベント駆動型ですから
2022/06/29(水) 19:13:20.08ID:i0xj9Opya
>>794
高階関数っていうのを最近覚えたんだろうな
関数内関数に1mmも関係ないのにしつこく語ってる
他の言語スレだと瞬殺されるレベルだからこんなスレで管巻くしか無いんだろうw
2022/06/29(水) 19:15:29.13ID:uu2mw40gD
>>796
使おうと思えば使える
2022/06/29(水) 21:47:59.24ID:zPLPBKg6H
>>799
コールバック関数を使えるのなら
引数に関数参照できるということです?
なら変数に関数を代入できそう
2022/06/29(水) 21:55:21.60ID:zPLPBKg6H
>>797
非同期処理はイベント処理に依存してるってことでしょうか?
コメントありがとうございました
VBA初心者なのでいろいろ勉強していきます
2022/06/29(水) 22:13:03.71ID:sZpGYWcf0
>>800
特定のオブジェクトやクラスに所属する関数やAPIなどシステムで定義された関数(メソッド)であればコールバック関数で参照することはできる
グローバルのユーザー定義の関数はラムダ式で記述するなどの手段を使わない限りは無理
2022/06/29(水) 22:45:43.93ID:JurptZkT0
コールバック「関数」とはなにを指してるんだろうかねぇ

コールバックを実現する手段はイベント以外に
CallByNameとかApplication.Runとかでまあ実現できなくはない
2022/06/29(水) 22:55:30.76ID:zPLPBKg6H
コールバック関数は何を指しているのか
なぜラムダ式が存在するのか
即時関数とラムダはどこから分岐していったのか
関数プログラミングは本当に有益なのか
本当に変数は悪者で動的型付けは悪なのか
それらはもはや哲学なのかもしれません
2022/06/29(水) 23:01:15.11ID:L0Xzxy470
慣れれば別にどっちでも・・・って感じになるけどな
2022/06/29(水) 23:50:10.86ID:HQQahVZ60
>>783

自作の階乗作らせりゃ一発だろ。Cの関数へのポインタとか、可読性0に近い。組んでて楽しいけど、1ヶ月後の自分はこれを理解できるだろうかという疑問が湧くw
807デフォルトの名無しさん (ワッチョイ 3f4f-60CD)
垢版 |
2022/06/30(木) 05:47:49.15ID:P7B/AZjs0
まぁでもあんまりVBAでコールバック使う機会ないかな
呼び出しや生成元のモジュール側の関数を
呼び出された側や生成された側から呼び出すときに
密結合になるのを避けるためくらいにしか使ってない
2022/06/30(木) 07:16:43.81ID:1TbRNwlJH
>>807
エクセルVBAでDBのデータやファイルデータを読み込むとき
非同期にならないように処理するってことなんでしょうか?
例えばフラグを立ててdo-while、breakで処理待ちしてから次の処理に進むとか?
webのように処理と表示のタイムラグを気にするようなことがないのかもしれませんね
2022/06/30(木) 07:32:44.20ID:wDIpT9iQ0
それすんごい資源食わないか?
2022/06/30(木) 07:37:53.64ID:1TbRNwlJH
>>809
vbaはコールバックを使わないということらしいのですが
コールバックを使わずに非同期処理する方法があるのでしょうか?
2022/06/30(木) 07:47:00.24ID:NKnrqd7g0
ない(もしくはめちゃ面倒だ)から諦めろ
非同期やりたいなら他の言語使え
2022/06/30(木) 07:59:35.80ID:wyi1xEzY0
VBA走らせている間に漫画でも読んどけよ
2022/06/30(木) 08:04:39.54ID:1TbRNwlJH
え、昨夜のレスでは非同期使えるって言われたので
多言語と同じようにpromise的な処理があるのかと思いました
非同期めちゃくちゃ面倒ってことは
エクセル処理で非同期を使うという発想が間違っているのですね

なんかいろいろ勘違いしていたみたいでした
神様、先輩方、すみませんでした
2022/06/30(木) 08:14:56.75ID:CdZVH0NpM
vbsとか使って外部プロセスに追い出すのが簡単だな

で、何を並列処理したいのかな?
2022/06/30(木) 09:30:19.73ID:TLf+rFOod
JavaScriptの経験があるなら今更VBAなんかに手を出さなくてもOfficeスクリプト使えばいいでしょ
デスクトップでもサポートされたからもうVBAいらないよ
816デフォルトの名無しさん (ワッチョイ 3f4f-60CD)
垢版 |
2022/06/30(木) 10:09:22.67ID:P7B/AZjs0
>>815
え、マジ?
もう企業や教育者向けのじゃなくても開発出来るの?
2022/06/30(木) 10:36:29.60ID:3IHNP7gZd
ブック1開いてマクロ実行
待ってる間にブック2開いて手作業
ブック2保存して閉じたら、そのタイミングでブック1のマクロが停止
これって仕様?
818デフォルトの名無しさん (アウアウウー Sad3-sbT5)
垢版 |
2022/06/30(木) 11:24:18.66ID:l3rHcZB/a
排他処理なにそれおいしいの?

ファイル保存したらマクロが止まるのは仕様
2022/06/30(木) 15:49:46.55ID:RZ5lqdEjd
VBAいじっている間にいつの間にかボタン表面が白くなって
userformの背景色や、userformで使われているボタン表面のも同じ白色に変色
まったく新しくファイルを作っても同じ現象が起きる
オフィスをインストールし直しても同じ

例外的にいつもの正常なボタンの表面色で表示されるケースがある
https://i.imgur.com/t5RFNKa.png
この現象が起きる前に作ったファイルのコピーを作る。このコピーを開く。
このとき、セキュリティ警告が出てる間はなぜか正常なボタン表面色
コンテンツ~のボタンを押した瞬間にボタンが白くなる
Workbook_Openとかはそもそもない

今のおかしな状態が黒線の左側で、右側がセキュリティ警告が出ている状態

VBEでUserForm自体・ボタン・テキストボックス、これらの背景色BackColorの値は
&H8000000F&
これって正常な値ですよね?
つまり内部的には正常な値なのに表示はいずれも真っ白

windowsやモニタの設定の影響であればセキュリティ警告が出てようが無関係に白色化しているはず


何か原因わかる方いますか?
そもそもVBAが関係しているかどうかも分からないのですが。
ちなみに他のエクセルとは無関係のソフトウェアの色は特に変化はないように思います
2022/06/30(木) 15:56:36.78ID:RZ5lqdEjd
>>819ですが、文章ちょっとおかしなところがありました
ユーザーフォーム上のボタンも、ワークシートに直接おくボタンも同じように白色になっているということです
そもそもボタンだけじゃなくて&H8000000F&で色が表示されている部分は
どれもおかしくなっているような状態です
2022/06/30(木) 16:27:38.04ID:CdZVH0NpM
たいして白くない件
2022/06/30(木) 16:32:48.48ID:RZ5lqdEjd
>>821
真っ白です

→は例外的に正常に表示されるケース
←が現状
https://i.imgur.com/3Hy4Ot8.png
2022/06/30(木) 17:41:14.60ID:1+oYjPxt0
>>810
非同期と並列処理の区別をつけろよ
非同期=コールバックでもないしな
2022/06/30(木) 17:47:02.54ID:1+oYjPxt0
>>819
テーマが適用されてるだけな気がする
2022/06/30(木) 18:26:58.93ID:m1ZMAziu0
システムカラーの値
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/system-color-constants
2022/06/30(木) 21:06:49.66ID:1TbRNwlJH
>>823
そうですね
コールバックがマルチスレッドって言ってるわけでも
プロセスを分けるって言ってるわけでもないです
全ての非同期処理は並列処理でもないですし
コールバックは処理なので、非同期でもないですし
VBAは初めてなのでいろいろ勉強していきます
なんか変なこと言っていたらごめんなさい
2022/06/30(木) 22:28:19.76ID:SUgmTyTCd
自分はやりたい事の手段の一つにExcelVBAがあるだけでExcelVBAでどこまでできるかってのは気にしてない
別の言語を選択すれば可能ならExcelVBAにこだわることもないしね
勉強するあたりのレベルならExcelVBAだけでなくほかの言語も勉強したほうがいいかもね
2022/06/30(木) 23:19:39.52ID:1TbRNwlJH
エクセルの参加人数はすごいと思います
参加人数の多いエクセルをプラットフォームとしてデータ処理できるVBAは
他の言語には見られない参加者人数の価値があります(これを英語で何と言ったか忘れましたが)
ハードもプラットフォームも、潜在的な参加者の数で価値を測るという考え方が正しければ
エクセルVBAは他の言語をはるかに凌ぐ学習価値があると思うのです

他の言語を学習しつつもVBAも使えるというのは
とても素晴らしいことなのだと、VBA初学者としても感じています
先生方、これからもご指導いただける機会がありましたらよろしくです
829デフォルトの名無しさん (スプッッ Sddf-319G)
垢版 |
2022/07/01(金) 00:44:30.82ID:iVoRsqHDd
>>828
お前は二度と来なくていいよ
2022/07/01(金) 00:49:35.03ID:T8FFb7IX0
>>828
ちょっと何いってるか分からない
831デフォルトの名無しさん (ブーイモ MM4f-r+Rc)
垢版 |
2022/07/01(金) 01:26:43.65ID:miA2ycF9M
魔界に転生するとしたら、リザレクの次くらいに持っていたいスキルですもんね。
転生するまでに習得したいと思います。
2022/07/01(金) 01:41:24.35ID:wxGP1WcO0
シート上に実行ボタンがあり、いろいろなBookから値を取得してメインのブックに張り付けるマクロがあるのですが、
Windows7+Excel2010とWindows10+Excel2016では、2016方が数倍動作が遅いです(数秒程度が10秒程度になる)。
ただし、時々2010と同程度で終わることがあり、原因がよくわかりません。
なんか、実行ボタンの押し方によって(クリックしてマウスポインタをすぐExcelのウィンドウ外に移動)、
速度が速くなるような気がしているのですが、そのようなことはあるのでしょうか?
あるとすれば、なにか対策や原因はあるのでしょうか?
2022/07/01(金) 02:14:42.23ID:u7q4KnhWd
>>832
2013あたりからExcelの内部構造が大幅に変わったらしい
Windowsも新しいほど重くなってる

マウスポインタの位置によって速度が変わるのは多いにあり得る
昔はボタンを押したままにするとアプリの動作が止まってたのが、いつのまにかずっと動き続けるようになったし
2022/07/01(金) 06:59:23.11ID:JTFoUJU2H
>>829
DBシステムとしては
操作のバリエーション、検索、演算エンジンともに
最高峰の素晴らしい言語システムなのに
初心者に冷たいコミュニティなのですね

>>830
ネットワーク経済性と似た発想の価値測定方法で
ソフトやハードの経済価値を推定する思考方法です
835デフォルトの名無しさん (ワッチョイ 3f4f-60CD)
垢版 |
2022/07/01(金) 07:51:36.56ID:m7rasyZv0
>>834
いやいや、DBシステムとして使うとすると
シートにSQL投げようとしたとき
インデックス貼れない時点で欠陥品だよ。

EXCELの本分はあくまで表計算。
2022/07/01(金) 08:45:57.76ID:Dqsnfi220
>>834
まずDBシステムじゃないし
COMから学んではどうか
2022/07/01(金) 09:01:55.38ID:2BH0SskNM
今どき簡易DBアプリはPowerAppsみたいなローコードツールを使えばよい
オンライン共有のAccessみたいなアプリがクソ簡単に作れてExcelやスプレッドシートとの連携も容易
838デフォルトの名無しさん (アウアウウー Sad3-n9/C)
垢版 |
2022/07/01(金) 11:26:48.78ID:MWfPFNZsa
>>832
気のせいだからほっとけ
2022/07/01(金) 11:27:33.06ID:B1H2Mtvqd
自分としては質問があればそれにこたえるだけでいいと思うが
技術者が他の事にも手を広げるならクソ簡単かもしれないが
一般ユーザーが背伸びしてVBAを理解しようとしてるなら保守なんかも含めてハードル高いと思うんだよね
まあ言いたい人は好き勝手に言うだけだから止められないが
2022/07/01(金) 11:46:09.70ID:Kpd5ohp2M
自分としては質問があれば質問するだけでいいと思うが
一般ユーザーが背伸びして回答なんかハードル高いと思うんだよね
まあ言いたい人は好き勝手に言うだけだから止められないが
2022/07/01(金) 15:15:30.41ID:Bx5b0a9x0
大事な事だから二度と言うな
2022/07/01(金) 15:46:06.01ID:Ry4wIvAM0
どっちだよw
843デフォルトの名無しさん (アウアウウー Sad3-sbT5)
垢版 |
2022/07/01(金) 15:50:37.55ID:E3WEdYada
背伸び?逆やろ
背伸びしようとするタイプはVBAなんて使わない
伸びない香具師がVBAに固執してる
2022/07/01(金) 15:51:42.30ID:S5EpTQdXM

「いいですか?1回しか言いませんからよく聞いてくださいね」
って言われたけど、なんで大事なことなのに1回しか言わないんだろう
そんなに大事なら確実に伝わるまで何回でも言うか書いて渡すかすべきだろ
2022/07/01(金) 15:56:44.16ID:wWku/Klda
俺、一回しか教えねーぞ!
やるから見て覚えろ盗んで覚えろな!
これ、昭和の意地悪い上司。
それが当たり前だった時代
2022/07/01(金) 15:57:57.34ID:Ry4wIvAM0
>>844
そうそう
アホちゃうの
2022/07/01(金) 15:59:37.00ID:wWku/Klda
>>843
めっちゃ分かる
何がなんでもマクロでやっているヤツって何なんだろうね
2022/07/01(金) 17:12:32.89ID:B9UYAOsl0
>>844 みたいな考えの奴はたいていちゃんと聞いてないしメモ渡しても無くしたりするしw
2022/07/01(金) 17:35:59.70ID:Ry4wIvAM0
>>848
メモ渡すってアホなん
2022/07/01(金) 17:57:54.04ID:Dqsnfi220
>>848
そういう奴でも同じ事何回か教えりゃ覚えるから、
分かんなかったらいくらでもまた聞けって言ってる
目的は教育コストの削減とかそいつの成長とかじゃなく仕事の完了な訳だから
2022/07/01(金) 18:43:10.74ID:miA2ycF9M
いやこれ、あわしろっていう新手の荒らしですよ。
2022/07/01(金) 19:33:27.88ID:rTaPWcb90
昭和からEXCEL使ってた人いる?
2022/07/01(金) 19:34:18.95ID:B9UYAOsl0
>>850
その場限りの相手ならそれが正解だけど>>849 みたいなポンコツは成長しないから今後とも仕事させるならとっとと切り捨てないと結局仕事の完了が遅れるだけ
854デフォルトの名無しさん (ワッチョイ 3f4f-60CD)
垢版 |
2022/07/01(金) 19:41:46.04ID:m7rasyZv0
>>852
そもそも昭和の時代にEXCELあったっけ?
あの頃ってロータス123とか
マルチプランの時代じゃないの?
2022/07/01(金) 19:42:01.43ID:Gg+5fIBkM
>>853
そういうことを言い出したら極論VBA使いもクビにして優秀なエンジニア雇えという結論にしかならん
雇用維持も企業の責任
2022/07/01(金) 19:52:08.13ID:lB7C8CJv0
>>833
複数のブックを別ウインドウで開くようになったからな
個人的にはユーザーフォームが最前面に来ないのがめんどい
2022/07/01(金) 19:52:42.66ID:lB7C8CJv0
あと最小化するとユーザーフォームも消えるのが嫌だな
2022/07/01(金) 20:32:48.53ID:B9UYAOsl0
>>854
最初の日本語版は1989年(平成元年)リリースだから日本語版を使ってた人は居ないはず
最初のExcelはMac用に1985年(昭和60年)にリリースされてるみたいだからもしかしたら触った人がいるかもしれない
2022/07/01(金) 20:38:52.77ID:B9UYAOsl0
>>855
別に辞めさせなくてもポンコツはポンコツで務まるような職場に移せば良いだけだろ
860デフォルトの名無しさん (ワッチョイ ff90-gXkX)
垢版 |
2022/07/01(金) 21:05:26.47ID:0+5KhUlf0
vbエディターを開いたときに開いているブックのモジュールやらUFやらがバーっと開くのを止めさせたいんですが、どなたかご存じないですか?毎回重ねて並べて閉じるのがめんどい。
2022/07/01(金) 21:10:05.40ID:CjhzObSj0
ラジオボタンがクリック1回で反応しなくて2回マウスでカチカチって指定しないといけないんだけど、直し方わかる人いますか?(´・ω・`)PCの問題なんかな?
2022/07/01(金) 21:42:37.97ID:kFE+Jjo70
マルチプランならあるな。
と言っても平成のはじめだけど。
あの時代はPC買うとおまけで違法コピーモノがもらえる時代だからな、
マルチプランも123も両方あったわ。
当時は123のほうが強かったんだよね。
Excelとマルチプランて名前が変わっただけじゃないの?
2022/07/02(土) 00:17:07.82ID:7TC/SMOx0
Excel3.0から使っていたら人ならいたよ。
とっくに定年退職されてます。
最近のExcelはごちゃごちゃしていて苦手と言っていたかな。
864デフォルトの名無しさん (ブーイモ MMb6-K8/U)
垢版 |
2022/07/02(土) 00:35:50.92ID:eLIQ72LUM
Collectionについての質問なのですが
Collectionの要素をソートする場合
それ用のSubを作って、その中でソート後のCollection変数を作ってその中に順番に要素を1つ1つ入れていって最後に
set 元のcollection=新collection
とやる方法を考えつきました。

この方法で問題ないですか?それとももっとスマートな方法がありますか?
2022/07/02(土) 00:50:08.19ID:vnn63W/20
懐かしいの。
当時 IBM 5550とかいうパソコン使ってた記憶がうっすらある
そこでマルチプラン動かしてた
ところが海外拠点ではロータス123 の方が評判でどこかでそれに切り替えた記憶がある。同時に IBM 55505何かに変更したような記憶があるな

マック使ってたやつが Excel を自慢して確かに羨ましかったな
DOS V パソコンで Windows 3.1が動いてその上で Excel が動いた時は感激したな
2022/07/02(土) 01:12:48.41ID:yZ67dQaR0
昭和ならロータス123とアシストカルク使ってたな
あれはDOSだったかな?
2022/07/02(土) 01:21:18.54ID:yZ67dQaR0
DOSの頃はファイラーはFD、ネットはエアクラフト、お絵描きはkid98、音楽はMIMPIがデファクトスタンダードだった
2022/07/02(土) 01:36:45.55ID:7TC/SMOx0
昔は企業で使うPCソフトといえば表計算と文書ソフトぐらいだったもんね。
869デフォルトの名無しさん (ワッチョイ 8a4f-iquj)
垢版 |
2022/07/02(土) 06:04:41.51ID:kG8DYDgz0
>>864
良いんじゃない?それで。
用途にもよるけどコレクションにキーくっつけといて
別にキー一覧みたいのをソートして作っといて
そのキーからソートした順番に引っ張るっていう方法もあるけど。
870デフォルトの名無しさん (ブーイモ MMb6-K8/U)
垢版 |
2022/07/02(土) 06:14:46.63ID:v1xY47GsM
>>869
あれれそうですか。
キーの方法も良さそうですね。

でもこんなひとはよく使用しそうなのに話が盛り上がらないのは
みんなのVBAのスキルが低レベルだからでしょうか?
871デフォルトの名無しさん (ブーイモ MMb6-K8/U)
垢版 |
2022/07/02(土) 06:15:13.26ID:v1xY47GsM
x こんなひと
o こんなこと
2022/07/02(土) 06:29:09.78ID:BdV6t7uW0
すげーな、普通の人が寝る夜中に盛り上がらないからって他人を低レベル呼ばわり
2022/07/02(土) 06:35:31.84ID:yZ67dQaR0
>>870
かまってもらえないからみんなまとめて低レベル扱いですかそうですか
くさっ
874デフォルトの名無しさん (ワッチョイ 8a4f-iquj)
垢版 |
2022/07/02(土) 06:52:10.92ID:kG8DYDgz0
>>870
なるほど、ただの煽りかも知れないけど
あまり人前でそう言うことは言わない方がいい。

人を嫌な気分にさせるし
自惚れ屋と思われて周りからも疎まれることになる。
自分の為にも思ったことは口にしたり書き込んだりする前に一度考えてから実行する方が良いよ。
875デフォルトの名無しさん (エアペラ SD13-qRYS)
垢版 |
2022/07/02(土) 07:31:29.49ID:LyZZMtStD
>>870
当たり前の処理のどこに盛り上がる要素があると思うのか
そもそもソートが必要なものにcollection(リスト)使おうって時点で
データ構造の選択を間違ってる可能性が大きい
876デフォルトの名無しさん (ブーイモ MMb6-K8/U)
垢版 |
2022/07/02(土) 07:35:58.08ID:+UfCFyJWM
わかった
じゃあいい
2022/07/02(土) 07:38:04.43ID:Vi0lNJ4o0
釣られすぎ
878デフォルトの名無しさん (ブーイモ MMb6-K8/U)
垢版 |
2022/07/02(土) 07:40:07.80ID:+UfCFyJWM
For-Next文の中だけで使う局所ローカル変数を定義する場合は
そのFor-Nextブロック内で
Dim a as String
でいいんですっけ?
それともモジュールの先頭で?

たしかVBAでは局所ローカル変数の概念がなくて
Sub/Function内すべての場所で使える気がするのだけど。
879デフォルトの名無しさん (ワッチョイ 8a4f-iquj)
垢版 |
2022/07/02(土) 07:49:38.67ID:kG8DYDgz0
>>878
局所ローカルという呼び方をするのかは兎も角
関数やメソッド以下のスコープ変数は基本的には設定出来ない。

変数宣言をする場所についてはVBAに限らず
そのスコープが始まる頭のところに書くのが一般的だよね。
ただ、言ってる通り別に先頭に書かなくても問題なく実装は出来る。
880デフォルトの名無しさん (ブーイモ MMc6-SrHA)
垢版 |
2022/07/02(土) 07:49:48.13ID:vz70zrJPM
>>870
盛り上がったじゃないか
良かったな
2022/07/02(土) 07:49:50.15ID:LyZZMtStD
>>878
言うとおり局所ローカル変数は存在しないのでFunctionやSubの中ならどこでもいいよ
モジュール先頭(Function、Subの外側)だとグローバル変数かパブリック変数になるからその目的ならダメ
882デフォルトの名無しさん (ブーイモ MMb6-K8/U)
垢版 |
2022/07/02(土) 07:58:43.11ID:+UfCFyJWM
>>879
>>881
なるほどありがとうございます。
やっぱりできないのですね。

でもSub/Function先頭に書くと可読性が著しく下がる(この意味が分からない人はスキル低すぎ)のでやめときます。
われわれのように複雑なプログラミングをしてる人にとってはVBAの言語はいろいろ不便に感じますね。
883デフォルトの名無しさん (ワッチョイ 8a4f-iquj)
垢版 |
2022/07/02(土) 08:01:20.13ID:kG8DYDgz0
>>882
だからそう言った言い方はやめた方がよいかと。
モロに自分が「単一責任原則も知らずにスパゲッティコード組みます」と言ってるようなものだから。
2022/07/02(土) 08:27:22.57ID:bQuvSXdqD
>>882
COBOL書いたら死んでしまいそうな人
2022/07/02(土) 09:00:40.59ID:At3W7bIA0
>>878
まあ好みだけど俺は変数宣言は可能な限り使う直前って決めてるからそのケースならループ内で宣言する
2022/07/02(土) 09:30:40.85ID:6d3aqhyk0
チゲ鍋みたいだな局所ローカル
2022/07/02(土) 09:41:11.94ID:qJpeB53K0
DSのプチコンでローカル変数のありがたさを思い出したな
888デフォルトの名無しさん (アウウィフ FFcf-9ZeA)
垢版 |
2022/07/02(土) 09:55:37.37ID:COZLaCzbF
局部もろ観え
2022/07/02(土) 12:13:59.49ID:vnn63W/20
>>885
何回も変数宣言を実行することになるのかな。そうなら理論的にはメモリの無駄と速度の低下が発生するんじゃないの
2022/07/02(土) 13:17:36.46ID:Y5ZkAX2p0
ReDimの存在
2022/07/02(土) 13:53:14.52ID:At3W7bIA0
>>889
宣言文と実行文の違いを学ぼうか

>>890
ReDim は実行文だよ
2022/07/02(土) 14:54:16.39ID:7TC/SMOx0
久々に熱いスレになったね
2022/07/02(土) 16:46:05.89ID:vnn63W/20
>>891
普通の文と同じように実行されるわけはないと思ったんで疑問形で書いたんだけど

でもどういう法則があるのかよくわからんから質問したの

宣言文と実行文で検索しても参考になる記事はなかった

教えてくれませんか?
2022/07/02(土) 17:08:32.73ID:At3W7bIA0
>>893
VBA 宣言 ループ とかでググればいいかと
https://thom.hateblo.jp/entry/2018/06/02/185716
一部の例外はあるけど基本的に宣言文は最初にまとめて処理される
なのでサブルーチンに入った時点で変数は作成されるからメモリーの無駄とか速度低下はないよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況