再質問です。
VBAでの色塗りに苦戦しています。
例えば、B列とD列にランダムに下記(1)~(7)の文字列が配列しています。
COUNTIF関数によって
それぞれの文字列の数をカウントします。
(1)みかん 3
(2)サイダー 2
(3)いちご 6
(4)キウイ 8
(5)なし 1
(6)ぶどう 4
(7)チョコ 3
文字列の数によって、1セルずつ右に色塗りをしたいのです。
出発点、色は下記の通り、H列からBA列で色塗り終了です。
入力によって色塗りはどんどん右にのびていくことになりますが
BA列に到達してからは、それ以上入力しても反映させません。
(1)みかん →H列11行目、黄色
(2)サイダー →H列12行目、水色
(3)トマト →H列13行目、赤色
(4)キウイ →H列14行目、緑色
(5)なし →H列15行目、白色
(6)ぶどう →H列16行目、紫色
(7)チョコ →H列17行目、茶色
以上、よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんばんは!
前回似たような質問に投稿した者です。
>文字列の数によって、1セルずつ右に色塗りをしたいのです・・・
の部分で、解釈が違っていたらごめんなさい。
B・D列のセル配置が判らないので勝手に↓の画像の配置にしています。
コマンドボタンを配置して、クリックするとD列の数だけ色がつくようにしてみました。
Private Sub CommandButton1_Click()
Dim i, j, k, L As Long
For k = 11 To 17
For i = 1 To 7
j = Cells(k, Columns.Count).End(xlToLeft).Column + 1
If Cells(k, 7) = Cells(i, 2) And j <= 53 Then
L = j + Cells(i, 4) - 1
If L > 53 Then
L = 53
End If
With Range(Cells(k, j), Cells(k, L))
.Value = 1
.Font.ColorIndex = Cells(k, 7).Interior.ColorIndex
.Interior.ColorIndex = Cells(k, 7).Interior.ColorIndex
End With
End If
Next i
Next k
End Sub
※ 「白」は塗りつぶしているかどうか判らないので「灰色25%」にしています。
※ F列にA列データを入力・セル色は色サンプルとして塗りつぶしています。
尚、H列以降のセルには「1」のデータを入れていますので、最初からやり直す場合は
データを削除し、「セルの塗りつぶし」なし
にして行ってみてください。
外していたらごめんなさいね。m(_ _)m
No.2
- 回答日時:
No.1です!
たびたびごめんなさい。
前回は色付だけでしたが、実際は色を消すマクロも必要だと思いますので
もう一度コードを載せてみます。
今回は「コマンドボタン」にしていません。
Sub 色付()
Dim i, j, k, L As Long
For k = 11 To 17
For i = 1 To 7
j = Cells(k, Columns.Count).End(xlToLeft).Column + 1
If Cells(k, 7) = Cells(i, 2) And j <= 53 Then
L = j + Cells(i, 4) - 1
If L > 53 Then
L = 53
End If
With Range(Cells(k, j), Cells(k, L))
.Value = 1
.Font.ColorIndex = Cells(k, 7).Interior.ColorIndex
.Interior.ColorIndex = Cells(k, 7).Interior.ColorIndex
End With
End If
Next i
Next k
End Sub
Sub リセット()
If MsgBox("色を削除しますか?", vbYesNo) = vbYes Then
With Range("H11:BA17")
.ClearContents
.Interior.ColorIndex = xlNone
End With
Else
Exit Sub
End If
End Sub
※ 前回同様、G列にはB列のデータを入力(順番は変わっても問題ありません)しておき、
塗りつぶしたい色でセルを塗りつぶしておきます。
参考になりますかね?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロを2つご指南ください 3 2023/01/02 12:16
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- Excel(エクセル) 条件付き書式の色付きセルのカウント方法について 2 2022/10/21 14:51
- Excel(エクセル) Excel_マクロ_アクティブシートのVLOOKUPで表示された#N/A以外の行に色付けをしたいです 3 2023/02/17 00:40
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- その他(Microsoft Office) 【スプレッドシート】白色のセルをカウントしたい 2 2023/02/24 07:39
- Excel(エクセル) エクセルVBAで次の二つを行いたいのですが思うように動きません。どう修正したらよいのでしょうか? 2 2023/04/22 14:55
- Excel(エクセル) エクセルの関数について 5 2023/04/30 17:24
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
エクセルで二つの数字の小さい...
-
LOOKUP関数を使えばいいのでし...
-
VBAで文字列を数値に変換したい
-
PowerPointで表の1つの列だけ...
-
エクセルの表から正の数、負の...
-
エクセル 文字数 多い順 並...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
Excelで半角の文字を含むセルを...
-
エクセルの項目軸を左寄せにしたい
-
Excel、市から登録している住所...
-
エクセル(勝手に太字になる)
-
50人を数回、グループ分けする...
-
エクセルで文字が混じった数字...
-
エクセルの並び変えで、空白セ...
-
オートフィルターをかけ、#N/A...
-
VBA 連続行データを5行ずつ隣の...
-
Excelで、A列にある文字がB列...
-
エクセルで2列のセルを連続して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
エクセル 同じ値を探して隣の...
-
VBAで文字列を数値に変換したい
-
エクセルの並び変えで、空白セ...
-
Excelで半角の文字を含むセルを...
-
エクセルで文字が混じった数字...
-
Excel、市から登録している住所...
-
A列がない・・・A列が非表示に...
-
エクセルの表から正の数、負の...
-
[関数得意な方]教えて下さい・...
-
エクセルの項目軸を左寄せにしたい
-
エクセル 時間帯の重複の有無
-
Excelにてある膨大なデータを管...
おすすめ情報