[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:47 / Filesize : 275 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part76



1 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 02:23:41.78 ID:2t63WK/jM.net]
!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

808 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 19:13:20.08 ID:i0xj9Opya.net]
>>794
高階関数っていうのを最近覚えたんだろうな
関数内関数に1mmも関係ないのにしつこく語ってる
他の言語スレだと瞬殺されるレベルだからこんなスレで管巻くしか無いんだろうw

809 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 19:15:29.13 ID:uu2mw40gD.net]
>>796
使おうと思えば使える

810 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 21:47:59.24 ID:zPLPBKg6H.net]
>>799
コールバック関数を使えるのなら
引数に関数参照できるということです?
なら変数に関数を代入できそう

811 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 21:55:21.60 ID:zPLPBKg6H.net]
>>797
非同期処理はイベント処理に依存してるってことでしょうか?
コメントありがとうございました
VBA初心者なのでいろいろ勉強していきます

812 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 22:13:03.71 ID:sZpGYWcf0.net]
>>800
特定のオブジェクトやクラスに所属する関数やAPIなどシステムで定義された関数(メソッド)であればコールバック関数で参照することはできる
グローバルのユーザー定義の関数はラムダ式で記述するなどの手段を使わない限りは無理

813 名前:デフォルトの名無しさん (ワッチョイ 4f2f-BYhf) mailto:sage [2022/06/29(水) 22:45:43 ID:JurptZkT0.net]
コールバック「関数」とはなにを指してるんだろうかねぇ

コールバックを実現する手段はイベント以外に
CallByNameとかApplication.Runとかでまあ実現できなくはない

814 名前:デフォルトの名無しさん (JP 0Ha3-tCSL) mailto:sage [2022/06/29(水) 22:55:30 ID:zPLPBKg6H.net]
コールバック関数は何を指しているのか
なぜラムダ式が存在するのか
即時関数とラムダはどこから分岐していったのか
関数プログラミングは本当に有益なのか
本当に変数は悪者で動的型付けは悪なのか
それらはもはや哲学なのかもしれません

815 名前:デフォルトの名無しさん (ワッチョイ ff68-TsA2) mailto:sage [2022/06/29(水) 23:01:15 ID:L0Xzxy470.net]
慣れれば別にどっちでも・・・って感じになるけどな

816 名前:デフォルトの名無しさん mailto:sage [2022/06/29(水) 23:50:10.86 ID:HQQahVZ60.net]
>>783

自作の階乗作らせりゃ一発だろ。Cの関数へのポインタとか、可読性0に近い。組んでて楽しいけど、1ヶ月後の自分はこれを理解できるだろうかという疑問が湧くw



817 名前:デフォルトの名無しさん [2022/06/30(木) 05:47:49.15 ID:P7B/AZjs0.net]
まぁでもあんまりVBAでコールバック使う機会ないかな
呼び出しや生成元のモジュール側の関数を
呼び出された側や生成された側から呼び出すときに
密結合になるのを避けるためくらいにしか使ってない

818 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:16:43.81 ID:1TbRNwlJH.net]
>>807
エクセルVBAでDBのデータやファイルデータを読み込むとき
非同期にならないように処理するってことなんでしょうか?
例えばフラグを立ててdo-while、breakで処理待ちしてから次の処理に進むとか?
webのように処理と表示のタイムラグを気にするようなことがないのかもしれませんね

819 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:32:44.20 ID:wDIpT9iQ0.net]
それすんごい資源食わないか?

820 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:37:53.64 ID:1TbRNwlJH.net]
>>809
vbaはコールバックを使わないということらしいのですが
コールバックを使わずに非同期処理する方法があるのでしょうか?

821 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:47:00.24 ID:NKnrqd7g0.net]
ない(もしくはめちゃ面倒だ)から諦めろ
非同期やりたいなら他の言語使え

822 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 07:59:35.80 ID:wyi1xEzY0.net]
VBA走らせている間に漫画でも読んどけよ

823 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 08:04:39.54 ID:1TbRNwlJH.net]
え、昨夜のレスでは非同期使えるって言われたので
多言語と同じようにpromise的な処理があるのかと思いました
非同期めちゃくちゃ面倒ってことは
エクセル処理で非同期を使うという発想が間違っているのですね

なんかいろいろ勘違いしていたみたいでした
神様、先輩方、すみませんでした

824 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 08:14:56.75 ID:CdZVH0NpM.net]
vbsとか使って外部プロセスに追い出すのが簡単だな

で、何を並列処理したいのかな?

825 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 09:30:19.73 ID:TLf+rFOod.net]
JavaScriptの経験があるなら今更VBAなんかに手を出さなくてもOfficeスクリプト使えばいいでしょ
デスクトップでもサポートされたからもうVBAいらないよ

826 名前:デフォルトの名無しさん [2022/06/30(木) 10:09:22.67 ID:P7B/AZjs0.net]
>>815
え、マジ?
もう企業や教育者向けのじゃなくても開発出来るの?



827 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 10:36:29.60 ID:3IHNP7gZd.net]
ブック1開いてマクロ実行
待ってる間にブック2開いて手作業
ブック2保存して閉じたら、そのタイミングでブック1のマクロが停止
これって仕様?

828 名前:デフォルトの名無しさん (アウアウウー Sad3-sbT5) [2022/06/30(木) 11:24:18 ID:l3rHcZB/a.net]
排他処理なにそれおいしいの?

ファイル保存したらマクロが止まるのは仕様

829 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 15:49:46.55 ID:RZ5lqdEjd.net]
VBAいじっている間にいつの間にかボタン表面が白くなって
userformの背景色や、userformで使われているボタン表面のも同じ白色に変色
まったく新しくファイルを作っても同じ現象が起きる
オフィスをインストールし直しても同じ

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

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

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

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


何か原因わかる方いますか?
そもそもVBAが関係しているかどうかも分からないのですが。
ちなみに他のエクセルとは無関係のソフトウェアの色は特に変化はないように思います

830 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 15:56:36.78 ID:RZ5lqdEjd.net]
>>819ですが、文章ちょっとおかしなところがありました
ユーザーフォーム上のボタンも、ワークシートに直接おくボタンも同じように白色になっているということです
そもそもボタンだけじゃなくて&H8000000F&で色が表示されている部分は
どれもおかしくなっているような状態です

831 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 16:27:38.04 ID:CdZVH0NpM.net]
たいして白くない件

832 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 16:32:48.48 ID:RZ5lqdEjd.net]
>>821
真っ白です

→は例外的に正常に表示されるケース
←が現状
https://i.imgur.com/3Hy4Ot8.png

833 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 17:41:14.60 ID:1+oYjPxt0.net]
>>810
非同期と並列処理の区別をつけろよ
非同期=コールバックでもないしな

834 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 17:47:02.54 ID:1+oYjPxt0.net]
>>819
テーマが適用されてるだけな気がする

835 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 18:26:58.93 ID:m1ZMAziu0.net]
システムカラーの値
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/system-color-constants

836 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 21:06:49.66 ID:1TbRNwlJH.net]
>>823
そうですね
コールバックがマルチスレッドって言ってるわけでも
プロセスを分けるって言ってるわけでもないです
全ての非同期処理は並列処理でもないですし
コールバックは処理なので、非同期でもないですし
VBAは初めてなのでいろいろ勉強していきます
なんか変なこと言っていたらごめんなさい



837 名前:デフォルトの名無しさん (スッップ Sd5f-gXkX) mailto:sage [2022/06/30(木) 22:28:19 ID:SUgmTyTCd.net]
自分はやりたい事の手段の一つにExcelVBAがあるだけでExcelVBAでどこまでできるかってのは気にしてない
別の言語を選択すれば可能ならExcelVBAにこだわることもないしね
勉強するあたりのレベルならExcelVBAだけでなくほかの言語も勉強したほうがいいかもね

838 名前:デフォルトの名無しさん mailto:sage [2022/06/30(木) 23:19:39.52 ID:1TbRNwlJH.net]
エクセルの参加人数はすごいと思います
参加人数の多いエクセルをプラットフォームとしてデータ処理できるVBAは
他の言語には見られない参加者人数の価値があります(これを英語で何と言ったか忘れましたが)
ハードもプラットフォームも、潜在的な参加者の数で価値を測るという考え方が正しければ
エクセルVBAは他の言語をはるかに凌ぐ学習価値があると思うのです

他の言語を学習しつつもVBAも使えるというのは
とても素晴らしいことなのだと、VBA初学者としても感じています
先生方、これからもご指導いただける機会がありましたらよろしくです

839 名前:デフォルトの名無しさん [2022/07/01(金) 00:44:30.82 ID:iVoRsqHDd.net]
>>828
お前は二度と来なくていいよ

840 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 00:49:35.03 ID:T8FFb7IX0.net]
>>828
ちょっと何いってるか分からない

841 名前:デフォルトの名無しさん [2022/07/01(金) 01:26:43.65 ID:miA2ycF9M.net]
魔界に転生するとしたら、リザレクの次くらいに持っていたいスキルですもんね。
転生するまでに習得したいと思います。

842 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 01:41:24.35 ID:wxGP1WcO0.net]
シート上に実行ボタンがあり、いろいろなBookから値を取得してメインのブックに張り付けるマクロがあるのですが、
Windows7+Excel2010とWindows10+Excel2016では、2016方が数倍動作が遅いです(数秒程度が10秒程度になる)。
ただし、時々2010と同程度で終わることがあり、原因がよくわかりません。
なんか、実行ボタンの押し方によって(クリックしてマウスポインタをすぐExcelのウィンドウ外に移動)、
速度が速くなるような気がしているのですが、そのようなことはあるのでしょうか?
あるとすれば、なにか対策や原因はあるのでしょうか?

843 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 02:14:42.23 ID:u7q4KnhWd.net]
>>832
2013あたりからExcelの内部構造が大幅に変わったらしい
Windowsも新しいほど重くなってる

マウスポインタの位置によって速度が変わるのは多いにあり得る
昔はボタンを押したままにするとアプリの動作が止まってたのが、いつのまにかずっと動き続けるようになったし

844 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 06:59:23.11 ID:JTFoUJU2H.net]
>>829
DBシステムとしては
操作のバリエーション、検索、演算エンジンともに
最高峰の素晴らしい言語システムなのに
初心者に冷たいコミュニティなのですね

>>830
ネットワーク経済性と似た発想の価値測定方法で
ソフトやハードの経済価値を推定する思考方法です

845 名前:デフォルトの名無しさん [2022/07/01(金) 07:51:36.56 ID:m7rasyZv0.net]
>>834
いやいや、DBシステムとして使うとすると
シートにSQL投げようとしたとき
インデックス貼れない時点で欠陥品だよ。

EXCELの本分はあくまで表計算。

846 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 08:45:57.76 ID:Dqsnfi220.net]
>>834
まずDBシステムじゃないし
COMから学んではどうか



847 名前:デフォルトの名無しさん (ブーイモ MM4f-2lfq) mailto:sage [2022/07/01(金) 09:01:55 ID:2BH0SskNM.net]
今どき簡易DBアプリはPowerAppsみたいなローコードツールを使えばよい
オンライン共有のAccessみたいなアプリがクソ簡単に作れてExcelやスプレッドシートとの連携も容易

848 名前:デフォルトの名無しさん [2022/07/01(金) 11:26:48.78 ID:MWfPFNZsa.net]
>>832
気のせいだからほっとけ

849 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 11:27:33.06 ID:B1H2Mtvqd.net]
自分としては質問があればそれにこたえるだけでいいと思うが
技術者が他の事にも手を広げるならクソ簡単かもしれないが
一般ユーザーが背伸びしてVBAを理解しようとしてるなら保守なんかも含めてハードル高いと思うんだよね
まあ言いたい人は好き勝手に言うだけだから止められないが

850 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 11:46:09.70 ID:Kpd5ohp2M.net]
自分としては質問があれば質問するだけでいいと思うが
一般ユーザーが背伸びして回答なんかハードル高いと思うんだよね
まあ言いたい人は好き勝手に言うだけだから止められないが

851 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:15:30.41 ID:Bx5b0a9x0.net]
大事な事だから二度と言うな

852 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:46:06.01 ID:Ry4wIvAM0.net]
どっちだよw

853 名前:デフォルトの名無しさん [2022/07/01(金) 15:50:37.55 ID:E3WEdYada.net]
背伸び?逆やろ
背伸びしようとするタイプはVBAなんて使わない
伸びない香具師がVBAに固執してる

854 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:51:42.30 ID:S5EpTQdXM.net]

「いいですか?1回しか言いませんからよく聞いてくださいね」
って言われたけど、なんで大事なことなのに1回しか言わないんだろう
そんなに大事なら確実に伝わるまで何回でも言うか書いて渡すかすべきだろ

855 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:56:44.16 ID:wWku/Klda.net]
俺、一回しか教えねーぞ!
やるから見て覚えろ盗んで覚えろな!
これ、昭和の意地悪い上司。
それが当たり前だった時代

856 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:57:57.34 ID:Ry4wIvAM0.net]
>>844
そうそう
アホちゃうの



857 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 15:59:37.00 ID:wWku/Klda.net]
>>843
めっちゃ分かる
何がなんでもマクロでやっているヤツって何なんだろうね

858 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 17:12:32.89 ID:B9UYAOsl0.net]
>>844 みたいな考えの奴はたいていちゃんと聞いてないしメモ渡しても無くしたりするしw

859 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 17:35:59.70 ID:Ry4wIvAM0.net]
>>848
メモ渡すってアホなん

860 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 17:57:54.04 ID:Dqsnfi220.net]
>>848
そういう奴でも同じ事何回か教えりゃ覚えるから、
分かんなかったらいくらでもまた聞けって言ってる
目的は教育コストの削減とかそいつの成長とかじゃなく仕事の完了な訳だから

861 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 18:43:10.74 ID:miA2ycF9M.net]
いやこれ、あわしろっていう新手の荒らしですよ。

862 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 19:33:27.88 ID:rTaPWcb90.net]
昭和からEXCEL使ってた人いる?

863 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 19:34:18.95 ID:B9UYAOsl0.net]
>>850
その場限りの相手ならそれが正解だけど>>849 みたいなポンコツは成長しないから今後とも仕事させるならとっとと切り捨てないと結局仕事の完了が遅れるだけ

864 名前:デフォルトの名無しさん [2022/07/01(金) 19:41:46.04 ID:m7rasyZv0.net]
>>852
そもそも昭和の時代にEXCELあったっけ?
あの頃ってロータス123とか
マルチプランの時代じゃないの?

865 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 19:42:01.43 ID:Gg+5fIBkM.net]
>>853
そういうことを言い出したら極論VBA使いもクビにして優秀なエンジニア雇えという結論にしかならん
雇用維持も企業の責任

866 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 19:52:08.13 ID:lB7C8CJv0.net]
>>833
複数のブックを別ウインドウで開くようになったからな
個人的にはユーザーフォームが最前面に来ないのがめんどい



867 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 19:52:42.66 ID:lB7C8CJv0.net]
あと最小化するとユーザーフォームも消えるのが嫌だな

868 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 20:32:48.53 ID:B9UYAOsl0.net]
>>854
最初の日本語版は1989年(平成元年)リリースだから日本語版を使ってた人は居ないはず
最初のExcelはMac用に1985年(昭和60年)にリリースされてるみたいだからもしかしたら触った人がいるかもしれない

869 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 20:38:52.77 ID:B9UYAOsl0.net]
>>855
別に辞めさせなくてもポンコツはポンコツで務まるような職場に移せば良いだけだろ

870 名前:デフォルトの名無しさん [2022/07/01(金) 21:05:26.47 ID:0+5KhUlf0.net]
vbエディターを開いたときに開いているブックのモジュールやらUFやらがバーっと開くのを止めさせたいんですが、どなたかご存じないですか?毎回重ねて並べて閉じるのがめんどい。

871 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 21:10:05.40 ID:CjhzObSj0.net]
ラジオボタンがクリック1回で反応しなくて2回マウスでカチカチって指定しないといけないんだけど、直し方わかる人いますか?(´・ω・`)PCの問題なんかな?

872 名前:デフォルトの名無しさん mailto:sage [2022/07/01(金) 21:42:37.97 ID:kFE+Jjo70.net]
マルチプランならあるな。
と言っても平成のはじめだけど。
あの時代はPC買うとおまけで違法コピーモノがもらえる時代だからな、
マルチプランも123も両方あったわ。
当時は123のほうが強かったんだよね。
Excelとマルチプランて名前が変わっただけじゃないの?

873 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 00:17:07.82 ID:7TC/SMOx0.net]
Excel3.0から使っていたら人ならいたよ。
とっくに定年退職されてます。
最近のExcelはごちゃごちゃしていて苦手と言っていたかな。

874 名前:デフォルトの名無しさん [2022/07/02(土) 00:35:50.92 ID:eLIQ72LUM.net]
Collectionについての質問なのですが
Collectionの要素をソートする場合
それ用のSubを作って、その中でソート後のCollection変数を作ってその中に順番に要素を1つ1つ入れていって最後に
set 元のcollection=新collection
とやる方法を考えつきました。

この方法で問題ないですか?それとももっとスマートな方法がありますか?

875 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 00:50:08.19 ID:vnn63W/20.net]
懐かしいの。
当時 IBM 5550とかいうパソコン使ってた記憶がうっすらある
そこでマルチプラン動かしてた
ところが海外拠点ではロータス123 の方が評判でどこかでそれに切り替えた記憶がある。同時に IBM 55505何かに変更したような記憶があるな

マック使ってたやつが Excel を自慢して確かに羨ましかったな
DOS V パソコンで Windows 3.1が動いてその上で Excel が動いた時は感激したな

876 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 01:12:48.41 ID:yZ67dQaR0.net]
昭和ならロータス123とアシストカルク使ってたな
あれはDOSだったかな?



877 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 01:21:18.54 ID:yZ67dQaR0.net]
DOSの頃はファイラーはFD、ネットはエアクラフト、お絵描きはkid98、音楽はMIMPIがデファクトスタンダードだった

878 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 01:36:45.55 ID:7TC/SMOx0.net]
昔は企業で使うPCソフトといえば表計算と文書ソフトぐらいだったもんね。

879 名前:デフォルトの名無しさん [2022/07/02(土) 06:04:41.51 ID:kG8DYDgz0.net]
>>864
良いんじゃない?それで。
用途にもよるけどコレクションにキーくっつけといて
別にキー一覧みたいのをソートして作っといて
そのキーからソートした順番に引っ張るっていう方法もあるけど。

880 名前:デフォルトの名無しさん [2022/07/02(土) 06:14:46.63 ID:v1xY47GsM.net]
>>869
あれれそうですか。
キーの方法も良さそうですね。

でもこんなひとはよく使用しそうなのに話が盛り上がらないのは
みんなのVBAのスキルが低レベルだからでしょうか?

881 名前:デフォルトの名無しさん [2022/07/02(土) 06:15:13.26 ID:v1xY47GsM.net]
x こんなひと
o こんなこと

882 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 06:29:09.78 ID:BdV6t7uW0.net]
すげーな、普通の人が寝る夜中に盛り上がらないからって他人を低レベル呼ばわり

883 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 06:35:31.84 ID:yZ67dQaR0.net]
>>870
かまってもらえないからみんなまとめて低レベル扱いですかそうですか
くさっ

884 名前:デフォルトの名無しさん [2022/07/02(土) 06:52:10.92 ID:kG8DYDgz0.net]
>>870
なるほど、ただの煽りかも知れないけど
あまり人前でそう言うことは言わない方がいい。

人を嫌な気分にさせるし
自惚れ屋と思われて周りからも疎まれることになる。
自分の為にも思ったことは口にしたり書き込んだりする前に一度考えてから実行する方が良いよ。

885 名前:デフォルトの名無しさん [2022/07/02(土) 07:31:29.49 ID:LyZZMtStD.net]
>>870
当たり前の処理のどこに盛り上がる要素があると思うのか
そもそもソートが必要なものにcollection(リスト)使おうって時点で
データ構造の選択を間違ってる可能性が大きい

886 名前:デフォルトの名無しさん [2022/07/02(土) 07:35:58.08 ID:+UfCFyJWM.net]
わかった
じゃあいい



887 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 07:38:04.43 ID:Vi0lNJ4o0.net]
釣られすぎ

888 名前:デフォルトの名無しさん [2022/07/02(土) 07:40:07.80 ID:+UfCFyJWM.net]
For-Next文の中だけで使う局所ローカル変数を定義する場合は
そのFor-Nextブロック内で
Dim a as String
でいいんですっけ?
それともモジュールの先頭で?

たしかVBAでは局所ローカル変数の概念がなくて
Sub/Function内すべての場所で使える気がするのだけど。

889 名前:デフォルトの名無しさん [2022/07/02(土) 07:49:38.67 ID:kG8DYDgz0.net]
>>878
局所ローカルという呼び方をするのかは兎も角
関数やメソッド以下のスコープ変数は基本的には設定出来ない。

変数宣言をする場所についてはVBAに限らず
そのスコープが始まる頭のところに書くのが一般的だよね。
ただ、言ってる通り別に先頭に書かなくても問題なく実装は出来る。

890 名前:デフォルトの名無しさん [2022/07/02(土) 07:49:48.13 ID:vz70zrJPM.net]
>>870
盛り上がったじゃないか
良かったな

891 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 07:49:50.15 ID:LyZZMtStD.net]
>>878
言うとおり局所ローカル変数は存在しないのでFunctionやSubの中ならどこでもいいよ
モジュール先頭(Function、Subの外側)だとグローバル変数かパブリック変数になるからその目的ならダメ

892 名前:デフォルトの名無しさん [2022/07/02(土) 07:58:43.11 ID:+UfCFyJWM.net]
>>879
>>881
なるほどありがとうございます。
やっぱりできないのですね。

でもSub/Function先頭に書くと可読性が著しく下がる(この意味が分からない人はスキル低すぎ)のでやめときます。
われわれのように複雑なプログラミングをしてる人にとってはVBAの言語はいろいろ不便に感じますね。

893 名前:デフォルトの名無しさん [2022/07/02(土) 08:01:20.13 ID:kG8DYDgz0.net]
>>882
だからそう言った言い方はやめた方がよいかと。
モロに自分が「単一責任原則も知らずにスパゲッティコード組みます」と言ってるようなものだから。

894 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 08:27:22.57 ID:bQuvSXdqD.net]
>>882
COBOL書いたら死んでしまいそうな人

895 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 09:00:40.59 ID:At3W7bIA0.net]
>>878
まあ好みだけど俺は変数宣言は可能な限り使う直前って決めてるからそのケースならループ内で宣言する

896 名前:デフォルトの名無しさん (ワッチョイ 0a63-63P4) mailto:sage [2022/07/02(土) 09:30:40 ID:6d3aqhyk0.net]
チゲ鍋みたいだな局所ローカル



897 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 09:41:11.94 ID:qJpeB53K0.net]
DSのプチコンでローカル変数のありがたさを思い出したな

898 名前:デフォルトの名無しさん [2022/07/02(土) 09:55:37.37 ID:COZLaCzbF.net]
局部もろ観え

899 名前:デフォルトの名無しさん (ワッチョイ 87da-3xOz) mailto:sage [2022/07/02(土) 12:13:59 ID:vnn63W/20.net]
>>885
何回も変数宣言を実行することになるのかな。そうなら理論的にはメモリの無駄と速度の低下が発生するんじゃないの

900 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 13:17:36.46 ID:Y5ZkAX2p0.net]
ReDimの存在

901 名前:デフォルトの名無しさん (ワッチョイ 8a01-BQ8I) mailto:sage [2022/07/02(土) 13:53:14 ID:At3W7bIA0.net]
>>889
宣言文と実行文の違いを学ぼうか

>>890
ReDim は実行文だよ

902 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 14:54:16.39 ID:7TC/SMOx0.net]
久々に熱いスレになったね

903 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 16:46:05.89 ID:vnn63W/20.net]
>>891
普通の文と同じように実行されるわけはないと思ったんで疑問形で書いたんだけど

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

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

教えてくれませんか?

904 名前:デフォルトの名無しさん mailto:sage [2022/07/02(土) 17:08:32.73 ID:At3W7bIA0.net]
>>893
VBA 宣言 ループ とかでググればいいかと
https://thom.hateblo.jp/entry/2018/06/02/185716
一部の例外はあるけど基本的に宣言文は最初にまとめて処理される
なのでサブルーチンに入った時点で変数は作成されるからメモリーの無駄とか速度低下はないよ

905 名前:デフォルトの名無しさん (ワッチョイ 87da-3xOz) mailto:sage [2022/07/02(土) 18:56:13 ID:vnn63W/20.net]
>>894
おおー、なるほど。
よくわかった、ありがとさん。

906 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 12:22:53.01 ID:Jv7ZJhwXr.net]
>>882
なんでわざわざ煽る言い方するわけ?
マシで理解できないわ



907 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 12:39:04.19 ID:v1f+WlYn0.net]
スレ立ち上げ当初みたいに、こうやって真面目な議論してれば良スレなんだよな。

あんたらハメ外せばすぐ毛の話。。。

908 名前:デフォルトの名無しさん mailto:sage [2022/07/03(日) 13:05:07.71 ID:Fpu/jUUc0.net]
質問者の質も落ちた






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef