Excel VBA 質問スレ Part48 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 6f8e-Fc1g)
垢版 |
2017/05/16(火) 08:24:45.78ID:iIGA/64l0
!extend:checked:vvvvv:1000:512

スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい

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

※前スレ
Excel VBA 質問スレ Part47 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489557874/

※関連スレ
VBAなんでも質問スレ Part2
http://echo.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://echo.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 125
http://echo.2ch.net/test/read.cgi/bsoft/1481369538/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2017/05/16(火) 10:48:12.64ID:Gxqu5M/Va
前スレでScreenUpdating=Falseしない派いる?ってのがあったけど、コード書いてる時は基本しない。
あれで速くなったっていうのは基本コードが悪いだろ。
2017/05/16(火) 11:05:20.21ID:J7MMoyEGd
>>2
ScreebUpdating =False : 警告Off
ScreebUpdating =True : 警告On
2017/05/16(火) 11:06:03.77ID:J7MMoyEGd
連続typo失礼
2017/05/16(火) 11:08:01.35ID:l+zZTb7Y0
ScreenUpdatingの有無で速度が左右されるのは、セルに値を入れる等して描画に影響する操作をする場合だけだから、
結果を吐き出す際に一度だけしかセルにアクセスしないとかなら要らないね。
6デフォルトの名無しさん (オッペケ Sr27-fj9k)
垢版 |
2017/05/16(火) 12:41:08.19ID:6Q26Nvh7r
>>5
表示の更新してんなら要るわ

あとエクセルでセルに値を書き込むことを「吐き出す」と言うのは
素人が玄人の真似して訳もわからずそれっぽい言葉使ってみました感が強すぎる
分かる人が見ればコイツ馬鹿だなってバレバレだからやめた方がいいぞ
2017/05/16(火) 12:57:55.01ID:fevd2QwgM
自称玄人 w
2017/05/16(火) 13:01:13.42ID:J7MMoyEGd
つまり量によるわけだな。
2017/05/16(火) 13:03:31.49ID:J7MMoyEGd
つまり量によるわけだな。
ScreenUpdating = False しないと辛くなってきたら、それは
ワークシートで管理するデータや式が多くなりすぎたという警告とみなすスタイルが成り立つ。
2017/05/16(火) 14:23:33.68ID:Gxqu5M/Va
>>6
えっ?
素人玄人関係なく使うでしょ。
そんなの意識したこと無いぞ。

>>9
量なのかなあ。
そりゃいい加減にコード書くことも有るけど、そういう場合で遅く感じたらちゃんとしたコードに変更するだけだろ。
どうしても描画が何回か走ってチラつきを防止するために最後に追加するぐらいだな。
2017/05/16(火) 14:27:59.56ID:J7MMoyEGd
>>10
ちゃんとしたコードとは?

コードの問題ではなくてデータの問題だ、というのが俺の主張
2017/05/16(火) 14:53:18.62ID:Ilchk1CoH
不毛
2017/05/16(火) 14:57:07.86ID:l+zZTb7Y0
>>9
ワークシートから値を取り込んだり、値をワークシートに書き出したりっていう処理は、
Rangeを使えば一括して行うことが出来るので、データ量はそこまで問題にならない。

どちらかというと罫線、色、数式みたいな一括処理しづらいものが問題で、
ScreenUpdating次第で処理に大きく差が出る。
こういったものは保守も面倒なので手作業で代替出来ないかとか考えるといいかもね。
2017/05/16(火) 15:11:19.05ID:tw+4NZDm0
オートフィルタかけた後のデータの、特定の1列だけを配列に格納したいのですが、何かいい方法はないでしょうか
2017/05/16(火) 16:37:32.48ID:l+zZTb7Y0
>>14
SpecialCells(xlCellTypeVisible)で可視状態にあるセルだけを取り出せる。
2017/05/16(火) 19:14:29.63ID:iIGA/64l0
クラスモジュールって使いますか?
大抵のことはfornext、foreachで済んでしまうのですが、vbaでクラスを使ったほうが便利なのでしょうか
2017/05/16(火) 19:31:35.09ID:qhacRso4p
>>16
必要かどうかってことなら必要ない
でも大がかりなの作るなら使って整理したほうがやりやすいんじゃないのかな

for文と比較する感覚がいまいち伝わってないから的はずれならごめんなさい
関数とか配列とかと比較するならわからなくもないんだけれど
2017/05/16(火) 19:45:30.76ID:iIGA/64l0
>>17
私が使うのは事務処理で、表を作ったり、リネームする時にマクロを使う程度なのです
クラスはあんまり必要無さそうですね、ありがとうございました
19デフォルトの名無しさん (ワッチョイ 53c7-00IQ)
垢版 |
2017/05/16(火) 19:48:36.06ID:YL1OfOAE0
>>10
悪いけど素人しか使わんわそんな恥ずかしい言い方w
2017/05/16(火) 19:53:23.03ID:Y/+V2TLHM
言い方はどーだっていいんだよ
伝われば
2017/05/16(火) 20:28:49.31ID:rEbfD8DUa
>>13
うん、罫線とかはしようが無いね。
でも罫線もマクロ記録のままの酷いコード書く人もいる。

データについては1つ1つのセルに値を入れるなんてことはすべきじゃない。
普通は1つの表で一括入力でしょ。
どうしても速度を出したい時は汚くなるけどシート内データ全部を一括入力にする。
あとは、使える場面が限定されるけどマルチプロセスにするとか。

>>18
クラスを使う場面ってのは慣れてれば感覚的にぴったりくる。
オブジェクト指向的にぴったりくる場合。
でも、他のメンバーが慣れて無いと却って良くない場合もあるね。
2017/05/16(火) 21:04:28.77ID:ORpNRMoi0
Dim スコーン As New Class

↑このスコーン自体を引数に使うことは出来ますか?
スコーン.Name =
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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