• 締切済み

配列名を取得するVBA?

ACCESSを使って勉強中です。 VBAを記述中に疑問がわきましたのでどなたか教えてください。。 配列 a(4)の中には1か2のデータが格納されるようになっています。 格納されるのはランダムになっています。 そこで、配列の中に1があったら、それが何番目にはいっているのか a(?)というのを取得したいのですが、そういうことは可能でしょうか? よろしくお願いします。

みんなの回答

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

こんな感じでしょうか。 Sub test1() Dim i As Integer Dim Mes As String Dim a As Variant a = Array(1, 4, 1, 7, 3, 1) For i = LBound(a) To UBound(a) If a(i) = 1 Then If Mes <> "" Then Mes = Mes & " , " Mes = Mes & i End If Next If Mes = "" Then Mes = "見つかりませんでした。" Else Mes = Mes & " 番の配列で見つかりました。" End If MsgBox Mes End Sub

  • ape5
  • ベストアンサー率57% (85/148)
回答No.2

Dim strIndex as string Dim i as integer for i = 0 to 4 if a(i) = 1 then strIndex = " " & i end if next i msgbox "一致したのは、" & strIndex & "です。"

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

FOR文を使って配列の数字をチェックします。 Flg = Flse For i=Lbound(a) to Ubound(a) If a(i) = 1 then flg=True Exit For endif Next If flg then msgbox i Else msgbox "見つかりませんでした" endif

himestars
質問者

補足

早速のお返事ありがとうございます! もうひとつ質問よろしいですか? これは最初の配列しかもってこないようなのですが、 a(0)~a(4)までの間には a(0)・・・1 a(1)・・・2 a(2)・・・2 a(3)・・・1 a(4)・・・1 となったりもするのですが、 このときはどのようにすれば1があるデータをメッセージボックスに表示できますか?イメージとしてはメッセージボックスに「0,3,4」という感じで出るといいのですが・・ ご面倒でしょうがよろしくお願いします!