• ベストアンサー

エクセル VBA セルをクリックすると色が変わる

いつも皆様には大変お世話になっております。 早速ですが、VBAでセルをクリック(もしくはダブルクリック)するとそのセルの色が変わるといったようなマクロが組めるでしょうか。 色を変えたいのは、A1~A4までの4個のうち1個だけなのでA1がクリックされればA2~A4までは『色なし』にしたいのです。 そんなことは出来るでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。 1. シート選択タブ上で右クリック[コードの表示] 2. 下記のコードをコピー&ペースト Private Sub Worksheet_SelectionChange(ByVal Target As Range)   ' 動作させるセルのアドレス   Const ADDR As String = "A1:A4"   ' 着色するセル背景色のカラーインデックス   Const CIDX As Long = 36      If Union(Target, Range(ADDR)).Address(0, 0) = ADDR Then     If Target.Count = 1 Then      Range(ADDR).Interior.ColorIndex = xlColorIndexNone      Target.Interior.ColorIndex = CIDX     End If   End If End Sub

nanny
質問者

お礼

早速の返事ありがとうございます お~!! すごいです!! ばっちり望んでいたものです!! またこれを参考に色々と作ってみます! 本当にありがとうございました

その他の回答 (1)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

「クリックすると」というイベントを拾う方法がわからないので、ダブルクリックすると、にしてみました。 シートタブを右クリックして「コードの表示」を選択するとVBAの画面が出るので、右の白いところに以下のマクロをコピーして貼り付けてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)  Dim Rng As Range, myRng As Range  Set Rng = Range("A1:A4")  Set myRng = Intersect(Target, Rng)  If myRng Is Nothing Then Exit Sub  Rng.Interior.ColorIndex = xlColorIndexNone  myRng.Interior.ColorIndex = 5  Cancel = True End Sub これで、A1からA4までのどれかをダブルクリックすると、そのセルが青くなります。色を変えたいときは、上の「5」という数字を適当に変えてください。(VBAのヘルプで「ColorIndex」で検索すると、数値と色の対応表が出てきます) なお、普通はダブルクリックするとそのセルは入力状態になりますが、上のマクロではならないようにしています。ダブルクリックして色を変えた後、そのセルを入力状態にするのであれば、最後の  Cancel = True を削除してください。

nanny
質問者

お礼

早速のお返事ありがとうございます。 皆様すごいですね 『普通はダブルクリックするとそのセルは入力状態になりますが』 これを止めることが出来るとは思っていませんでした またこれを参考にがんばってみます ありがとうございました。