
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
定義不足なので、こんな風にやるのはどうですか
多くの品名とセル色のリストを作るのが大変でしょうから・・・
VBAで見える化して
--手作業
作業用シートを作る
元のシート品名の列をコピーして作業用シートA列に貼り付ける
作業用シート表示のまま 下記のVBAを実行
--VBA
Sub SetUpItemsColor()
Dim rng As Range, n As Long
Dim a As Variant, i As Long
Dim R As Integer, G As Integer, B As Integer
Const colm As String = "C"
Set rng = Range("A1:A100")
Columns(colm).Resize(, 2).Clear
With Application
a = .Unique(rng)
For i = 1 To UBound(a)
If .CountIf(rng, a(i, 1)) > 1 Then
R = .RandBetween(0, 255)
G = .RandBetween(0, 255)
B = .RandBetween(0, 255)
With Cells(n + 1, colm)
.Value = a(i, 1)
.Offset(, 1).Interior.Color = RGB(R, G, B)
End With
n = n + 1
End If
Next i
End With
End Sub
C列に重複している品名が出力されます
(重複していない値は出力されない)
D列セルに左対応の暫定色が付きます
--手作業
必要に応じてセルの色を(D列)手動で設定する
例 ”みかん”をオレンジ ”りんご”を赤
重複していても色を付けたくない品名があればそのセル(C,D列)を削除上に詰める(または、D列該当セルに色を付けない)
次に
作業用シート表示のまま 下記VBAを実行
--VBA
Sub ColorAllocation()
Dim rng As Range, duplicate_item As Range
Dim c As Range, dupCell As Range
Set rng = Range("A1:A100")
Set duplicate_item = Range("C1", Cells(Rows.Count, "C").End(xlUp))
For Each dupCell In duplicate_item
For Each c In rng
If c.Value = dupCell.Value Then
c.Interior.Color = dupCell.Offset(, 1).Interior.Color
End If
Next c
Next dupCell
End Sub
A列の各セルに設定色が付きます
手動で列をコピーし元のシート列に貼り付ける
No.3
- 回答日時:
forループを2重にすれば良いのでは?
for i= 1 to 100
i行目の文字が色付きで無いなら then
色を決める
for j= i+1 to 100
i行目とj行目が同じなら then
i行目とj行目に決めた色を付ける
end if
next j
end i
next i
No.1
- 回答日時:
定義が不足していると思うけれど・・例からすると曖昧ですね
重複している値は最大でいくつ?わかりますよね
もし例の様に指定するなら各アイテムの値とそれに紐づく色をリストなどにする必要がありますね
重複している値同士が単に同じ色で良いなら下記の様なコードで色分けできます
(低い確率ですがランダムで色を指定しているのでバグの可能性があります)
総当たりとフィルタ機能を使う2例(他にも出来そうかな)
Sub Sample()
'シートフィルタ
Dim rng As Range
Dim duplicate_item
Dim i As Integer
Dim R As Integer, G As Integer, B As Integer
Rows(1).Insert shift:=xlShiftDown
Set rng = Range("A1:A101")
rng.Interior.ColorIndex = 0
With Application
duplicate_item = .Unique(rng)
For i = 1 To UBound(duplicate_item)
If .CountIf(rng, duplicate_item(i, 1)) > 1 Then
rng.AutoFilter Field:=1, Criteria1:=duplicate_item(i, 1)
R = .RandBetween(0, 255)
G = .RandBetween(0, 255)
B = .RandBetween(0, 255)
rng.SpecialCells(xlCellTypeVisible).Interior.Color = RGB(R, G, B)
End If
Next
End With
rng.AutoFilter Field:=1, Criteria1:=""
rng.SpecialCells(xlCellTypeVisible).Interior.ColorIndex = 0
rng.AutoFilter
Rows(1).Delete shift:=xlShiftDown
End Sub
Sub Sample1()
'条件による総当たり
Dim rng As Range, c As Range
Dim a As Variant, i As Integer
Dim R As Integer, G As Integer, B As Integer
Set rng = Range("A1:A100")
rng.Interior.ColorIndex = 0
With Application
a = .Unique(rng)
For i = 1 To UBound(a)
If .CountIf(rng, a(i, 1)) > 1 Then
R = .RandBetween(0, 255)
G = .RandBetween(0, 255)
B = .RandBetween(0, 255)
For Each c In rng
If c.Value = a(i, 1) Then
c.Interior.Color = RGB(R, G, B)
End If
Next c
End If
Next i
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- その他(Microsoft Office) EXCELのセルへの色づけ 2 2023/06/07 01:22
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Excel(エクセル) エクセル関数に詳しい方、教えてください(テキスト関数と条件付書式) 1 2024/04/11 02:44
- Visual Basic(VBA) チームごとにどの商品を何個希望しているか数量を算出したいです。 A列(A2~A265)に各チーム名が 3 2023/07/18 18:46
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 17:07
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- グループウェア 重複データの抽出について。 1 2024/01/02 13:25
このQ&Aを見た人はこんなQ&Aも見ています
-
excelVBAについて。
Excel(エクセル)
-
セル内が空白設定なのに#N/Aと出てくるのを回避する方法を教えてください。
Excel(エクセル)
-
VBA Application.Matchについての質問です
Visual Basic(VBA)
-
-
4
エクセル初心者です 用語とか良く分からないので簡単に説明していただけると幸いです 表を作っているので
Excel(エクセル)
-
5
【マクロ】文字列の一部を削除したいの件
Excel(エクセル)
-
6
エクセルでVLOOKUPの入ったセルをカウントしない方法
Excel(エクセル)
-
7
excelvbaでcsvファイルをセルに格納する。
Excel(エクセル)
-
8
excelVBAについて。
Excel(エクセル)
-
9
エクセルで、数字ではない値(文字列)が入った場合の計算式を教えてください。
Excel(エクセル)
-
10
エクセルのデータ整理の方法
Excel(エクセル)
-
11
Excelの罫線を消す方法
Excel(エクセル)
-
12
【マクロ】重複する同じ行を、削除でなく1番下の行に回し色を付ける為には
Excel(エクセル)
-
13
ユーザーマクロ作成
Excel(エクセル)
-
14
Excelの計算で差分を求める場合について
Excel(エクセル)
-
15
エクセル マクロVBAについて教えてください。
その他(Microsoft Office)
-
16
excelVBAについて。
Excel(エクセル)
-
17
条件付き書式の効率的な設定の仕方について
Excel(エクセル)
-
18
エクセルマクロについて教えて下さい。
Excel(エクセル)
-
19
エクセルシート保護を解除させない方法。
Excel(エクセル)
-
20
8:40までの出勤は全て8:30にする関数を教えて下さい!!
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Officer360?Officer365?の...
-
勤怠表について ABS、TEXT関数...
-
Excelで4択問題を作成したい
-
エクセル
-
エクセルの関数について
-
エクセルの表で作業してます。 ...
-
グループごとの個数をカウント...
-
エクセルの複雑なシフト表から...
-
エクセルについて
-
エクセルシートの見出しの文字...
-
エクセル GROUPBY関数について...
-
【マクロ】実行時エラー '424':...
-
Excelに貼ったXのURLのリンク...
-
Amazonでマイクロソフトオフィ...
-
グループごとの人数のカウント
-
【マクロ】変数に入れるコード...
-
UNIQUE関数の代用
-
ページが変なふうに切れる
-
空白のはずがSUBTOTAL関数でカ...
-
グループごとの人数のカウント
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報