Excel VBA質問箱 IV

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

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


62696 / 76732 ←次へ | 前へ→

【18641】Re:乱数(重複なし)の発生は?
回答  ちゃっぴ  - 04/10/2(土) 16:45 -

引用なし
パスワード
   >>Cells(i, 5).Value = colNumber(i) 'コレクションの中からi番目の要素をとりだす。
>
>これもやってみたのですが、実行時エラー「型が一致しません」に
>成っちゃいます。どうして?どこかまちがえたかな?

For i = 1 To 20
  Cells(i, 5).Value = colNumber(i) 
Next 

となってますか?私の環境では正常に動きますけど・・・

なお、For Each 〜 Nextを使用するとこんな感じです。
  Dim rngDest As Range
  
  Set rngDest = Cells(1, 5)      '出力開始行セット
  For Each vntRndNo In colNumber
    rngDest.Value = vntRndNo
    Set rngDest = rngDest.Offset(1) '出力行インクリメント
  Next vntRndNo

セルへの出力処理を、配列を使ってやればより高速化が望めます。
Sub test5()
  Dim colNumber As New Collection
  Dim intRndNo As Integer
  Dim intRndArray() As Integer

  'エラートラップ
  On Error Resume Next
  Do
    intRndNo = Int(300 * Rnd) + 1
    'コレクション格納
    colNumber.Add intRndNo, "Key" & intRndNo
  Loop Until colNumber.Count = 20
  On Error GoTo 0
  
  '配列数確定
  ReDim intRndArray(1 To 20, 1 To 1)
  
  'コレクションから配列に代入
  For i = 1 To 20
    intRndArray(i, 1) = colNumber(i)
  Next i
  
  'セルに一括出力
  Cells(1, 5).Resize(20, 1).Value = intRndArray
End Sub
0 hits

【18624】乱数(重複なし)の発生は? ponpon 04/10/1(金) 22:13 質問
【18625】Re:乱数(重複なし)の発生は? ちゃっぴ 04/10/2(土) 0:08 回答
【18627】Re:乱数(重複なし)の発生は? ponpon 04/10/2(土) 0:58 発言
【18628】Re:乱数(重複なし)の発生は? ponpon 04/10/2(土) 1:07 発言
【18629】Re:乱数(重複なし)の発生は? ちゃっぴ 04/10/2(土) 1:38 回答
【18630】Re:乱数(重複なし)の発生は? ちゃっぴ 04/10/2(土) 1:56 回答
【18631】Re:乱数(重複なし)の発生は? ichinose 04/10/2(土) 1:59 発言
【18637】Re:乱数(重複なし)の発生は? ponpon 04/10/2(土) 15:36 お礼
【18638】Re:乱数(重複なし)の発生は? ちゃっぴ 04/10/2(土) 15:55 回答
【18640】Re:乱数(重複なし)の発生は? ponpon 04/10/2(土) 16:19 お礼
【18641】Re:乱数(重複なし)の発生は? ちゃっぴ 04/10/2(土) 16:45 回答
【18642】Re:乱数(重複なし)の発生は? ponpon 04/10/2(土) 17:43 発言
【18653】Re:乱数(重複なし)の発生は? ponpon 04/10/3(日) 9:54 お礼

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