No.3ベストアンサー
- 回答日時:
>ちなみにリストから選び出すとき、重複しないやり方はありますか?
無条件に選んでいるので重複することがありますね。選んだら消すようにして重複を避けるようにしました。ついでにマジックナンバー(数値)を変数にしました。
Sub getRand10()
Const Kaisuu = 10 '試行回数
Const pickNum = 10 '抽出個数
Dim iniList As Variant 'リスト
Dim wkList As Variant 'リスト(作業用)
Dim ListCount As Integer 'リスト個数
Dim r As Integer '行カウンタ
Dim c As Integer '列カウンタ
Dim idx As Integer '抽出するインデックス
iniList = Range("A2:A51") 'シートから読み込み
ListCount = UBound(iniList)
Randomize '乱数の初期化
For c = 1 To Kaisuu
r = 0
wkList = iniList '配列の初期化
Cells(1, c + 2) = c & "セット" '表題
'抽出個数まで実行
While r < pickNum
idx = Int(Rnd() * ListCount + 1) '乱数
While wkList(idx, 1) = "" '消去データなら再試行
idx = Int(Rnd() * ListCount + 1)
Wend
r = r + 1 '出力
Cells(r + 1, c + 2) = wkList(idx, 1)
wkList(idx, 1) = "" '抽出したら消す
Wend
Next
End Sub
No.2
- 回答日時:
こんばんは!
安直な方法ですが、一例です。
Sheet1のA列1行目は項目行でデータは2行目以降にあるとします。
Sheet2に表示するようにしてみました。
標準モジュールです。
Sub Sample1()
Dim lastRow As Long, cnt As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS.Cells.Clear
With Worksheets("Sheet1")
.Range("B:C").Insert
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
Range(.Cells(2, "B"), .Cells(lastRow, "B")).Formula = "=RAND()"
Range(.Cells(2, "C"), .Cells(lastRow, "C")).Formula = "=RANK(B2,B:B)"
For cnt = 1 To 10
.Calculate
.Range("A1").AutoFilter field:=3, Criteria1:="<=10"
wS.Cells(1, cnt) = cnt & "セット"
Range(.Cells(2, "A"), .Cells(lastRow, "A")).SpecialCells(xlCellTypeVisible).Copy wS.Cells(2, cnt)
Next cnt
.Range("B:C").Delete
.AutoFilterMode = False
End With
wS.Activate
wS.Columns.AutoFit
Application.ScreenUpdating = True
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.1
- 回答日時:
こんな感じでしょうか。
シートのコードウィンドウに貼り付けます。(Excel2010)A列の50個のデータから10個をC列以降に書き出しています。
Sub getRand10()
Dim List As Variant 'リスト
Dim r As Integer '行カウンタ
Dim c As Integer '列カウンタ
Dim idx As Integer '抽出するインデックス
List = Range("A2:A51")
Randomize
For c = 1 To 10
Cells(1, c + 2) = "リスト" & c
For r = 1 To 10
idx = Int(Rnd() * 50 + 1)
Cells(r + 1, c + 2) = List(idx, 1)
Next
Next
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaマクロについて 【シート2】をもとに【シート1】に有るものを「有り.csv」としてデスクトップ 3 2023/05/07 22:30
- ダイエット・食事制限 今日の食事を見て改善点や思ったこと感じたことを教えて下さい。 朝ごはん フルーツグラノーラお皿に出し 3 2022/07/28 19:19
- 筋トレ・加圧トレーニング ウエイトトレーニングに質問します。初心者です。 5 2022/06/20 16:58
- 筋トレ・加圧トレーニング ベンチプレス 大胸筋 ジレンマ 3 2023/05/01 14:50
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
- 筋トレ・加圧トレーニング 筋トレの特にダンベルプレスの重量について 2 2022/09/27 15:11
- Visual Basic(VBA) vbaマクロについて 【1.csv】をもとに【商品.csv】に有るものを【有り.csv】として名前を 1 2023/05/18 07:58
- くじ・懸賞 宝くじの1等と前後賞 2 2022/12/14 15:27
- 筋トレ・加圧トレーニング 筋トレのボリューム理論というのみました https://smartlog.jp/219244 一週間 2 2023/03/25 09:56
- Excel(エクセル) エクセルを活用して受注表を作成中ですが関数が分からなく困ってました。 1 2022/07/22 09:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロで最終行を取得してコピ...
-
VB.net
-
エクセルで空白行を削除する ...
-
【至急】Excel 同一人物の情報...
-
VBAで入力の結果を他のセルに反...
-
Excel VBA オートフィルタの結...
-
VBAでの重複データに色付け
-
数値に見えるものはすべて数値...
-
エクセル住所録でフラッグの個...
-
【VBA】条件に一致しない行を削...
-
Access2003レポート:最終ペー...
-
VBAで特定の行と一つ上の行を削...
-
vbaエクセルマクロについて she...
-
マクロにて指定の文字間の文字...
-
空白を複数行一気に挿入するには?
-
エクセルのデータがない行には...
-
Excelで、マウスで範囲を選択し...
-
Excel 別ブックから該当データ...
-
Excel マクロ 検索結果を別シ...
-
エクセルのVBAで指定した行数の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数値に見えるものはすべて数値...
-
マクロで最終行を取得してコピ...
-
【VBA】条件に一致しない行を削...
-
エクセルで空白行を削除する ...
-
エクセルのデータがない行には...
-
【VBA】条件に一致しない行を削...
-
VB.net
-
Excel VBAでオートフィルタで抽...
-
列から特定の文字列検索→該当以...
-
Excel97 指定した行だけマク...
-
エクセルで階層図を作る方法
-
Excel 別ブックから該当データ...
-
VBAでの重複データに色付け
-
EXCEL VBAでA列にある空白行よ...
-
マクロにて指定の文字間の文字...
-
エクセルのVBAで指定した行数の...
-
Access2003レポート:最終ペー...
-
VBAで特定の行と一つ上の行を削...
-
各個体に対する平均値の自動計...
-
Excel マクロ 検索結果を別シ...
おすすめ情報