[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルをランダムに非表示にする』(たろう)
よろしくお願い致します。
http://ozcircle.net/_uploader/92820622
上のURLのようにA1:H14の範囲に、数字がランダムにばらまいてあります。A1:H14にはすべてrank関数が入っており、関数が返した値が、上のURLのようになっています。
本題ですが、ランダムにばらまいてある1〜13までの数字のうち、「どれか1つをランダムに選んで、そのセルの内容を非表示にする」ということをしたいのですが、どのような関数を使えばよいのかわかりません。
また「どれか2つをランダムに選んで、そのセルの内容を非表示にする」ということもやりたいです。
あまり難しい関数はわからないので、できるだけ簡単な関数で、シンプルなコードで書いて頂けると、なおうれしいです。
どうぞ、よろしくお願い致します。
Excel2010,Windows7
質問者のレベルに関らず、問題解決に必要なものというものが
存在するので、そのような要件を盛り込むのは、いかがなものか。
そもそも「簡単な」といっても、[たろう]さんが「簡単な」と思える
関数が何なのかなんて、こちらが解るわけありません。
また、このような発言の心理をウラ読みすると、
「私はがんばる心算ないから、キミたち、回答者さんが努力してよね」
ということになるので、蛇足どころか、非常にマイナス。
閑話休題。
質問内容、外部リンク先から判断して、下記の相談の
関連であると推測します。
[[20120118181519]] 『こんなものを作りたい』(初心者)
[[20120123171337]] 『こんなものをつくりたい』(初心者)
関数でリンク先画像のように表示しているのでしたら、
その関数も提示したほうがいいですね。その関数そのものを
改良する余地があるかもしれないし、クスリの飲み合わせのようなもので、
あちらを立てれば、こちらが立たず、ということもありますので。
非表示というわけには行きませんが、条件付書式でフォントを
セル背景色と同じ色にして見えにくくするという方針で。
どこか適当なセル範囲、例えば、J1:J13に =RAND() を入力。
I1に
=RANK(J1,$J$1:$J$13,1)
要件二つの場合はこの式をI2にコピー。
A1:H14を選択して、(Excel2010の場合)条件付書式>ルールの管理>
「新規のルール」をクリック、「指定の値を含むセルだけを書式設定」
「セルの値」「次の値に等しい」「=$I$1」、書式ボタンでフォントをセル背景色と同色に。
要件二つの場合は、さらに「新規のルール」をクリック、「指定の値を含むセルだけを書式設定」
「セルの値」「次の値に等しい」「=$I$2」、書式ボタンでフォントをセル背景色と同色に。
以上を設定して「OK」
(みやほりん)(-_∂)b
P.S.
先にあげた二つのトピックは質問しっぱなしの状態。
立場を逆にして、あなたがこれらの質問に回答した人だとしたら、
何の反応もない相談者にどのような感想を持ちますか?
同じ相談者と思える人の質問に、次回、前向きに回答する気に
なれるでしょうか?
1〜13のいずれかの値2個を非表示にするのはこんな感じ? (Hatch)
Sub test_3()
Dim r1 As Long, r2 As Long, flg As Boolean
Dim u As Long
Dim c As Range
Range("A1:H14").NumberFormatLocal = "G/標準"
u = 13
Randomize
r1 = Int((u - 1 + 1) * Rnd + 1)
r2 = Int((u - 1 + 1) * Rnd + 1)
flg = False
If r1 = r2 Then flg = True
Do While flg = True
r2 = Int((u - 1 + 1) * Rnd + 1)
If r1 = r2 Then flg = True
Loop
MsgBox r1 & "----" & r2
For Each c In Range("A1:H14")
If c.Value = r1 Or c.Value = r2 Then
c.NumberFormatLocal = ";;;"
End If
Next c
End Sub
マクロを簡単なVBAでカスタマイズし、画像編集ソフトなどと組み合わせることにより、希望しているものを作ることができました。
本当にお世話になりました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.