2011-01-26 11 views
0

ワークシートデータから配列のセットを取り込んでいます。次に、別のワークシートに書き出す前にデータを操作します(下記の例を参照)。私のデータオブジェクトはVBAでどのようなスコープを持っていますか

同じワークシート・データを再度使用する場合は、ワークシートから配列を移入するコードを再作成しないでください。

  • コードを1つの長い手順で記述すると、配列を再移植する必要はありませんか?
  • いくつかの手順で再利用できるように、アレイをグローバルにする必要がありますか?
  • 長い引数リストで必要なプロシージャに配列を渡す必要がありますか?
  • 他のオプションはありますか?

Sub ManipulateData() 
    Dim people(1 To MAX_DATA_ROW) As String 
    Dim projects(1 To MAX_DATA_ROW) As String 
    Dim startDates(1 To MAX_DATA_ROW) As Date 
    Dim endDates(1 To MAX_DATA_ROW) As Date 
    ... 
    Loop through worksheet cells to populate arrays 
    ... 
    Do something with array data 

End Sub 

答えて

1

私はprivate変数として配列を含み、その後、あなたに機能性を与えるために必要なすべてをバックアップし、他の潜水艦/機能をロードInitialiseまたは類似呼ばつのパブリックサブを作成したクラスを作成したいですあなたが必要です。

あなたは配列を渡す必要はありませんが、それらはまだグローバルではありません。それらをグローバルにすることの問題は、他のコードがコードを期待していない何らかの方法で配列を変更し、コードベースのどこにでもある可能性があるので、見つけるのが非常に難しいということです。

ここにはExcel VBAのintroduction to classesがあります。

+0

ありがとう - それは私が探していたものです。私はVBAでクラスを作ることができるのか分からなかった。 –

関連する問題