• ベストアンサー

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

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

  • nanny
  • お礼率55% (72/129)

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

  • ベストアンサー
  • 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
質問者

お礼

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

関連するQ&A

  • エクセル VBA 色が付いているセルを無色にする

    いつも皆様には大変お世話になっております 早速ですが・・・ 色の付いているセルをダブルクリックで無色にしたいのです。 どうしたらいいでしょうかよろしく

  • Excelセルに色をつけるVBAを教えてください。

    A1をクリックすると、セルが赤く塗りつぶしになり、 もう一度A1をクリックすると塗りつぶしなしにするVBAを教えてください。 A2やA3など指定セルも同様にしたいです。

  • 【VBA】 ダブルクリックするとセルの色が変更する

    エクセルのA1:A5の範囲でセルをダブルクリックすると(色なし→赤→青→黄色)に変化する方法を教えて下さい。

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

    セルをクリックするとそのセルの色が変わるといったようなマクロが組めるでしょうか。 色を変えたいのは、C2をクリックする「色あり」となり、D2は「色なし」、逆にD2をクリックすると「色あり」となり、C2は「色なし」にしたいです。 予定ではB2に氏名を入れておき、C2に在席、D2に不在といった感じで、社員の在席表を作成したいと考えております。ですから、コードの対象範囲を増やせるようにもお願いしたいのですが、不可能であれば、20人くらいの管理可能なコードを宜しくお願いいたします。

  • エクセルVBA ダブルクリックで数字を加算

    お世話になります。 エクセルのVBAに関してご質問させてください。 該当セルをダブルクリックするごとに、数字を加算させてゆくようなマクロを組みたいと考えています。 ご存じのかたがおられましたら、なにとぞよろしくお願いいたします。

  • エクセルVBAで元のデータと変わった時に色を・・・

    いつも皆様には大変お世話になっております 早速の質問ですが エクセルVBAで元のデータの入っているセルが色をつけておりまして その元のデータが変わった時にその色を無しにしたいという状況です。 色を変えたいセルはC49からC70までのセルなので Private Sub Worksheet_Change(ByVal Target As Range) For n = 49 To 70 If Cells(n, 3) <> "" Then Target.Interior.Color = xlColorIndexNone End If Next End Sub 一応こんな感じで作ってみたのですが・・・ 上記マクロで謎が2点ありまして (1)なぜかセルのデータを変えたときに薄い青の色がつく (2)どのセルのデータを変えても反応してしまう の2点です まだ(2)の反応してしまうのは何となくわかるのですが(どう直していいかはわかりません;;) (1)の薄い青色がつくのが謎です・・・xlColorIndexNoneって書いているのに・・・ マクロでダブルクリックしたらとか、シートを替えるとといった様なマクロは動かしているのですが、セルのデータを変えて動くようなマクロはまだ作っていないため何かとバッティングしている様な事は無いと思うのですが・・・ 皆様よろしくお願いいたします。

  • セルをクリックしたら色を変えまたくりっくしたらもと

    エクセル2010です。 お願いいたします。 セルをクリックしたら色を変え、またくりっくしたらもと戻す  というのを したいのですが。 詳しく述べます。 セル範囲 (A1:K1) の範囲で そのセルをクリックしたら 黄色 また 同じセルをクリックしたら 色なし というものに できないでしょうか? (A1:K1)以外のセルには、その方式は適応させないものとしたい。 または、オートシェイプを A1 A2 A3 A4 A5 A6 A7 A8 A9 の高さ 幅を ピッタリしたものを 各セルの上に配置して オートシェイプにそれぞれマクロを登録する 形で 同様なものが できてもいいと考えております。 詳しい方アドバイス いただければと 思います。

  • Excel VBA で色付きのセルの値を取得する

    ExcelのVBAマクロで、For ~ Then構文で複数のセルを参照していき、 色付きのセル(塗りなしのセル)に入力されている値のみを取得する方法を教えてください。 Excel2007を使用しています。

  • エクセル VBA

    エクセル VBA セルA1に ”□はい □いいえ”とあり それをダブルクリックすると ?フォームが表示されチェックしますか?と聞きOKなら ■ はい となり   次に続けて ?フォームが表示されチェックしますか?と聞きOKなら ■いいえ となるような マクロの記述は出来るのでしょうか? すいません! 教えてください。

  • Excelのセルをダブルクリックした時のマクロ

    BeforeDoubleClickイベントで、特定のセルをクリックした場合にマクロを実行する方法についての質問です。 例えば セルC1をダブルクリックするとマクロAが実行 セルC2ををダブルクリックするとマクロBが実行 セルC3ををダブルクリックするとマクロCが実行 と、複数のイベントにそれぞれのマクロを実行させたい場合はどうすればよいのでしょうか。 詳しい方がいましたらアドバイス頂けないでしょうかm(_ _ )m

専門家に質問してみよう