プロが教える店舗&オフィスのセキュリティ対策術

マクロとは、名前しか聞いたことなく、全くわかりません。
が、幾つか行いたい作業があり、効率よく、自動的に行いたいので、良い方法があったら教えてください。
ヘルプで見ても、マクロのことがよくわかりません。
マクロの実行とか編集とか??
どうしたら下のことが簡単にできますか?

1.列に男・女とある表で、男の行だけ青で塗りつぶ  したい。
2.ある列に●が入力されている行には別の列に
  「スイカ」という言葉を入れる。
3.数字が入力されているある列の数値が160以上  は赤色表示にしたい。
 よろしくお願いします。

A 回答 (13件中1~10件)

1.条件付書式を使います。

特にマクロは必要ありません。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/jyo-s …

2.VLOOK関数などを使います。特にマクロは必要ありません。
http://www.atmarkit.co.jp/fwin2k/win2ktips/317vl …

3.こちらも条件付書式で可能です。

マクロで実行なさりたい場合は・・・識者にお任せします。

この回答への補足

早速教えてくださり、ありがとうございます。
HP見せてもらい、やってみたんですが、
3は、うまくできましたが、1は、セルだけの塗りつぶしになってしまいます。表内の行を塗りつぶすには、どうしたらいいのでしょうか?
基本的なこともわかって無くて申し訳ありませんが、教えてください。

補足日時:2004/05/16 00:57
    • good
    • 0

いづれも条件付書式で可能ですね。


2に関してはIF関数で表示させた方が簡単だと思いますが・・・

具体的にアドバイスするなら、どのセルに何が入力されているかと
3の160以上の場合、何を赤くするのか(そのセルの数値だけ?)かが
判ったほうが良いです。
    • good
    • 0
この回答へのお礼

質問し慣れてなくて、わかりにくい質問になってしまいました。すみません。
2に関してIF関数で表示させる方法良かったら教えていただけますか?

お礼日時:2004/05/16 01:02

#1です。


条件付書式を行全体に設定なさる場合はその行全体を選択した状態で設定しなおすか、範囲を選択してから設定するか、書式をコピーして張り付けるかをしてみてください。
もうすでにひとつ設定なさってますから、コピーして張り付けるのがラクかな。

設定されたセルを選択し、右クリックからコピーを選択します。
書式を貼り付けたいセル範囲を選択し、右クリック→形式を選択して貼り付け→書式でOKかと。
    • good
    • 0
この回答へのお礼

お返事待ってました!嬉しいです。ありがとうございます。
でも、おっしゃるとおりにしてみてもできません。
私の説明がたりなかったのかも。
A列に通し番号、B列に男女混合の氏名、C列に性別(男Or女)、S列までデータが入ってる表をC列の「男」を頼りに表内の行A列からS列迄を簡単に塗りつぶしたいのです。
表は30人くらいの表が24あります。
お願いします。

お礼日時:2004/05/16 01:36

#3です。


1行目には項目があるとして、2行目から設定するとします。
条件付書式を設定したい範囲をすべて選択します。
書式→条件付書式と開きます。
「条件1」で「数式が」「=$C2="男"」の場合で書式を設定します。

Excel2000と2002で確認しました。多分ほかのバージョンでも一緒です。
    • good
    • 0
この回答へのお礼

できました!できましたよ~!!
と~っても嬉しいです。
本当にありがとうございました。
感激です。

お礼日時:2004/05/16 02:19

#2です。



C列に性別の入力があるなら、例えばD2セルに条件付書式の「数式で」で
=$C2="男"
として書式を設定してOK。
D2セルを選択している状態でCtrl+C
塗りつぶしたい範囲(A1~S30セル?)を選択して「編集」→
「形式を選択して貼り付け」→「書式(T)」でOK

上記手順で性別が男のセルの塗りつぶしは可能

●がD列にあるとし「スイカ」と表示させるのは、表示させたい列に
=IF(D2="●","スイカ","")です。
参照セルは適宜読み替えて下さい。

この回答への補足

seroさんありがとうございます。
すごいです!!●スイカできました!
では、こういうのは?
D列に『異常あり』E列に『観察』F列に『異常なし』とそれぞれの行に該当者が『●』印が入力されいている表でG列に『異常あり』は『2』、『観察』は『1』『異常なし』は0を入れる数式を教えていただきたいのですが。
面倒なことをすみません。よろしくお願いします。

補足日時:2004/05/16 02:36
    • good
    • 0

分岐条件が少ないのでIF関数のネストで可能です。


=IF(D2="異常あり",2,IF(E2="観察",1,IF(F2="異常なし",0,"")))

但し、同じ行で複数入力があった場合はD>E>Fの順に優先されます。
    • good
    • 0
この回答へのお礼

何度もありがとうございました。教えていただいた数式ではできず、"異常あり""観察""異常なし"を●に置き換えたらできました。ご丁寧に何度もありがとうございました。

>同じ行で複数入力があった場合はD>E>Fの順に優先されます。 とは、数式で左になるものから優先されると言うことでしょうか?
最後に教えてください。お願いします。

お礼日時:2004/05/16 04:56

>D列に『異常あり』E列に『観察』F列に『異常なし』と・・・・



始まりが 6行目からとして

G6に入る式は、
=IF(D6="●",2,IF(E6="●",1,IF(F6="●",0,"")))

G6以降へのコピーは、

G6をクリックした状態でマウスを、枠内の右下に持って行くと
+のマークが出ます、マークが出た状態で下にドラックすると
7・8・9・・「必要段まで」とコピーされます、
式も変わっていきますから楽ですよ、

=IF(D7="●",2,IF(E7="●",1,IF(F7="●",0,"")))

この回答への補足

G列に数式を入れた後で気付いたのですが、似たような項目がH列以降にもあります。歯垢の状態でH列に『付着なし』I列に『若干付着』J列に『相当付着』がさっきと同様に各行に●で印があります。歯垢の状態をK列に教えていただいた数式を当てはめ『0、1、2』を入れました。L列に歯肉の状態『異常なし』M列に『要観察』N列に『要診断』が●で印O列に教えていただいた数式を当てはめ、『0、1、2』が入りました。そこで、質問なんですが、プリントアウトするときは●印のあった列は印刷したくないのです。
列を削除したら数式入れた列のセルが#REF!になってしまいました。せっかく式を入れたのに・・・何か良い方法はありますが?わかりにくくて大変すみません。

補足日時:2004/05/16 04:56
    • good
    • 0
この回答へのお礼

すごい!本当におっしゃるとおりできましたよぉ。
コピーもあっという間。簡単です!
すばらしいです。
こんな式作ったことないので、どうして思いつくのか感心してしまいます。
あのぅ・・・何か、法則というか、約束事さえ覚えれば、こういった式が作れる訳なんですか?最後は必ず"")にするとか?
コツを教えていただけませんか。

お礼日時:2004/05/16 04:28

質問事項とまったくかけ離れてしまい申し訳ありませんが、



コツ・・・・他の方が作った関数や、教えて!gooの質問や回答など見ていると、
知らない関数や技など分かって楽しいから、とか、

前にも見積もり請求書を作った時の、苦労から覚えた事もあります、

まったく知らなかった時は、セルの関数を1セルごとに書き換えていました、
1セル内5箇所書き換えで、横に5セル縦に20項目で30シート分
5X5X20X30・・・15000 セル番地を書き換えた事があります、(笑)
それも、間違えに気がつくたびで・・・
途中から気が付いたら、今までの苦労はなんなんだと思いました。

気になる、質問や回答は必ずチェックしましょう
    • good
    • 0
この回答へのお礼

う~ん。なるほど。千里の道も一歩からですね。
自分は関数や計算式に関しては全くのド素人です。
これからも勉強していきたいと思います。
あろがとうございました。

お礼日時:2004/05/16 05:42

印刷専用シートを作られては?



先ほどのシートをSheet1として、印刷専用をSheet2にするのはどうでしょうか、

まず、左下のSheet1のタブの上で右クリック→移動又はコピー→
下のコピーを作成するにチェックを入れOKを押す
同じシートが出来ますので、不要項目を消します、

で結果が欲しいところに(先ほどのG6の場合)↓を貼り付けます、

=IF(Sheet1!D6="●",2,IF(Sheet1!E6="●",1,IF(Sheet1!F6="●",0,"")))

ポイントは、
コピーを作ったら、関数は一回消しましょう
結果はSheet1!のG6から直接写さない事かな?
直接 =Sheet1!G6 とすると空白の場合「0」が出てしまいます、
その他名前とか日付は直接でも良いです、
    • good
    • 0
この回答へのお礼

さすが!すごいです。全く思いつかなかったです。
よ~し、作ってみます。
顔も見えないネットで、こんなにも他人のために親切にアドバイスしてくださる人がいるなんて、本当に嬉しいです。
何度もありがとうございました。

お礼日時:2004/05/16 07:53

#6の補足です。



IF関数の基本は
=IF(A=2,B,C)
「Aが2であればB、でなければC」です。

IF関数でネストすると左の条件から順に処理します。
=IF(A=2,B,IF(A=1,C,IF(A=0,D,E)))
「Aが2であればB、でなくてA=1であればC、でなくてA=0であればD、
前述のどれにも該当しなければE」となります。

#6の式であれば、
=IF(D2="●",2,IF(E2="●",1,IF(F2="●",0,"")))
ですので、
D2に●が記述されていれば、例えE2、F2にも●があっても
返ってくる値はD2="●"の条件を満たしている「2」となります。

印刷に関しては#9の方の仰る通り、印刷用のシートが簡単で良いでしょう。
ただ、今後データが増えていく事が判っているなら、追加の度に
いちいち関数式をコピーせずに済むよう工夫したほうが良いですね。

下記は一例です
sheet1の入力表は
=IF(D2="●","2",IF(E2="●","1",IF(F2="●","0","")))
とし、判定結果を数字ではなく文字列で返すようにする。
印刷用のsheet2へ移動し、A1セルに
=Sheet1!A1
と入力して、今後増える予定のセルまで(例えばS1000セルまで)
数式をコピー。
このままではsheet1で空欄になっているセルが「0」と表示されるので
「ツール」→「オプション」→「表示」タブで「ゼロ値(Z)」のチェックを外してOK。
あとは判定用に●を入力している列を削除。
    • good
    • 0
この回答へのお礼

遅くなりましたが、ご丁寧に嬉しかったです。
世の中には頭のいい人がいるもんだな、と感心してしまいます。
seroさん、どうもありがとうございました。

お礼日時:2004/05/30 00:51

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