• ベストアンサー

ランダム表示

こんにちわ。 ボタン”1”を押すごとにa、b、c、d、eの5枚写真を順不同(ランダム)に表示させる方法を教えて下さい。 出来れば表示率も操作したいです。 例えば aは5% bは15% cは20% dは25% eは35% というふうに表示率も操作したいのです。 また、 (※1)ボタン”1”[押す]→写真[表示]→ボタン”1”[押す]→写真消える(消えたときにはa~dとは別の画面(待ちうけ画面1種類みたいなもの)が表示される)→※1へ戻る(繰り返し) としたいのですが・・・。 どんなコードを作ればよいのでしょう? ランダマイズとifとを組み合わせれば出来そうなぐらいしか分かりません。 (それぐらい素人です。) よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 ベタなやり方ですが、ランダム関数(Rnd)を使う方法です。 Select Case Int(100 * Rnd + 1)   Case 1 To 5     (aを表示する処理)   Case 6 To 20     (bを表示する処理)   Case 21 To 40     (cを表示する処理)   Case 41 To 65     (dを表示する処理)   Case 66 To 100     (eを表示する処理) End Select

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.4

#2のものです。 Int関数は切り捨てなのですね。 失礼いたしました。

全文を見る
すると、全ての回答が全文表示されます。
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

No.2の方へ。 Int関数は少数部分を取り除いた整数値を返す関数(つまり切り捨て)なので、問題ないですよ。 ちなみに、整数intLower~整数intUpperの範囲の整数をランダムに出すのは、 Int((intUpper - intLower + 1) * Rnd + intLower) です。 これは「Rnd関数」のヘルプに載っている例です。

全文を見る
すると、全ての回答が全文表示されます。
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

#1の方へ補足です。 INT(100 * Rnd + 1) だとRNDが0.999のとき 101が発生しませんか? あと正確に5%にしたい場合では INT(100 * Rnd + 1) で1が発生するのはRNDが0.000~0.004999・・・のときで発生し 2が発生するのはRNDが0.005~0.014999・・・と 1と2の発生確率に対して2倍の誤差がでてしまいます。 (間違っていたらごめんなさい。)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 画像をランダムに表示させたい(VB6.0)

    A、B、C、D、E、Fの6枚の画像を用意して ボタンを押すごとにA、B、Cの3枚の画像をランダムに表示させる方法を教えて下さい。 また、 Aが表示されたとき、キーボードの「A」を押すとDを表示 Bが表示されたとき、キーボードの「B」を押すとEを表示 Cが表示されたとき、キーボードの「C」を押すとFを表示 としたいのですが・・・。 どなたかご教授お願いします。

  • 入力値をListボックスに表示させたい。

    (仕様1) ユーザーフォーム1でテキストボックス1~5に 入力した値をListボックスに表示させたい。 例えば textbox1=A,textbox2=B,textbox3=C・・・ と入力されたら、 A B C D E のように順に横方向一列に表示させるようにしたいです。 (仕様2) これをコマンドボタン1を押す度にリストボックス1に新しく追加されていく 様にしたいのですが、できますでしょうか。 例えば、 A B C D E A C D B E (テキストボックスに入力後ボタン1を押す) A C B D E (テキストボックスに入力後ボタン1を押す)

  • ExcelVBAでプログラミング

    ExcelVBA初心者です。 A表とB表があり、そこからC表を出力するプログラミングを作りたいのですが教えてください。 A表(順不同) あ 100 い 1000 う 1500 え 1800 お 300 B表(順不同) a う b あ c え d お e い C表(B表の記載順) a 1500 b 100 c 1800 d 300 e 1000 A表とB表は与えられていて、A表とB表の順番は入れ替わることがあるとする。C表はB表の記載順に整列する。 色々調べたのですがどのようなプログラミングを組んだらよいのかわからずこのサイトで質問に踏み切りました。 宜しくお願い致します。

  • javascript ランダム表示

    2回目になります。前回はお世話になりました。 忙しなく、気は引けるのですが、是非教えてもらいたいことがあり質問させていただきます。 やりたいことは、画像が6枚、6枚とあって 上下に2組ずつ表示させます。ただしランダムとはいえ、画像の組み合わせは決まっており、A+B C+D というのは固定という前提で。 画面のイメージとしては 上 画像A + 画像B 下 画像C + 画像D これを、一定時間ごとに  上 画像E + 画像F → 画像A + 画像B(ランダム) 下 画像G + 画像H → 画像I + 画像J (ランダム) E+FとかC+Dは固定ですが、上下で時間ごとに切り替わった時に表示される画像はランダムにしたいのです。A+BやL+Mなどどちらかでるかはランダムといった感じ。 順番どおり、表示させるのは成功したのですが、こちらも是非表現したく、質問させてもらいました。どうか宜しくお願いします。

  • Excelで文字列を独自の二進数で表したい。

    A,B,C,D,Eのいずれかを含む文字が順不同でセルに入っているものから、 A=10000 B=1000 C=100 D=10 E=1 と置換して足した、二進数であらわしたり、逆にその二進数から文字列に戻したりしたいです。 (例:DAなら10010、EBCなら1101) VBAの自作関数を含めてExcelの関数でできる方法があればお教えくださると助かります。

  • エクセル:セルを参照して計算

    お世話になります。 A列にコード番号が、B列に数値が入っています。 A列のコード番号は順不同で重複もあります。 C列にはコード番号の一覧が入っています。(重複なし) C列と一致するコード番号をA列から探し、対応するB列の合計をD列に表示する。 A列に一致するコード番号がないときは0と表示させる。 この場合、D列にはどのような計算式を入力されておけばよいのでしょうか。 例) A1にA、A2にB、A3にC、A4にA、A5にB、A6にD B1に10、B2に20、B3に30、B4に15、B5に20、B6に50 C1にA、C2にB、C3にC、C4にD、C5にE・・・・ この場合 D1には10+15なので25、D2には20+20なので40、D3には30、D4には50、 D5には0を入力する。 よろしくお願いします。

  • ランダム画像を2枚一組で並べたい

    以下の点について知りたかったので書き込みします。 10個の画像を2枚一組でランダムに整列させたいです。 ■B □B ■A □A ■C □C ■E □E ■D □D 図のようにランダムにならんだ■に対して、それとセットになっている□が横に並ぶようにしたいです。 画像は外部読み込みにするつもりです。 似たような質問・解答されているものもありますが、一枚づつ表示というものが多く、それを全部表示させるものへの応用の仕方が判りませんでした。 FLASHMX2004、ActionScript2.0です。 宜しくお願いいたします。

  • EXCEL、ランダム表示の発展系?

    EXCELのSheet1には A列にサイトタイトル、B列にURL、C列にカテゴリのデータがあるとします。 そして、D列には「=IF(B2="","",RAND())」このようなランダムの関数があります。 また、Sheet2のA列には =IF(ROW(A1)>COUNT(Sheet1!$D:$D),"",INDEX(Sheet1!$A:$B,MATCH(LARGE(Sheet1!$D$2:INDIRECT("Sheet1!D"&COUNT(Sheet1!$D:$D)+1),ROW(A1)),Sheet1!$D:$D,0),COLUMN(A1))) B列には =IF(ROW(B1)>COUNT(Sheet1!$D:$D),"",INDEX(Sheet1!$A:$B,MATCH(LARGE(Sheet1!$D$2:INDIRECT("Sheet1!D"&COUNT(Sheet1!$D:$D)+1),ROW(B1)),Sheet1!$D:$D,0),COLUMN(B1))) がA2,B2~A6,B6の5行に書かれています。 すると、Sheet2のA2,B2~A6,B6にはランダムに表示されます。 (以前教えてもらった方法です) そこで今回の質問ですが2つあります。 1つ目は、C列のカテゴリを指定して、その中からランダムに表示させたい。 2つ目は、同じドメインは表示しないようにしたい。 ちょっと、分かり難いかもしれませんが、このようにするにはどうすればいいでしょうか? 恐れ入りますが、教えていただけないでしょうか? よろしくお願いします。

  • エクセルの関数やマクロだけで、ランダムな並べ替えをするには?

    エクセルの機能である[データ]-[並べ替え]操作を使わずに、 ランダムなデータの並べ替えをするには、どうしたらいいでしょうか? 例: E列の乱数結果より、D列の内容をB列に並べ替え表示    A  B  C  D  E  F 1  順位 名称 C  場所 乱数   2   1       青森  5   3   2       埼玉  1   4   3       長野  3   5   4       福井  2   6   5       大分  4   7                   ↓    A  B  C  D  E  F 1  順位 名称 C  場所 乱数   2   1 埼玉    青森  5   3   2 福井    埼玉  1   4   3 長野    長野  3   5   4 大分    福井  2   6   5 青森    大分  4   7                   B列への関数入力または簡単なマクロを教えていただけると助かります。 よろしくお願いします。

  • チェックボックスの配置順にテキストボックスに表示

    accessのフォームにチェックボックスを配置し チェックされたものをテキストボックスに表示させています。 ■A ■B □C □D ■E となっていたら、テキストボックスに A B E と表示させています。 チェックボックスの真ん中に新しくチェックボックスを追加すると テキストボックス内には、追加したものが最後に表示されていまいます。 ■A ■B □C ■Z □D ■E とすると、テキストボックスには A B Z E と表示させたいのに A B E Z 表示されてしまいます。 いちから順番どおりに作り直せばいいのですが かなりたくさんチェックボックスがあるうえに 上司から、この先も何度も作り直しを指示されそうです・・・。 できれば簡単に、配置した順にテキストボックスに表示されるようにしたいです。 チェックボックスの配置順に テキストボックスに文字を表示させる方法を教えてください!

このQ&Aのポイント
  • Lenovo ideapad s540を使用中の方へ。壁紙を変えた後にデフォルトの壁紙(黄色タクシー)に戻したい場合、どこにあるかわからず困っていませんか?本記事では、デフォルト壁紙の場所と戻し方を解説します。
  • Lenovo ideapad s540の壁紙を変えた後にデフォルトの壁紙に戻したい方へ。本記事では、デフォルト壁紙の場所と戻し方について詳しく解説します。壁紙の変更がうまくいかない方は、ぜひご覧ください。
  • デフォルト壁紙を戻したい!Lenovo ideapad s540使用中の方へ。壁紙を試した後にデフォルトの黄色タクシーの壁紙に戻したいけど、どこにあるのかわからない・・・そんなお悩みをお持ちの方に朗報です!本記事では、デフォルト壁紙の場所と戻し方を分かりやすく解説します。
回答を見る