電子書籍の厳選無料作品が豊富!

アクセスです
フォーム上のコントロールの名前を配列に格納したいのですが
もっとスマートな方法はありますか?

私が考えたコードは

Dim avarContorol As Variant
Dim ctl As Control
Dim mystr As String

For Each ctl In Forms(Me.Name).Controls
mystr = mystr & ctl.Name & ","
Next ctl

'右から1文字消す
mystr = Left(mystr, Len(mystr) - 1)
avarContorol = Split(mystr, ",")

なのですが、
ループのみで格納できる方法があれば教えてください。

A 回答 (2件)

ループのみと言えるかどうか?



Dim avarControl As Variant
Dim ctl As Control
Dim i As Integer

ReDim avarControl(Me.Controls.Count - 1)

For i = 0 To Me.Controls.Count - 1
avarControl(i) = Me.Controls(i).Name
Next i
    • good
    • 0
この回答へのお礼

私が知らない方法なのでとても参考になりました!

お礼日時:2013/08/10 08:19

配列と添字を宣言しておいて、ループ内でRedim pveserve使って


要素数を増しながら値を格納するとか
(ForEachなので添字をカウントアップする)
    • good
    • 0
この回答へのお礼

Redim pveserveについて調べてみます。ありがとうございました。

お礼日時:2013/08/10 08:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!