• ベストアンサー

エクセルのマクロで複数のセルに色付する方法

エクセル2003にて質問です。 ダブルクリックをすると、その行のAからHのセル (例えば1Bでダブルクリックすると1Aから1Hまで、3Hでダブルクリックすると3Aから3Hまで)が、一番薄い灰色に塗られる という設定って可能でしょうか??? 無理なら、?Aでダブルクリックすると?A~?Hでも構いません。 よくA~Hまでの横の行に対して灰色やピンクなどで色付けするのですが横スクロールを伴いますし、他のセルも間違って選択してしまう等で困っています。 また、もう一度ダブルクリックで元にもどるって機能もあれば最高です。 誰かわかる方おしえてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.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

prtcw794
質問者

お礼

ありがとうございます。 希望どおりで大変うれしいです。明日から仕事でさっそく使わせて頂きます。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

こんな感じでしょうか? 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

prtcw794
質問者

お礼

素早い回答ありがとうございます。 非常に助かりました。

関連するQ&A