
No.1ベストアンサー
- 回答日時:
こんばんは!
https://oshiete.goo.ne.jp/qa/10059650.html
↑のサイトの関連質問になるのですね。
>ボタンを押すとそれぞれのセルの名前がランダムに・・・
応用だけです。
「Aクラス」シートにコマンドボタンを配置しているとします。
コマンドボタンのコードを↓にしてみてください。
Private Sub CommandButton1_Click()
Dim c As Range, myRng As Range
Dim myNum As Long, myFlg(1 To 6) As Boolean
Randomize
With Worksheets("名簿")
Set myRng = .Range("A1,A3,A5,B1,B3,B5")
For Each c In myRng
Do
myNum = Int(6 * Rnd + 1)
Loop Until myFlg(myNum) = False
c = Cells(myNum, "A")
myFlg(myNum) = True
Next c
End With
End Sub
こんな感じで大丈夫だと思います。m(_ _)m

No.3
- 回答日時:
たぶん、ここでは、私のは、理解されないかもしれません。
ランダムの基数が6だけでは、どれも差はでません。Excelの擬似乱数ジェネレーターは、「一様乱数(ひとつのパレットでできる乱数)」に欠陥があるそうで、その一様乱数は 32768 種しかありません。だから、専門的な乱数には使えないとも言われています。
以下は、Flag を使わず、重複を出さないシステムです。乱数によって、一意の数字を見つける方法ですと、数によっては、アテのない時間を待つ可能性があります。本格的には、アルゴリズムを利用します。今回は、ワークシート関数で間に合わせました。
'//
Sub RandomGenerate1()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim prsns As Range
Dim nums(1 To 6)
Dim Ar(1 To 6) As Variant
Dim i As Long, j As Long, k As Long
Dim c As Variant
Dim v As Variant
Set sh1 = Worksheets("Aクラス")
Set sh2 = Worksheets("名簿")
Set prsns = sh1.Range("A1:A6")
Randomize '一様乱数は、一回の発生につき1回限り
For i = 1 To 6
nums(i) = Rnd
Next
With Application
For i = 1 To 6
v = .Small(nums, i)
Ar(i) = .Match(v, nums, 0)
Next
End With
k = 1
For Each c In sh2.Range("A1,A3,A5,B1,B3,B5")
c.Value = prsns(Ar(k)).Value
k = k + 1
Next c
End Sub
No.2
- 回答日時:
こんなのはいかがでしょうか?
--------------------------------------------------------------------------------
Sub test()
Dim 行 As Long
Dim 列 As Long
Dim 使用済(5) As Boolean
Dim 数 As Long
Randomize
Sheets("名簿").Select
For 行 = 1 To 5 Step 2
For 列 = 1 To 2
Do
数 = Int(6 * Rnd)
Loop Until 使用済(数) = False
Cells(行, 列).Value = Sheets("Aクラス").Cells(数 + 1, 1).Value
使用済(数) = True
Next
Next
End Sub
--------------------------------------------------------------------------------
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) エクセルVBAでチェックボックスにチェックを入れる 1 2022/09/14 00:52
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存 2 2022/04/18 13:15
- Excel(エクセル) 【マクロ】ボタンを押すごとに、A1セル、A2セル、A3セルに日付を入力 3 2023/01/25 00:12
- Excel(エクセル) 3つのエクセルをそれぞれのシートのセルに反映させたいときはどうしたらいいでしょうか? 例えば①シート 4 2023/04/25 20:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドボタンを押すたびに大...
-
Excel:コマンドボタンの移動
-
押したボタンの位置取得(共通の...
-
コマンドボタンがあるかどうか...
-
スクロールしてもボタンを常に...
-
PPTのコマンドボタンがクリック...
-
コマンドボタンで「終了ボタン...
-
Accessのコマンドボタンの立体...
-
エクセルVBAでOptionButtonのオ...
-
チェックボックスで「いずれか1...
-
Wordでドラッグした文字列を括...
-
ShowAllDataのエラーを回避したい
-
エクセルのコマンドボタンの位...
-
エクセルでコマンドボタンを押...
-
実行中の作業を中止させるコマンド
-
エクセルのマクロでスライドシ...
-
エクセルVBA
-
Excel VBA --- コマンドボタ...
-
コマンドボタンの画像も拡大表...
-
Auto CAD の F1(ヘルプ)を機...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンを押すたびに大...
-
Excel:コマンドボタンの移動
-
スクロールしてもボタンを常に...
-
押したボタンの位置取得(共通の...
-
PPTのコマンドボタンがクリック...
-
Accessのコマンドボタンの立体...
-
Excel VBA --- コマンドボタ...
-
コマンドボタンがあるかどうか...
-
エクセルVBAでOptionButtonのオ...
-
ShowAllDataのエラーを回避したい
-
チェックボックスで「いずれか1...
-
コマンドボタンで「終了ボタン...
-
エクセルVBA
-
EXCELでNo.を変えて印刷したい
-
エクセルでマクロを使わずに複...
-
Wordでドラッグした文字列を括...
-
Accessユーザーフォームでコマ...
-
エクセルでマクロボタンを動か...
-
エクセルのコマンドボタンの位...
-
エクセルVBA シート上にあるコ...
おすすめ情報