Excel VBA質問箱 IV

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

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


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

【49211】インデックスの有効範囲 マイス 07/5/27(日) 21:34 質問[未読]
【49215】Re:インデックスの有効範囲 ichinose 07/5/27(日) 23:20 発言[未読]
【49261】Re:インデックスの有効範囲 マイス 07/5/29(火) 21:49 お礼[未読]

【49211】インデックスの有効範囲
質問  マイス  - 07/5/27(日) 21:34 -

引用なし
パスワード
   教えて下さい<(__)>お願いします。
6〜11の数字の中から、3つの数字をランダムにかつ
ダブリ無しで抽出し、セルのA列6行目〜8行目に
出力したいのですが、インデックスが有効範囲にないと出ました。
i=7なのが原因だと思うのですが、どうすれば良いでしょうか・・・

Sub ex_A()
Dim col_bef As Collection, col_aft As Collection
Dim a As Integer, b As Integer, c As Integer
Dim d As Integer, e As Integer, u As Integer
Dim key As Integer, i As Integer
a = 6 '母集団の頭番号
b = 11 '母集団の尾番号
c = 6 'セルの出力開始行
d = 8 'セル出力終了行
e = 1 'Excelの列
Set col_bef = New Collection
Set col_aft = New Collection
For i = a To b
col_bef.Add i
Next i
Do Until col_bef.Count = 0
key = Int(Rnd(1) * (col_bef.Count)) + 1
col_aft.Add col_bef(key)
col_bef.Remove key
Loop
For i = c To d
Cells(i, e) = col_aft(i)
Next i
End Sub

【49215】Re:インデックスの有効範囲
発言  ichinose  - 07/5/27(日) 23:20 -

引用なし
パスワード
   ▼マイス さん:
こんばんは。

>教えて下さい<(__)>お願いします。
>6〜11の数字の中から、3つの数字をランダムにかつ
>ダブリ無しで抽出し、セルのA列6行目〜8行目に
>出力したいのですが、インデックスが有効範囲にないと出ました。
>i=7なのが原因だと思うのですが、どうすれば良いでしょうか・・・


コードを提示するときは、インデントを付けた記述をした方が
みやすいですよ!!

>Sub ex_A()
>Dim col_bef As Collection, col_aft As Collection
>Dim a As Integer, b As Integer, c As Integer
>Dim d As Integer, e As Integer, u As Integer
>Dim key As Integer, i As Integer
>a = 6 '母集団の頭番号
>b = 11 '母集団の尾番号
>c = 6 'セルの出力開始行
>d = 8 'セル出力終了行
>e = 1 'Excelの列
>Set col_bef = New Collection
>Set col_aft = New Collection
>For i = a To b
  col_bef.Add i
  Next i
Do Until col_bef.Count = 3 '三つ取り出すのですから、残りも3でよいですね
  key = Int(Rnd(1) * (col_bef.Count)) + 1
  col_aft.Add col_bef(key)
  col_bef.Remove key
  Loop
For i = 1 To 3 '三つ取り出すのですから、コレクションのKeyは1〜3
  Cells(i, e) = col_aft(i)
  Next i
>End Sub

なるべく、コードの変更を最小限にする という観点から、修正すると
こんなところでしょうか?

【49261】Re:インデックスの有効範囲
お礼  マイス  - 07/5/29(火) 21:49 -

引用なし
パスワード
   ichinose さん
返事、有難うございました。
この構成では、目的どおりできませんね(笑
勉強して組みなおしてきます・・・

有難うございました。<(__)>

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