ここから本文です

エクセルで「クリックするだけで塗りつぶし」にするには、どうすればいいですか?

lif********さん

2011/6/117:02:53

エクセルで「クリックするだけで塗りつぶし」にするには、どうすればいいですか?

エクセルでチェックシートを作成中です。

印刷した物に現場でチェックを入れ、事務所に戻ってからPCのエクセルファイルに入力する…という使い方をするのですが、現在は該当する項目の横のセルを一つずつ選択して塗りつぶしています。

この作業が面倒なので、クリックするだけで塗りつぶしができる様にしたいのですが、初心者なのでやり方がわかりません。

なるべく簡単なやり方があれば教えて頂きたいです。

閲覧数:
65,318
回答数:
5

違反報告

ベストアンサーに選ばれた回答

ann********さん

2011/6/117:55:37

クリックだけで、というのでしたら、マクロ処理になります。

A列のセルをクリックするとそのセルを赤く塗りつぶし、再度同じセルをクリ
ックすると塗りつぶしを解除するサンプルですが、簡単ですので以下の操作を
挑戦してみてください。

シートタブを右クリックして表示されるメニューから[コードの表示]を選択し、
そこで開かれるウィンドウに以下をコピペしたら、そのウィンドウを閉じます。
-----
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub '※1
Select Case Target.Interior.ColorIndex
Case Is = xlNone
Target.Interior.ColorIndex = 3 '※2
Case Else
Target.Interior.ColorIndex = xlNone
End Select
End Sub

※1:数字の 1 はA列を意味します。C列なら 3 です。
※2:数字の 3 は赤で、4=緑、5=青、6=黄、7=ピンク、8=水色、です。

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜4件/4件中

並び替え:回答日時の
新しい順
|古い順

ja7********さん

編集あり2011/6/118:48:27

> クリックするだけで塗りつぶし
クリック時では、操作性が悪く、殆ど使い物にならないと思います。
もし、Wクリックした時で良ければ、こんな感じです。
一応、VBAコードの設定方法を書いておきます。

・使用しているシートのシート名タブを右クリックして「コードの表示」を
指定し、開いたコードウィンドウに下記コードをコピーして貼り付けます。
・Alt+ Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。
・メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を
「中」にして[OK]します。 (Excel 2003)
Excel2007~のときは、メニューが違いますが、セキュリティレベルを
「警告を表示してすべてのマクロを無効」にします。
・以上で設定完了です。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Const Hani = "A1:C20" ' <--- 機能範囲を指定
Const Iro As Variant = 6 ' <--- 色を指定(↓を参照)
'赤=3, 緑=4, 青=5, 黄=6, ピンク=7, 水=8, 茶=9, 灰=15(標準設定のとき)
Dim Rng As Range
Set Rng = Intersect(Range(Hani), Target)
If Not Rng Is Nothing Then
Cancel = True
Rng.Interior.ColorIndex = Iro
End If
Set Rng = Nothing
End Sub

'-------
もし、間違って着色した等で、消したい場合にも対処するなら、こちらのコードを使用してください。
指定範囲内の色の着いたセルをWクリックすると色が消えます。
・Wクリックで着色したものだけか、全ての色を対象にするか ’の付替えで選択してください。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Const Hani = "A1:C20"
Const Iro As Variant = 6
'赤=3, 緑=4, 青=5, 黄=6, ピンク=7, 水=8, 茶=9, 灰=15
Dim Rng As Range
Set Rng = Intersect(Range(Hani), Target)
If Not Rng Is Nothing Then
Cancel = True
If Rng.Interior.ColorIndex = xlNone Then
Rng.Interior.ColorIndex = Iro
Else
Rng.Interior.ColorIndex = xlNone ' <-- 全ての色を対象に消去するとき
'If Rng.Interior.ColorIndex = Iro Then Rng.Interior.ColorIndex = xlNone
' Wクリックで着けた色だけを消す場合は、こちら↑を有効にする
End If
End If
Set Rng = Nothing
End Sub

ute********さん

編集あり2011/6/117:57:39

マクロの処理をしないと無理ですね。
マクロが面倒であれば、コピペの要領でやるしかないのではないですか?

kei********さん

2011/6/117:55:07

life8862さん

適用するセルを「ダブルクリック」した時に色(黄色)を付けます。
間違って色を付けたら、そのセルを「ダブルクリック」すると、色は消えます。。
その範囲が分かっていれば、その範囲内のみ適用できますよ…
とりあえず、そのシート全部のセルです。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target.Interior
If .ColorIndex = xlNone Then
.ColorIndex = 6
Else
.ColorIndex = xlNone
End If
End With
Cancel = True
End Sub

************<<シートモジュール>>*****************
<マクロの張り付け方>
上記のコードをコピーして、、
入力シートの「シートタブ内」で右クリックして、「コードの表示」を選択すると、
VBE画面になりますので、右の大きな窓のカーソルのところにコードを貼り付けます。
もう、この画面はいらないので右上の「×」をクリックすると、元のシートに戻ります。

<マクロの実行>
目的のセルを「ダブルクリック」するのみ。。

ann********さん

2011/6/117:11:59

例えば、0を入力すると、そのセルに色がつく・・・というのならわかるのですが。

対象のセル選択時に、書式⇒条件付き書式⇒セルの値が次の値に等しい 0 で、
書式(F)の設定でパターン⇒色(C):にて好きな色を選んでください

質問のようなことができるなら私も知りたいので、とりあえず一案として回答しました

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる