- ベストアンサー
エクセルのマクロで複数のセルに色付する方法
エクセル2003にて質問です。 ダブルクリックをすると、その行のAからHのセル (例えば1Bでダブルクリックすると1Aから1Hまで、3Hでダブルクリックすると3Aから3Hまで)が、一番薄い灰色に塗られる という設定って可能でしょうか??? 無理なら、?Aでダブルクリックすると?A~?Hでも構いません。 よくA~Hまでの横の行に対して灰色やピンクなどで色付けするのですが横スクロールを伴いますし、他のセルも間違って選択してしまう等で困っています。 また、もう一度ダブルクリックで元にもどるって機能もあれば最高です。 誰かわかる方おしえてください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
標準モジュールではなくシートのモジュールにコピペしてみてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim r As Long If Target.Columns >= 8 Then Exit Sub r = Target.Row If Range(Cells(r, "A"), Cells(r, "H")).Interior.ColorIndex = xlNone Then Range(Cells(r, "A"), Cells(r, "H")).Interior.ColorIndex = 15 Else Range(Cells(r, "A"), Cells(r, "H")).Interior.ColorIndex = xlNone End If Cancel = True End Sub
その他の回答 (1)
- n-jun
- ベストアンサー率33% (959/2873)
こんな感じでしょうか? Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim r As Range Set r = Intersect(Target, Range("A:H")) If r Is Nothing Then Exit Sub With Range("A" & r.Row).Resize(, 8).Interior If .ColorIndex = xlNone Then .ColorIndex = 15 .Pattern = xlSolid ElseIf .ColorIndex = 15 Then .ColorIndex = xlNone End If End With End Sub
お礼
素早い回答ありがとうございます。 非常に助かりました。
お礼
ありがとうございます。 希望どおりで大変うれしいです。明日から仕事でさっそく使わせて頂きます。