お世話になります
都道府県別に訪問者と数量に色を一括に塗りたいのですが(セル)
たとえばAボタンBボタンCボタンを3つ作成し
Aボタンを押すと東京、大阪は青色に
Bボタンは名古屋、札幌を黄色に
Cボタンは九州、四国で赤色に
|訪問者|数量|場所|
|太郎 |1121|大阪|
|四郎 |3321|四国|
|山田 |3000|札幌|
|斉藤 |2000|東京|
|無色 |1000|未定|
上記Aボタンを押すと大阪と東京にいる訪問者と数量に青色を塗りたいのです。
Bなら札幌の山田と3000に黄色とセルの色を付けたい
2000列ぐらいあるので一括で希望です。
わかる方ご教授よろしくお願い致します
No.1ベストアンサー
- 回答日時:
こんなのではどうでしょう?
訪問者,数量,場所が各々A,B,C列だとします。
A,B,CボタンをCommandButton1,CommandButton2,CommandButton3とします。
訪問者と数量の色を変えていますが、場所の色も変える場合は、Resize(1, 2)をResize(1, 3)にしてください。
チェックの方法は、カンマで囲まれた文字があるかどうかでチェックしています。
Private Sub CommandButton1_Click()
checkData "東京,大阪", vbBlue
End Sub
Private Sub CommandButton2_Click()
checkData "名古屋,札幌", vbYellow
End Sub
Private Sub CommandButton3_Click()
checkData "九州,四国", vbRed
End Sub
Private Sub checkData(place As String, color As Long)
Dim r As Long
For r = 2 To Cells(Rows.Count, 3).End(xlUp).Row
If InStr("," & place & ",", "," & Cells(r, 3) & ",") > 0 Then
Cells(r, 1).Resize(1, 2).Font.color = color
Else
Cells(r, 1).Resize(1, 2).Font.color = vbBlack'対象外の色を黒にする場合
End If
Next
End Sub
No.2
- 回答日時:
こんにちは。
一括で塗るという部分にこだわってみました。
サブルーチンの
FilterSeting 範囲, 色番号, 地域名1, 地域名2, ....
というように入れます。ご質問者さんは、色番号(ColorIndex)については、ご存知だと思いますから、詳しくは説明いれません。必要なら、ヘルプをごらんになってください。色塗りは、フォントの場合は、原色で、塗りつぶしの場合は、パステルカラーが良いようです。
地域名の引数のパラメータは、30個程度までは可能だったと思います。
行数は、数千程度なら、まったくストレスを感じせずに塗ることが可能だと思います。
'シートモジュールのみ
'--------------------------------------------------------
Private Sub CommandButton1_Click()
FilterSeting Range("A1").CurrentRegion, 34, "東京", "大阪"
End Sub
Private Sub CommandButton2_Click()
FilterSeting Range("A1").CurrentRegion, 36, "名古屋", "札幌"
End Sub
Private Sub CommandButton3_Click()
FilterSeting Range("A1").CurrentRegion, 7, "九州", "四国"
End Sub
Private Sub FilterSeting(rng As Range, iColor As Integer, ParamArray args())
Dim arg_tmp(1) As String
Dim n As Integer
Dim k As Variant
Dim j As Integer
Dim i As Integer
k = UBound(args())
Application.ScreenUpdating = False
With rng
.Interior.ColorIndex = xlNone '色戻し
For n = 0 To k Step 2
'パラメータの代入
Do Until (k < 0) Or (j > 1)
arg_tmp(j) = args(i)
k = k - 1
i = i + 1
j = i
Loop
'オートフィルタによる色づけ
If ActiveSheet.AutoFilterMode Then
.AutoFilter
End If
.AutoFilter Field:=3, _
Criteria1:="=" & arg_tmp(0), _
Operator:=xlOr, _
Criteria2:="=" & arg_tmp(1)
On Error Resume Next
.Offset(1, 1).Resize(.Rows.Count - 1, 2).SpecialCells(xlCellTypeVisible) _
.Interior.ColorIndex = iColor 'パターン・色付け
'.Font.ColorIndex = iColor 'フォント・色づけ
On Error GoTo 0
.AutoFilter
'カウント消去
If j > 1 Then
j = 0
Erase arg_tmp()
End If
Next n
End With
Application.ScreenUpdating = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関西弁はなぜ人を不快にさせる...
-
JRで神戸駅から大阪まで 快...
-
話してる時に『〇〇〇〇じゃな...
-
贈呈式の司会進行の原稿につて
-
キャバ嬢です。 お客様が好きに...
-
大阪人ってどうして威圧的なん...
-
くら寿司WiFiパスワード分から...
-
大阪に合わない
-
日本へ架ける国際電話のcountry...
-
関西弁で言う「ええしの子」の...
-
呼び出しの「元」と「先」って...
-
「無理しないでね」って意味だ...
-
大阪人ですが、大阪人が嫌いで...
-
電話番号の最初の3桁や4桁って...
-
風俗の大阪のアポロビルみたい...
-
大阪で29cm以上の靴を扱っている店
-
電信棒という表現は方言ですか?
-
あのさあ
-
友達(東京人)が大阪が合わな...
-
毎回変わる範囲を検索し、コピ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関西弁はなぜ人を不快にさせる...
-
くら寿司WiFiパスワード分から...
-
JRで神戸駅から大阪まで 快...
-
キャバ嬢です。 お客様が好きに...
-
日本へ架ける国際電話のcountry...
-
「無理しないでね」って意味だ...
-
話してる時に『〇〇〇〇じゃな...
-
大阪に合わない
-
関西弁で言う「ええしの子」の...
-
風俗の大阪のアポロビルみたい...
-
大阪人ってどうして威圧的なん...
-
電信棒という表現は方言ですか?
-
大阪人ですが、大阪人が嫌いで...
-
ひつこい。しつこい。どちらが...
-
「○○さんの家」という意味で「...
-
関西のノリがほんとにしんどいです
-
友達(東京人)が大阪が合わな...
-
鹿児島から大阪までの距離を知...
-
贈呈式の司会進行の原稿につて
-
電話番号の最初の3桁や4桁って...
おすすめ情報