プロが教えるわが家の防犯対策術!

すみません、質問です。

同じエクセルシート内での操作で、
1つのセルを選択したら、同じ列の別のセルの背景色が変わるようにしたいのですが、selectionを使ってどうやって組んだらよいのか分かりません。

例えば、
セルG1を選択したら、セルA1の背景が水色に変わる。
セルH1を選択したら、セルB1の背景が水色に変わる。

といったものを作りたいです。

セル同士の間隔は常に一定です。
説明が不十分であれば質問受け付けております。
回答お願い致します。

A 回答 (3件)

以下で如何でしょう。


Worksheet_SelectionChangeイベントを使用していますので、VBEで標準モジュールではなく、ご利用になるSheetに保存してください。

------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static r As Range

If r Is Nothing Then
GoTo L_SetVar
End If
If r.Column >= 7 Then
If r.Offset(0, -6).Interior.ColorIndex = 8 Then ' 8が水色です。
r.Offset(0, -6).Interior.ColorIndex = xlNone ' 前回の水色を無色にする。
End If
End If
If Target.Column >= 7 Then ' G列から左
Target.Offset(0, -6).Interior.ColorIndex = 8 ' 選択セルの6個左を水色にする。
End If

L_SetVar:
Set r = Target ' 今回選択したセルを保存する。
End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
早速、入力してみましたが、何も変化が起きませんでした。
Sheetにちゃんと入力したのですが、何故ぜしょうか?

お礼日時:2015/11/29 23:45

条件付き書式を使ったらどうでしょうか。


条件は、
=CELL("ADDRESS")=CELL("ADDRESS",OFFSET(A1,0,6))
この条件がTrueの時水色にする
これをA1のセルに入力し必要範囲にコピーする。
これだけだと、再計算しないと色が変わらないので、
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.Calculate
End Sub
をマクロに追加

これで如何でしょうか。
    • good
    • 0

> 早速、入力してみましたが、何も変化が起きませんでした。



何故でしょうか、と問われても何も情報がないと判断できません。
使用環境や、行ったことを具体的にご提示してください。

とりあえず確認すべき内容
・エラーが表示されているのか、いないのか?

・セキュリティ設定で、マクロが実行しないようになっていないか?
 ・下記の様にMsgBox文を追加・保存して、選択セルを変える毎にメッセージを表示するか?

・VisualBasicEditorのプロジェクトエクスプローラ(通常は左側に表示)で
  MicrosoftExcelObjectsの下の当該のSheetに入力・保存したか。

・入力内容に誤りはないか。

※念のため書きますが、A~F列のセルを選択しても何も変化しませんよ。

---------MsgBox文追加-----
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static r As Range

MsgBox "マクロ実行"  ←追加

If r Is Nothing Then
GoTo L_SetVar
End If
 以下略
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!