重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

クリックしたセルを操作者に目立たせるために、
ActiveCell を交差する形で、行と列の反転表示を試みています。

例:D6セルをクリックすると、D列と6行を同時に範囲選択させる
  Range("D:D,6:6").Select

クリックしたセル番地は、
ActiveCell.Column
ActiveCell.Row
で求まると思うのですが、それから先の処理方法が思い浮かびません。
よろしくお願い致します。

A 回答 (3件)

ThisWorkbook モジュールに、



Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

Application.EnableEvents = False

With Target
Range(.EntireColumn.Address & "," & .EntireRow.Address).Select
.Activate
End With

Application.EnableEvents = True

End Sub
    • good
    • 0
この回答へのお礼

スマートな回答ありがとうございます。
まさに私が実現したかった内容です。
お陰でスッキリしました。

お礼日時:2008/05/18 06:44

反転表示も大変そうなので、ANo.1さんの色表示で正解と思いますが、直前のセル座標を保存するのに、セルにIDという属性があって、値を保存できる事を思い出して使ってみました。

A1セルを削除してしまうと、誤動作しますが、出来合の表で、一番端の列・行をいじることは少ないかなと考えます。ご参考まで。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lastAddress As String

'行列ごと選択とか、複数セル選択は対象外としたが、お好みにより変更下さい。
If Target.Cells.Count > 1 Then Exit Sub
lastAddress = ActiveSheet.Range("A1").ID
If lastAddress <> "" Then
ActiveSheet.Range(lastAddress).EntireColumn.Interior.ColorIndex = xlNone
ActiveSheet.Range(lastAddress).EntireRow.Interior.ColorIndex = xlNone
End If
Target.EntireColumn.Interior.ColorIndex = 15
Target.EntireRow.Interior.ColorIndex = 15
ActiveSheet.Range("A1").ID = Target.Address
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
今後の参考にさせて頂きます

お礼日時:2008/05/18 06:45

質問を見て、かっても同様質問があって、納得のいくように、行かなかった点を思出だした(下記(2))。


この質問では2つ問題を思いました。
(1)列行は全列・全行を色づけるのか?
   どちらでもコード上は余り差が無いが。
(2)直前の色づけたものを解除することのやり方。
Targetでは直前の選択セル番地が捉えられない。
次回のクリックまで、その前回情報を引き継がないといけない。
ほかには適当な仕掛けはなさそうだし。PUBLIC変数でもと思ったが。
下記はStaticで下記はこなした。
ーー
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
Static t
Static rm
Static cm
If t = 0 Then
Else
Rows(rm).Interior.ColorIndex = xlNone
Columns(cm).Interior.ColorIndex = xlNone
End If
t = t + 1
r = Target.Row
c = Target.Column
Rows(r & ":" & r).Interior.ColorIndex = 6
Columns(c).Interior.ColorIndex = 6
rm = r
cm = c
Application.EnableEvents = True
End Sub
ーーー
浅学のためか、小生の苦労・試行錯誤が詰まってます。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
反転表示ばかり考えて、色変更とは思い付きませんでした。
参考にさせて頂きます。

お礼日時:2008/05/18 06:42

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