|
ありがとうございました
必要性としては
もっといい方法があるかもしれませんが
DIM GRP_A1 AS NEW COLLECTION
DIM GRP_A2 AS NEW COLLECTION
DIM GRP_A3 AS NEW COLLECTION
DIM GRP_A4 AS NEW COLLECTION
DIM GRP_A5 AS NEW COLLECTION
DIM EXCEL_POS_STR AS STRING
DIM SETDATA AS INTGER
select case EXCEL_POS_STR
case "A1" CALL DATASET(GRP_A1,SETDATA)
case "A2" CALL DATASET(GRP_A2,SETDATA)
case "A3" CALL DATASET(GRP_A3,SETDATA)
case "A4" CALL DATASET(GRP_A4,SETDATA)
case "A5" CALL DATASET(GRP_A5,SETDATA)
END SELECT
を
CALL DATASET(EXCEL_POS_STR,SETDATA)という
一行にしたかったからです
たとえば A1を参照しているエクセルのユーザーフォームのコントロールに一気にデータセットしたかったからです
▼hatena さん:
>> call dataset("GRP_bp16",7)
>> txt単価2とtxt単価3に7をセットしたいのです
>>
>>
>> dim GRP_bo16 as new collection
>> dim GRP_bp16 as new collection
>> dim GRP_bq16 as new collection
>>
>>
>> GRP_bo16.Add txt単価1
>> GRP_bp16.Add txt単価2
>> GRP_bp16.Add txt単価3
>> GRP_bq16.Add txt単価4
>
>なぜ、
>
>function dataset(grpname as collection, setdata as integer)
>
>というように collection で渡してはダメなのでしょうか。
>
>その理由が分からないので、外しているかも知れませんが、
>下記のようなコードを考えてみましたが、目的に合致しますでしょうか。
>
>Dim Cl_GRP As New Collection
>
>Private Sub コマンド8_Click()
> Cl_GRP.Add New Collection, "GRP_bo16"
> Cl_GRP.Add New Collection, "GRP_bp16"
> Cl_GRP.Add New Collection, "GRP_bq16"
>
> Cl_GRP("GRP_bo16").Add Me.txt単価1
> Cl_GRP("GRP_bp16").Add Me.txt単価2
> Cl_GRP("GRP_bp16").Add Me.txt単価3
> Cl_GRP("GRP_bq16").Add Me.txt単価4
>
> dataset "GRP_bo16", 1
> dataset "GRP_bp16", 2
> dataset "GRP_bq16", 3
>End Sub
>
>Function dataset(grpname As String, setdata As Integer)
> Dim aaa As Access.Control
>
> For Each aaa In Cl_GRP(grpname)
> aaa.Value = setdata
> Next
>
>End Function
>
>コントロールのcollection自体を、collection に格納してみました。
|
|