• ベストアンサー

アクティブセルで、縦と横の列に色をつけるのは?

質問の意味あいがわからないと思いますが、たとえば、アクティヴセルが E4だとしたとき、E列と4の行をすべて色をつけたい。 どのようにしたらいいでしょうか? さらには、アクティブセルが移動するごと(入力セルを移動する)に、 上記で設定した色のまま、色がついた列と行を、移動させるためには、 どうしたらいいのでしょうか? VBAあるいはマクロなど方法があれば教えてください。 ただし、Exel2007です。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

ThisWorkbookのイベントでやると、どのシートでも実現できる。 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Sh.Cells.Interior.ColorIndex = xlNone Dim i, j As Long i = Target.Row j = Target.Column Rows(i).Interior.ColorIndex = 6 Columns(j).Interior.ColorIndex = 6 End Sub 既存の他セルの色設定も消えてしまう。 直前の列と行に限るコードは組めるが、それでも解決にならない。 反応性もパソコンによってはもうひとつの場合もあろう。 だからVBAでのユーザーのセルの色設定では力不足でしょう。 だから、とりあえずあきらめてください。

o-jon
質問者

お礼

早速の回答ありがとうございました。 自分でアドバイスのとおりして、理解できました。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.5

ん? マクロとか以前に,条件付き書式を使った事がありませんか。 実際にエクセルを起動して,ちゃんと自分の手を動かして試しながら次の通りに進めてみてください。 >表範囲を選ぶ あなたがご質問された,選択したセルの行と列に色が付いて欲しいセル範囲を選ぶことです。 >条件付き書式 ホームタブにある「条件付き書式▼」をプルダウンして使い始めることです >数式を使用して セルの強調表示ルールからその他のルールを開始すると「数式を使用して書式設定するセルを決定」という選択肢があるので,それを選ぶことです >=OR(CELL("Col")=COLUMN(),CELL("Row")=ROW()) >と設定し ダイアログの数式記入欄に,この通りに数式を記入することです。 >選択された行列の色を書式設定しておく 書式ボタンをクリックして,条件付き書式で塗りつぶしの色を設定することです。

o-jon
質問者

お礼

早速の回答 ありがとうございました。 理解できました。

すると、全ての回答が全文表示されます。
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

時にある質問ですね。 私も検索のシートにはよく使っています。 元々のシートに色を付けていたり条件付き書式を設定したりした場合には Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False With Target Range(.EntireColumn.Address & "," & .EntireRow.Address).Select .Activate End With Application.EnableEvents = True End Sub のコードしかないと思います。 但し、色は自由には選べませんが。 複数のセルを選択した場合でもOKです。

o-jon
質問者

お礼

回答ありがとうございました。

すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

幾つかの方法が提唱されてきましたが,セルに直接色を塗ってしまうと「目的があって色塗りしたセル」を塗り替えてしまうなどの不都合があります。 現在では,下記の手順がもっともクールだと考えられています。 手順: 表範囲を選ぶ 条件付き書式で「数式を使用して」を使い =OR(CELL("Col")=COLUMN(),CELL("Row")=ROW()) と設定し,選択された行列の色を書式設定しておく シート名タブを右クリックしてコードの表示を選び Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveSheet.Calculate End Sub と登録しておく。

o-jon
質問者

お礼

早速のご回答ありがとうございます。 「表範囲を選ぶ 条件付き書式で「数式を使用して」を使い =OR(CELL("Col")=COLUMN(),CELL("Row")=ROW()) と設定し,選択された行列の色を書式設定しておく」 上記のやり方がわかりません。

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてみてください。 色は「薄い黄色」にしてみました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'この行から Cells.Interior.ColorIndex = xlNone Dim i, j As Long i = Target.Row j = Target.Column Rows(i).Interior.ColorIndex = 36 '←色は好みによって変更してください。 Columns(j).Interior.ColorIndex = 36 End Sub 'この行まで 尚、複数セルを選択した場合でも選択セルの左上の列・行のみ色が付きます。m(__)m

o-jon
質問者

お礼

早速のご回答ありがとうございます。 このコードだと、1つのシートのみ対応ですよね? 複数のシートに対応するには、どうすればいいですか? さらには、このコードを利用して、永久的に使うにはどうすればいいですか?

すると、全ての回答が全文表示されます。

関連するQ&A