Excel VBA マクロについて、特定の背景色だけを別

Writer: admin Type: arte Date: 2019-01-08 00:00
Excel VBA マクロについて、特定の背景色だけを別のセルへ移動させることは可能でしょうか。下の画像のような20×20のセル上に、黄色のセルから何セル離れているか、数値をふっています。M12 にある青く塗りつぶされた背景色のみを移動させたいのですが、可能でしょうか。具体的には、青く塗りつぶされたセルを含む周囲9セルのうち、最も数値の小さいセルへ移動するマクロが組みたいのですが、背景色のみの移動が出来ず困っています、もし、そのような事が可能であれば、その方法もご教示して頂けると助かります。###色を複数色にしたのと、移動方向を0に集まるように変更。Sub 色移動()Dim MyRange As RangeDim CurCell As Variant, TmpCell As Range, NxtCell As RangeDim i As Long, j As Long, MinValue As LongDim Arr(4) As LongArr(0) = 8Arr(1) = 3Arr(2) = 4Arr(3) = 7Arr(4) = 5For i = 0 To 4With Application.FindFormat.Clear.Interior.ColorIndex = Arr(i)End WithSet MyRange = Range("C3:V22")Set CurCell = MyRange.Find("*", , , , , , , , True)If CurCell Is Nothing Then GoTo NXTEnd IfSet TmpCell = NothingSet NxtCell = NothingMinValue = CurCellFor j = 0 To 8If CurCell.Column >= 13 ThenSet TmpCell = CurCell.Offset((j Mod 3) - 1, (j \ 3) - 1)ElseSet TmpCell = CurCell.Offset((j Mod 3) - 1, -((j \ 3) - 1))End IfIf TmpCell < MinValue And _Not Intersect(TmpCell, MyRange) Is Nothing ThenMinValue = TmpCellSet NxtCell = TmpCellEnd IfNext jIf Not NxtCell Is Nothing ThenCurCell.Interior.ColorIndex = xlNoneNxtCell.Interior.ColorIndex = Arr(i)End IfNXT:Next iEnd Subナイス0
###2度も丁寧にありがとうございます(>_<)複数のカラーインデックスの背景色で同時に動いてほんとに理想通りのものでした!拙い説明だったのにも関わらずここまでして頂いて、、、ほんとにありがとうございますm(,_,)mここから工夫を凝らして行こうと思います。
###最も数値の小さいセルの背景色を青にして、今の青を消せば(標準?)良いのでは?手作業で行なってマクロの自動記録で取り敢ずは出来そうな気はしますよ。ナイス0

 

TAG