[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件式書式を6つやりたいんですが・・・』(sirouto)
過去ログ見て見たんですが、VBA?というのを使うっていうのは分かりました。
しかしメモ帳?みたいなのに書き込む部分が分かりません。どうか素人にも
わかりやすいように教えていただけませんでしょうか?具体的に何がやりた
いかというと、”さる”だったら”赤”(セルの背景)、”くま”だったら”青”、
”とり”だったら”黄色”・・・とかいうのを6つ作りたいのです。
変な質問でしたら申し訳ありません。OSは2000で、バージョンも2000です。
どうぞよろしくお願い致します。
設定したいシートのシートタブを右クリックして、コードの表示
出てきたメモ帳みたいなVBA画面のシートモジュールに以下をコピペしてください。
A列を対称にしていますので、A列に ねこ などと入力してみてください。
Private Sub Worksheet_Change(ByVal Target As Range)
'変数宣言
Dim colr As Integer
Dim c As Variant
If Target.Count > 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
For Each c In Target
Select Case c.Value
Case "さる"
colr = 3 'ここの色番号をお好きなように
Case "くま"
colr = 5 '々
Case "とり"
colr = 6 '々
Case "いぬ"
colr = 4 '々
Case "ねこ"
colr = 8 '々
Case "あゆ"
colr = 7 '々
Case Else
colr = xlNone
End Select
c.Interior.ColorIndex = colr
Next c
End Sub
色や、動物の名前はお好みに合わせてください。
カラー番号は以下を参考にどうぞ。
(川野鮎太郎)
おはようございます。 なかなか本を見ても判らないし、最近はネット上に沢山の情報が掲載されています。 [[20040915221444]]『マクロ開始のボタンの作成』(T) こちらでINAさんが紹介されているページをご覧になってみては^^
※4回目の使いまわし(^_^A;
でも、1冊ぐらいは持っていても良いかもしれませんね。 どんな本が良いかはご自分で手にとって中を[壁]_・)チラッと眺めて 判りやすそうなものを選べば良いかもしれません。
下もサンプル付きで判りやすいページです。 http://www.asahi-net.or.jp/~ef2o-inue/menu/menu04.html
(川野鮎太郎)
『川野鮎太郎さん、こんにちは!またまたご丁寧にありがとうございます!
市販の本にも負けず劣らず素晴らしいサイトが色々とあるんですねぇ。教えて
下さってありがとうございます!これからエクセルを勉強していく予定です。
またこちらの掲示板に書き込みさせて頂くこともあるかと思います。その時は
またどうぞよろしくお願い致します!(すいません、もうひとつ質問が
あって、トピ作ろうと思います。よろしければ教えて下さい。)』
(sirouto)
ふと考えたんですが、if関数を使って上記のことって出来ますでしょうか?? (sirouto)
VBAのコードをSelect Case ではなく、IF関数でってことでしょうか? それは出来ます。
それとも、IF関数を使って条件付書式でしょうか? こちらは、3色までしか出来ません。
(川野鮎太郎)
If Target.Column <> 1 Then Exit Sub
の数字の部分を変えればよろしいのでしょうか?すいませんが教えて頂けないでしょうか?よろしくお願い致します。(はげちゃびん)
こんにちは。 >Fontの色を変えたいのですが・・・ c.Interior.ColorIndex = colr を c.Font.ColorIndex = colr です。
>また対象とする列は、・・・ If Target.Column <> 1 Then Exit Sub ~~~~~~~~~~~~列が1列目以外中止ですから。 C列を対象の場合は、 If Target.Column <> 3 Then Exit Sub です。
(川野鮎太郎)
If Target.Count > 5 Then Exit Sub
If Target.Column <> 5 Then Exit Sub
また、複数の列に同じ条件を反映させたい場合はどうやったら出来ますか?すいませんが、教えてください。
> If Target.Count > 5 Then Exit Sub ここは1のままです。 複数セル同時削除や複数コピペなどのときにエラーになるのを 防いでいます。
で、今気づいたんですが、上のコードは以前複数セル対応で作ったやつの使いまわしで
不要なものが入ってました。(^_^A;
Private Sub Worksheet_Change(ByVal Target As Range)
'変数宣言
Dim colr As Integer
If Target.Count > 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
Select Case Target.Value
Case "さる"
colr = 3 'ここの色番号をお好きなように
Case "くま"
colr = 5 '々
Case "とり"
colr = 6 '々
Case "いぬ"
colr = 4 '々
Case "ねこ"
colr = 8 '々
Case "あゆ"
colr = 7 '々
Case Else
colr = xlNone
End Select
Target.Interior.ColorIndex = colr
End Sub
>複数の列に同じ条件を反映させたい場合 何列ぐらいありますか、またその列はどの列ですか。
'5列、6列、8列以外は無視
If Not (Target.Column = 5 Or _
Target.Column = 6 Or _
Target.Column = 8) Then Exit Sub
などで対応できます。
(川野鮎太郎)
以下雑文。
〜応用する場合の考え方〜
「やや、セルの色を条件によって変更するマクロがあるぞ、これは便利だ」
「でもセルの色じゃなくてフォントの色を変更したいんだよなぁ」
「ちょっと改造すれば出来そうだけど、でも何処を変更すればいいのかよく解らないや…」
「そうだ、『マクロの記録』で『セルの色を変更する手順』と『フォントの色を変更する手順』を記録してみよう!」
「まずはセルの色を『黄色』にするマクロを記録して…記録終了…
つぎにフォントの色は『赤』にして同じ事をやって…Alt+F11でVBEの画面を表示して結果を見てみよう」
Sub Macro1()
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub
Sub Macro2()
Selection.Font.ColorIndex = 3
End Sub
結果、上記のようなマクロが出来上がった。
「Macro1がセルの色を変更するマクロでMacro2がフォントの色を変更するマクロか…
どうやら共通してるのは『Selection』と『ColorIndex』と言う部分だな」
「Selectionは『Select』っていう意味からしてきっと『選択しているセル』って事だろう。
ColorIndexは『Color』だし、きっと『色に関する設定』って事だな。」
「Macro2を見ると『Font』って書いてあるな…きっとこれが『フォントに対する設定をするぞ』ていう意味なんだろう。
じゃあ『セルに対する設定』っていうのは…Macro1にある『Interior』なのかな?
他のは意味がわからないけど…」
「取り合えずこれと川野鮎太郎さんのマクロと見比べてみよう…
これはセルの色を変更するマクロだからきっと『Interior』や『ColorIndex』が出てくるに違いない」
「お、やっぱり『c.Interior.ColorIndex = colr』って書いてある。ここがきっと『セルの色』って意味なんだ!」
「さっき自分で記録したマクロを元に考えてみると…フォントの色を設定する時は確か『Font』だったよな…」
「じゃあ、
『c.Interior.ColorIndex = colr』を
『c.Font.ColorIndex = colr』と
書き換えて、ためしに実行してみたらどうだろう?」
「…やった!うまい事フォントの色が変わるようになった!」
みたいな。
TargetやらColumnやらについて知るには、ヘルプを引いたりどこかのサイトなどで多少の勉強が必要かもだけど。
(ご近所PG)
ご近所PGさん、おはようございます。m(._.)m ペコッ いつもながら判りやすい解説&フォローありがとうございます。 (川野鮎太郎)
おぉ〜 わかりやすい!! ご近所PGさんの書いていただいたレスは、考え方の流れやコツ等がわかりやすい〜 私達、初心者にとってはこれはありがたいものです(^^) (キリキ)感謝々々
空欄の場合でも > Case Else > colr = xlNone で引っかかるはずです。 つまりは色を消すようになっています。 また、実際に動作させた所、当方環境では特に問題は無く動きます。 『エラー発生個所』及び『エラー内容』、可能であれば『再現手順』を明記してください。 (ご近所PG)Windows2000 Excel2000
Case 2 To 3.4
colr = 3
Case 3.5 To 3.9
colr = 5
Case 4 To 5.9
colr = 6
Case 6 To 9.9
colr = 4
こんばんは。
コピペでも一つのセルだったら変わるはずですけど。 複数セルのコピペ、削除に対応させるならコードを少し修正しなければいけません。
(川野鮎太郎)
こんな感じでしょうか。
Private Sub Worksheet_Change(ByVal Target As Range)
'変数宣言
Dim colr As Long
Dim c As Range
'定数宣言
Const LCol As Long = 5 '処理する左端列
Const RCol As Long = 10 '処理する右端列
If Target.Column < LCol Or Target.Column > RCol Then Exit Sub
For Each c In Target
If Not (c.Column < LCol Or c.Column > RCol) Then
Select Case c.Value
Case 2 To 3.4
colr = 3
Case 3.5 To 3.9
colr = 5
Case 4 To 5.9
colr = 6
Case 6 To 9.9
colr = 4
Case Else
colr = xlNone
End Select
c.Interior.ColorIndex = colr
End If
Next c
End Sub
(川野鮎太郎)
はじめまして。私も条件付書式で分からなくて、いろいろ探していて、ここにたどり着きました。
ズブの素人で恥ずかしいのですが、教えていただけますでしょうか。
e列(5)に”さる”を入れたら青、”くま”・・はできたのですが、その時連動してd列(4)も同じ色で塗られるようにしたいのですが。
できたらヨロシクお願いします。
新しくスレッド立てたほうがいいですよ。
同じようなこと というのは 全く違う と同じことなので、どこがどうなった場合どうしたいのかを 表をできるだけ正確に作って質問してみましょう。
https://www.excel.studio-kazu.jp/cgi-bin/kazuwiki2.cgi?mycmd=new
(とおりすがっ太)
ありがとうございます。
新たに質問をいたします。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.