Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1966 / 13645 ツリー ←次へ | 前へ→

【70764】お願いします ka1 11/12/27(火) 22:21 質問[未読]
【70765】Re:お願いします UO3 11/12/27(火) 22:53 発言[未読]
【70766】Re:お願いします kanabun 11/12/28(水) 9:42 回答[未読]
【70767】Re:お願いします ka1 11/12/28(水) 10:35 お礼[未読]

【70764】お願いします
質問  ka1  - 11/12/27(火) 22:21 -

引用なし
パスワード
   以下のように、グループごとに人数があります。
ここではグループが3つですが、任意です。

グループ    人数
1    3
2    8
3    5

この任意のグループ数によって、例えば、グループ数をnmaxとして、1からnmaxまでループして、
num1=3
num2=8
num3=5 …
のように、グループごとの人数を変数として置き換えたい、と言うか、上記のnum1の「1」の部分を変数で扱いたいと言えばいいのでしょうか?

どなたか教えて頂けると助かります。
説明不足でしたら、ご指摘願います。

【70765】Re:お願いします
発言  UO3  - 11/12/27(火) 22:53 -

引用なし
パスワード
   ▼ka1 さん:

変数名に変数を組み合わせて使うことはできないと思います。
以下ではいかがでしょう。
getNum(1) とか GetNum(5) といった感じで参照します。
以下のコードではグループの数や、その人数をとりあえず固定で作成していますが
シートのどこかにリストでもっておいて、それを取り込むのがいいかもしれませんね。

Option Explicit

Const nmax As Long = 10  'グループ数
Dim v(1 To nmax) As Long
Dim done As Boolean

Sub Test()
  MsgBox getNum(1)
  MsgBox getNum(8)
  MsgBox getNum(100)
End Sub

Private Function getNum(idx As Long) As Long
  If Not done Then
    v(1) = 3
    v(2) = 8
    v(3) = 5
    v(4) = 10
    v(5) = 20
    v(6) = 30
    v(7) = 40
    v(8) = 50
    v(9) = 60
    v(10) = 70
  End If
  done = True
  If idx > UBound(v) Then Exit Function
  getNum = v(idx)
End Function

【70766】Re:お願いします
回答  kanabun  - 11/12/28(水) 9:42 -

引用なし
パスワード
   ▼ka1 さん:
>この任意のグループ数によって、例えば、グループ数をnmaxとして、1からnmaxまでループして、
>num1=3
>num2=8
>num3=5 …
>のように、グループごとの人数を変数として置き換えたい、と言うか、上記のnum1の「1」の部分を変数で扱いたいと言えばいいのでしょうか?
>
「配列」の使い方のご質問ですか?
Dim num() As Long
Const nmax = 3    'グループ数
Redim num(1 To nmax)
' 以上で、同じような性質のデータ(今回は グループごとの「人数」)を
' まとめて格納できる配列変数を宣言しました。

' データを格納します
  num(1) = 3
  num(2) = 8
  num(3) = 5

' グループ3 の人数を取得します
  MsgBox ”グループ3 は現在 ” & num(3) & " 名 です"

【70767】Re:お願いします
お礼  ka1  - 11/12/28(水) 10:35 -

引用なし
パスワード
   UO3さん kanabunさん

constとかredimとか、耳慣れないもので、勉強になります。
まだ、完成してませんが、先ずはお礼を。
ありがとうございます。

また、詰まったら質問させて頂こうと思います。

1966 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free