
仕事でエクセルを使う事が多く、特に列、行がたくさんある一覧を表を日常業務で使っています。そこで選択セルの行全体が色付けされるような仕組みを作りたく。(イメージ的には、今触っているセルがどの行なのか目で追い易くする感じです)このようなマクロを作りました。ただ、これでは元々色が付いているセルの色が、色無しに変化してしまう為、使えません。使っている表の元々の色を変化させずに、色で簡単に行全体を目で追えるようにするにはどうしたら良いでしょうか?本当に申し訳ないですが、わかる方いらっしゃいましたら、ご教授お願い致します。
Public m
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If m <> 0 Then
Range(Cells(m, 1), Cells(m, 256)).Interior.ColorIndex = xlNone
End If
Range(Cells(Target.Row, 1), Cells(Target.Row, 256)).Interior.ColorIndex = 6
m = Target.Row
End Sub
No.5ベストアンサー
- 回答日時:
定番のリンク先として
『アクティブセルのある行・列を目立たせる』
http://www.relief.jp/itnote/archives/001406.php
があります。条件付き書式と組み合わせる手法です。
LineShapeについては
http://oshiete1.goo.ne.jp/qa2301115.html
のNo.5のご回答が完成度が高いと思います。
『アクティブセルのある行・列を目立たせる』拝見しました。
こんな方法があったなんて。すごいとしか言い様がないです。
ありがとうございました。
No.4
- 回答日時:
No.1です。
えっと・・・
「元々ある表に色が付いている行があります。それを選択した時は
黄色になります。他の行を選択したらもともとの行の色を戻したい」
ということですか???
Public m, n
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If m <> 0 Then
Range(Cells(m, 1), Cells(m, 256)).Interior.ColorIndex = n
End If
m = Target.Row
n = Target.Interior.ColorIndex
Range(Cells(Target.Row, 1), Cells(Target.Row, 256)).Interior.ColorIndex = 6
End Sub
No.3
- 回答日時:
No.1です。
コメントというのは'(シングルコーテーション)をつけることです。
'If m <> 0 Then
と書いた場合、この処理は無視されます。
再度この処理を行いたいと思ったら'を外せば良いので
処理自体を削除するのではなく、コメントにしたほうが
後々楽です。
なるほど。ただ今やってみましたが、どうもうまくいきません。
色が付いて元に戻らないです・・なんとも難しい依頼で申し訳ありません。
No.2
- 回答日時:
色をつける前に、もとの色を控えておいて後で元に戻すというのが通常でしょうが、1行全部が同じ色でないとすると、256セル分色を記録して・・・というのもちょいと面倒ですね。
一応、この方法でも対応可能だと思われますし、対象を表示中のセルに限定すれば、処理を減らせるので速度も向上すると思われます。
一方、ご質問の内容を読むと、必ずしもセルの色を変えなくても、横にガイドとなる色ものがあれば良いとも考えられますので、以下のようなアイデアではいかがでしょうか。
(セルをいじらないでガイドを作ることを考えて見ました)
オートシェイプなどで枠線のみ(中を透明にしておけば下にあるセルの選択が可能)にして、太線で色をつけたものを用意。印刷しないなどの設定をしておく。
シートチェンジ時にセル高さ、表示幅に合わせてシェイプの高さ、幅を設定し、対象行の画面左端に合わせて表示する。
(高さはプラスアルファしておいたほうが良いかも)
操作時に間違って、枠線をクリックすると枠線が選択されてしまいますので、このシェイプには「選択解除して戻す」だけのマクロを設定しておくなどすると良いかも。
あと、画面を横スクロールしたときに、シェイプがついてゆくようにする必要があるのかも・・・
No.1
- 回答日時:
こんにちは。
どうやら、選択された際に現在の行と前に選択された行の比較を行っているようなので、その処理を行っている
If m <> 0 Then
Range(Cells(m, 1), Cells(m, 256)).Interior.ColorIndex = xlNone
End If
の部分をコメントにすれば、元々色がついているセルはそのままです。
というのが欲しい答えでしょうか?
早速のご回答ありがとうございます。おっしゃる通りです。
ただ、コメントにするというのはどういう事でしょうか?勉強不足で申し訳ありません。ご教授お願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
Excelで指定した日付から過去の...
-
任意フォルダから画像をすべて...
-
【Excel】指定したセルの名前で...
-
特定のセルが空白だったら、そ...
-
VBA実行後に元のセルに戻りたい
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
エクセルvbaで、別シートの最下...
-
CountIf で","(カンマ)の数が...
-
VBA初心者です。結合セルを保持...
-
セルの結果でマクロ実行
-
ExcelのVBAで数字と文字列をマ...
-
エクセルVBAでコピーして順...
-
セル色なしの行一括削除
-
特定行の色を変えたい(FlexGrid)
-
エクセルの複数データーをダブ...
-
連続する複数のセル値がすべて0...
-
【Excel VBA】セルの色によって...
-
特定の文字を条件に行挿入とそ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
特定行の色を変えたい(FlexGrid)
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
VBA実行後に元のセルに戻りたい
-
Application.Matchで特定行の検索
-
”戻り値”が変化したときに、マ...
-
VBAでセルをクリックする回...
-
任意フォルダから画像をすべて...
-
Excel VBAで、 ヘッダーへのセ...
-
TODAY()で設定したセルの日付...
-
【Excel VBA】指定行以降をクリ...
-
Excel vbaで特定の文字以外が入...
-
ExcelのVBAで数字と文字列をマ...
-
Excel VBA、 別ブックの最終行...
-
DataGridViewの各セル幅を自由...
-
VBA ユーザーフォーム ボタンク...
-
連続する複数のセル値がすべて0...
おすすめ情報