
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
excelVBAについて。
Excel(エクセル)
-
エクセル初心者です 用語とか良く分からないので簡単に説明していただけると幸いです 表を作っているので
Excel(エクセル)
-
セル内が空白設定なのに#N/Aと出てくるのを回避する方法を教えてください。
Excel(エクセル)
-
-
4
エクセルでVLOOKUPの入ったセルをカウントしない方法
Excel(エクセル)
-
5
【マクロ】文字列の一部を削除したいの件
Excel(エクセル)
-
6
excelvbaでcsvファイルをセルに格納する。
Excel(エクセル)
-
7
VBA Application.Matchについての質問です
Visual Basic(VBA)
-
8
excelVBAについて。
Excel(エクセル)
-
9
エクセルで、数字ではない値(文字列)が入った場合の計算式を教えてください。
Excel(エクセル)
-
10
Excelの罫線を消す方法
Excel(エクセル)
-
11
エクセルのデータ整理の方法
Excel(エクセル)
-
12
【マクロ】重複する同じ行を、削除でなく1番下の行に回し色を付ける為には
Excel(エクセル)
-
13
ユーザーマクロ作成
Excel(エクセル)
-
14
エクセル
Excel(エクセル)
-
15
excelVBAについて。
Excel(エクセル)
-
16
UNIQUE関数、配列数式を使わずに品名ごとの集計を求めたい
Excel(エクセル)
-
17
excelVBAについて。
Excel(エクセル)
-
18
excelVBAについて。
Excel(エクセル)
-
19
excelVBAについて。
Excel(エクセル)
-
20
エクセル初心者です 用語等まだ良く分からないので簡単に説明していただけると幸いです タブの挿入、図形
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
表計算ソフトでの様式の呼称
-
vba テキストボックスとリフト...
-
エクセルのVBAで集計をしたい
-
【マクロ】数式を入力したい。...
-
【マクロ】実行時エラー '424':...
-
【マクロ】元データと同じお客...
-
【マクロ】左のブックと右のブ...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
【マクロ】【配列】3つのシー...
-
Office2021のエクセルで米国株...
-
【マクロ】【相談】Excelブック...
-
エクセルでフィルターした値を...
-
【画像あり】【関数】指定した...
-
エクセルのリストについて
-
エクセルに写真が貼れない(フ...
-
エクセルのライセンスが分かり...
-
エクセルの複雑なシフト表から...
-
【関数】=EXACT(a1,b1) a1とb1...
-
エクセルシートの見出しの文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報