プロが教えるわが家の防犯対策術!

エクセルにて質問です。
一つのシートで横列(アルファベット)は同じで、縦列(数字)は二列ずつのセットで…

もしセル
R11に何もなければ(空欄なら)→
A11からBP12までのセルを薄い灰色で塗りつぶす

もしセル
R11に何かあれば→
Y11に15~22までのランダムの数字
Z11に0~59までのランダムの数字
BC11に8~11までのランダムの数字
BD11に0~59までのランダムの数字
………
………
………
もしセル
R39に何もなければ(空欄なら)→
A39からBP40までのセルを薄い灰色で塗りつぶす

R39に何かあれば→
Y39に8
Z39に0~59までのランダムの数字
BC39に12~17までのランダムの数字
BD39に0~59までのランダムの数字

というものを作成したいのです。
尚、ランダム数字の値は上記の様に変更可能なものを希望です。
上記の内容になりますと、複数セルの塗りつぶしが含まれるので関数だけでは無理でしょうか?
また、マクロ使用で可能ならコードを教えてもらえたら助かります。

エクセルに詳しい方おしえてください。
よろしくお願いします。

A 回答 (2件)

エクセルに慣れていないのか、条件付き書式を知らないのかな。


本質問は、次ぎの2つの問題を含んでいます。
2つは別の問題です。どちらもセルの「値」を問題にしますが。
たまたま乱数の関数は例外で他のセルの値を使わないが。
(1)条件付書式
「何も無ければ」のケース(R11,R39)
  ただしここで関数類似の「数式」を使うが。
  (やってほしいこと)セル範囲をセルパターン色に塗りつぶす
(2)関数式の問題
「何かあれば=>何か入力されれば」
  (やってほしいこと)ランダムな数字をセット
ーーー
(1)はR11(またはR39)か空白かどうか、A11:BP12(A39:BP40)までの各セルにおいて、セルが変わっても、いつも固定したR11を見るので
$をセル番地につけて絶対参照をすることに注意すること。
ーー
A11:BP12を範囲指定して
書式ー条件付書式ー数式がー(数式に)
=$R$11=""と$をつける。意味ではIFなのだが=IF($R$11="",○,△)とはしない。関数と違うところ。
書式設定(パターンの薄い灰色)
OK
(2)は乱数発生について
RAND()関数
RANDBETWEEN関数
の2つがあり、
後者はRANDBETWEEN(最小値、最大値)
であり
前社はRAND()x(上限ー下限)+下限です。
RAND()関数等は、再計算によってその都度値が変わるので、形式を選択して張り付けー値で固定しましょう。
初心者段階でRAND関数を使うのは危ういので、今回良く経験を積むこと。
ーーーー
質問表現について
>横列(アルファベット)は
列番号(番号じゃないのに列記号といわないよう)といいます。ここでは「アルファベット」は不要と思うが。
同じく>縦列(数字、は行番号といいます。これも書かなくてもわかり書く必要なし。
    • good
    • 0
この回答へのお礼

丁寧な回答ありがとうございます。
条件付書式設定で複数のセルが選択できることをしりませんでした。今回勉強させていただきました。
また、解説つきで非常にわかりやすく、おかげさまで問題解決しました。

お礼日時:2007/09/23 00:56

・塗りつぶし


A11:BP12を選択、条件付き書式で、「数式が」を選択し、

=$R$11=""

と入力、条件が真の時の書式で薄い灰色を選択します。
詳しくは「条件付き書式」で調べてください。

・R11に何かあれば→Y11に15~22までのランダムの数字

=IF($R$11<>"",INT(RAND()*8)+15,"")

他のセルでも、
=IF(条件のセル<>"",INT(RAND()*(最高値-最低値+1))+最低値,"")
を元に上記の式を修正してください。最高値や最低値は他のセルを参照しても良いです。
    • good
    • 0
この回答へのお礼

素早い回答ありがとうございました。
おかげさまで無事解決しました。

お礼日時:2007/09/23 00:58

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