私は、社内で Excel マクロを作成する初心者のライターです。いくつかの異なる方法で当面の問題に取り組むことができますが、最も効率的で従来の方法についてアドバイスをお願いします。
マクロは、入力ファイルからデータを取得し、このデータを 2 番目の入力ファイルの他のデータと比較する必要があります。これらのファイルの構造は一貫していますが、含まれるデータは明らかに異なります。各ファイルには、最大 96 個のサンプルの情報を含めることができます。各サンプルには最大 20 の情報カテゴリがあり、各カテゴリには 10 個のデータがある場合があります。したがって、各サンプルには最大 200 個のデータが関連付けられている可能性があります。
この情報を保存する最良の方法は、オブジェクトを定義するクラスを作成してから、次のようなオブジェクトのコレクションを作成することです。
Dim Samples as Collection
Dim Smp as CSample
Set Samples = New Collection
For x = 1 to NumberOfSamplesInFile
Set Smp = New CSample
'Set the properties of Smp for each piece of data
Samples.Add Smp
Next x
Smp の特定のプロパティを配列にすることができると思いますか? つまり、クラスのプロパティを次のように定義できます。
Private pSampleID as String
Private pAreaUnderCurve(1 to 10) as double
Private pRetentionTime(1 to 10) as double
そのような
Smp.SampleID = "XYZ"
しかし
Smp.AreaUnderCurve(1) = 1234
Smp.AreaUnderCurve(2) = 2345
Smp.AreaUnderCurve(3) = 123.78
保持時間についても同じです(明らかに異なる値)?
これを行うと想像した別の方法は、 Type 宣言を使用することです。
Type Sample
SampleID as String
AreaUnderCurve(1 to 10) as double
RetentionTime(1 to 10) as double
End Type
私の質問は、どの方法が最も一般的/推奨ですか?