【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言

rand関数は知ってるのですが、数値しか表示できないみたいで、
とりあえず

コマンドボタンを押すと空白セルに予め入力したデータ(なんでもいいですが)を空白セルにランダム表示させる

という風にしたいです。マクロは未経験ですがよろしくお願いします。

A 回答 (5件)

二択:


=CHOOSE(RAND()*2+1,"○","×")
三択:
=CHOOSE(RAND()*3+1,"ぐー","ちょき","ぱー")

コマンドボタンの代わりにF9キーを押すと,何度でもランダムに結果が変わります。
コピーして必要な結果の個数だけ,同じ数式を並べても勿論構いません。
    • good
    • 0
この回答へのお礼

簡単でやりやすかったです。ありがとうございます!

お礼日時:2011/02/27 18:27

勉強がてら やってみました


相も変わらず数式ですが(^^;)

Sub A列の値をC列へランダムに並べる()
Application.ScreenUpdating = False
   Dim 終わり行 As Long
   終わり行 = Cells(Rows.Count, 1).End(xlUp).Row
       
   Range("A:B").EntireColumn.Insert

   
   Range("A1:A" & 終わり行).Formula = "=RAND()"
   Range("B1:B" & 終わり行).FormulaR1C1 = "=RC[1]&"""""
   Range("A1:B" & 終わり行).Value = Range("A1:B" & 終わり行).Value
   Range("A1:B" & 終わり行).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
       OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
       :=xlPinYin, DataOption1:=xlSortNormal
   Range("E1:E" & 終わり行).FormulaR1C1 = "=RC[-3]&"""""
   Range("E1:E" & 終わり行).Value = Range("E1:E" & 終わり行).Value
   Columns("A:B").Delete
Application.ScreenUpdating = True
End Sub
    • good
    • 0

RAND関数はシートの関係ないセルのデータを変えても値が変わってしまう。

だから扱いにくい
例えば
A,B,C,E列(結果)データ
a0.0689046655b
b0.924045921e
c0.2663099194d
d0.6410455843
e0.9200070652
この5つのA列のデータから3つ選ぶとする。
B列は乱数で、それらの各行の値の3つを選びだす仕組みとする。
E列の関数は =INDEX($A$2:$C$6,MATCH(ROW()-1,$C$2:$C$10,0),1)
これで乱数の面で良いのかどうか確信はないが。
ーー
B列は不安定なので
ボタンを設けて、クリックイベントに
Private Sub CommandButton1_Click()
For i = 2 To 6
Cells(i, "B") = Rnd()
Next i
End Sub
Rnd()の()内はいいろいろ意味があるようだからWEBででも調べて。
    • good
    • 0

INT(RAND()*(10-1)+1)



より

ROUND(RAND()*(10-1)+1,0)

が良いかもしれません。
    • good
    • 0

たとえばデータとして



A列に1から10までの数値
B列にランダムに表示させたいデータ

と入力しておき

表示させたいセに(A列とB列は除く)

=VLOOKUP(INT(RAND()*(10-1)+1),A:B,2,FALSE)

としてください。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報