advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 33521 for 関数 (0.006 sec.)
[[20240506075403]]
#score: 2647
@digest: eaafe649dd0e0726cbee45c7c2c1b524
@id: 96698
@mdate: 2024-05-06T12:44:09Z
@size: 2546
@type: text/plain
#keywords: 席替 (21322), aryshuffle (13533), 欠落 (9065), 座席 (6046), 乱数 (5331), 複、 (4464), 落が (4077), 席が (3963), randbetween (3960), myary (3860), ッフ (3198), ャッ (2713), 数発 (2600), 数処 (2260), シャ (2222), 、欠 (2155), 列6 (2142), フル (1624), hatena (1451), isarray (1266), 2024 (1164), ロ登 (1069), 数表 (845), ダム (797), 居z (775), ボタ (762), 重複 (760), 採用 (729), 発生 (693), タン (685), ary (672), 月) (661)
『乱数表について』(やしき)
6列6行の乱用いた用いた座席表があります。各セルにはrandbetween(1,36)の関数を入れてあります。これをマクロ登録してボタンをクリックすることで席替えが出来るようにしてあります。ところでこの表には別の処理をするため、他にもマクロのボタンや関数処理するための入力セルを設けてあります。そのたえ、席替え以外ボタンをボタンをクリックしたり、関数処理のために数を入れてエンターキーを押すとやはり乱数が発生してしまいます。席替えボタンを押したときのみ乱数が発生するようにするにはどうしたら良いのでしょうか。 < 使用 Excel:Excel2010、使用 OS:Windows8 > ---- 一案です 数式とっぱらって、マクロで表示するとか。。。^^; でわ m(__)m (隠居Z) 2024/05/06(月) 08:24:32 ---- randbetween(1,36)では、重複や欠落がでるがそれでいいのだろうか。 座席がない人や、座席が複数ある人がでたりするのだが。 まあ、それはスルーするとして、 VBAで式を設定したあと、値に変換しておけばいいでしょう。 Sub Test3() With Range("A1:F6") .Value = "=randbetween(1,36)" .Value = .Value End With End Sub (hatena) 2024/05/06(月) 08:27:02 ---- 回答ありがとうございます。そうなんです。VBAとかは詳しくなくて乱数発生の関数が便利だと思い採用しましたが、hatenaさんの言うように重複、欠落がでるので実はまだ開発途中で試行錯誤中なんです。まずは表示された乱数が変わらないようにすることからかなと思いまして投稿しました。ちなみにこの欠点(重複・欠落等)の解決法はやはりVBAでないとできないのでしょうか? (やしき) 2024/05/06(月) 11:48:19 ---- ボタンクリックしたときのみ変更という仕様ならVBAしか無理でしょう。 重複、欠落付加なら乱数ではなくランダムな並べ替え(シャッフル)になりますね。 バージョンが365なら関数でシャッフルは可能ですが、2010ですので無理ですね。 配列をシャッフルする関数を作成してそれを利用することになります。 Sub Test4() Dim ary(1 To 36) As Long Dim i As Long, j As Long For i = 1 To 36 ary(i) = i Next AryShuffle ary With Range("A1:F6") For i = 1 To 36 .Cells(i) = ary(i) Next End With End Sub '配列をランダムに並べ替える Sub AryShuffle(ByRef MyAry) Dim i As Integer, buf, UB As Long, LB As Long, P As Long If Not IsArray(MyAry) Then Exit Sub Randomize UB = UBound(MyAry) LB = LBound(MyAry) For i = UB To LB + 1 Step -1 P = Int((i + 1) * Rnd) + LB buf = MyAry(P) MyAry(P) = MyAry(i) MyAry(i) = buf Next End Sub (hatena) 2024/05/06(月) 12:30:18 ---- 回答ありがとうございました。早速トライしてみます。 (やしき) 2024/05/06(月) 21:44:09 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/202405/20240506075403.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97022 documents and 608152 words.

訪問者:カウンタValid HTML 4.01 Transitional