|
▼kan さん:
>初歩的な質問でしたら申し訳ございません。
>悩んでいるので、ご教授いただければと思います。
>
>仮に・・・
>sub sample1()
>
> data(10,10)・・・・この配列にはデータを格納済み
>
>end sub
>sub sample2()
>
> newdata(1,10)=data(1,10)・・・・格納済みの配列を加工したい
>
>end sub
>
>上記の様に、既存の配列を基に再加工等したい場合は
>どのような処理をすればよろしいのでしょうか?
G-Luckといいます。
ひとつは、グローバル変数で渡す方法
Private data(10,10) As Variant
>sub sample1()
> data(10,10)・・・・この配列にはデータを格納済み
>end sub
>sub sample2()
> newdata(1,10)=data(1,10)・・・・格納済みの配列を加工したい
>end sub
変数で渡す
>sub sample1()
> data(10,10)・・・・この配列にはデータを格納済み
Call sample2(data)
>end sub
sub sample2(data As Variant)
> newdata(1,10)=data(1,10)・・・・格納済みの配列を加工したい
>end sub
変数で渡し保持させておく
>sub sample1()
> data(10,10)・・・・この配列にはデータを格納済み
Call sample2(data,True)
>end sub
sub sample2(Optional data As Variant, Optional flg As Boolean = False)
Static newdata as Variant
If flg = True Then
newdata=data
Exit Sub
End If
'実際の処理 flg=Falseの時の処理
>end sub
セルに保持させておく
>sub sample1()
> data(10,10)・・・・この配列にはデータを格納済み
Range("A1:K11") = data
>end sub
>sub sample2()
data = Range("A1:K11").Value
> newdata(1,10)=data(1,10)・・・・格納済みの配列を加工したい
>
>end sub
といったところでしょうか?
簡単なのは、グローバル変数です。ただ、エラーが出た時とかにリセットされてしまう時があるので長く保持するのであれば、確実にセルに保存する方がいいです。
そのセルを表示させたくない場合は、SheetのVisibleを2(xlSheetVeryHidden)にして、シートごと非表示にするといいですよ。
|
|