私はいつも自分のコードを最適に書いていきたいと思います。私は周りを見回したが、正確に私の質問を見つけることはなかった。VBAメモリ使用:異なるサブシステムと同じ変数をモジュール内で公開すると宣言します
新しいExcel/vbaプロジェクトを開始するときに通常作成するワークブックには、いくつかのワークシートがあります。それらは "LIBRARY"や "DATA"のようなものかもしれません。各サブの開始時に、私は次のように宣言します:
Dim libWS as Worksheet
Dim dataWS as Worksheet
Set libWS = Worksheets("LIBARARY")
Set dataWS = Worksheets("DATA")
私はこれらのワークシートを利用する各サブシステムでこれを行います。私の質問は、それがより最適であるか、モジュールで公にそれらのワークシートを宣言し、それらを初期化するためにワークブックのオープンマクロを使用するだけで同じでしょうか。
モジュール1:
public libWS as Worksheet
public dataWS as Worksheet
このワークブック:両方の速度/メモリ使用量の面で
Private Sub Workbook_Open()
Set libWS = Worksheets("LIBARARY")
Set dataWS = Worksheets("DATA")
End Sub
最適意味。
おかげ
私は疑問が良い務めだと思いますコードレビューで十分な応答が得られるように完全なコードを投稿してみてください。 –
私は少なくとも2つの理由からそれをしません:(1)グローバル変数! (2)未処理のエラーがVBプロジェクトのリセットを終了すると、グローバルがワイプされ、残りのコードが爆発します。たぶん代わりに、 "設定"オブジェクトを返す単一の関数(各シートのフィールドを持つ)を作成し、よくアクセスするアイテムを扱う必要があるときはいつでも呼び出すことができます。または、VBProjectでシートオブジェクトのコードネームを変更して、宣言や何かに設定することなく(例えば) 'libWS'としてそれらを参照することができます。あなたのシートがどれほど静的であるかに依存します。 –
あなたのコメントをお寄せいただきありがとうございます。コードレビューセクションがあることはわかりませんでした。私はそれを将来的に活用します – Citanaf