Excel VBA質問箱 IV

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

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


32570 / 76734 ←次へ | 前へ→

【49399】Re:重複チェックがよくわかりません
回答  Hirofumi  - 07/6/3(日) 23:35 -

引用なし
パスワード
   こんなかな?

Option Explicit

Public Sub Sample()

  '◆乱数の上限値
  Const clngUpper As Long = 5
  '◆乱数の下限値
  Const clngLower As Long = 1
  '◆取り出す個数
  Const clngNumber As Long = 4
  '◆出力先頭行位置
  Const clngRow As Long = 1
  '◆出力先頭列
  Const clngColumn As Long = 1
  
  Dim i As Long
  Dim lngCount As Long
  Dim lngRows As Long
  Dim rngResult As Range
  Dim lngData(1 To clngNumber, 1 To 1) As Long
  Dim lngMark As Long
  Dim strProm As String

  '出力Listの先頭セル位置
  Set rngResult = ActiveSheet.Cells(clngRow, clngColumn)
  rngResult.EntireColumn.ClearContents
  
  Randomize
  Do
    '乱数を発生
    lngMark = Int((clngUpper - clngLower + 1) * Rnd + clngLower)
    '配列に乱数が重複しているか確認
    For i = 1 To lngCount
      If lngData(i, 1) = lngMark Then
        Exit For
      End If
    Next i
    '重複が無いなら
    If i > lngCount Then
      '発生した乱数を配列に代入
      lngCount = lngCount + 1
      lngData(lngCount, 1) = lngMark
    End If
  '代入した個数が指定個数になるまで繰り返し
  Loop Until lngCount = clngNumber
  
  '出力
  rngResult.Resize(clngNumber).Value = lngData
  
  strProm = "処理が完了しました"
   
Wayout:

  
  Set rngResult = Nothing
   
  MsgBox strProm, vbInformation
     
End Sub
5 hits

【49396】重複チェックがよくわかりません マイス 07/6/3(日) 21:49 質問
【49398】Re:重複チェックがよくわかりません Kein 07/6/3(日) 22:53 回答
【49399】Re:重複チェックがよくわかりません Hirofumi 07/6/3(日) 23:35 回答
【49402】Re:重複チェックがよくわかりません Hirofumi 07/6/4(月) 10:32 回答
【49421】Re:重複チェックがよくわかりません マイス 07/6/4(月) 21:31 お礼

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