dポイントプレゼントキャンペーン実施中!

エクセルで品種別に実績数量を入力しています。
カーソルのある行が常に見やすく色がついていると入力しやすいなぁと思っています。

カーソルの動きに合わせて動いてもらいたいので、行番号をいちいちクリックしてハイライトさせる方法は合わないんです。

検索した結果、
http://okwave.jp/kotaeru.php3?q=1800843
こちらの質問と回答が大変参考になりました。

お恥ずかしい話なのですが、私はVBAを全く扱ったことがなく、思い通りにプログラミングできません。
「VBAって何?」という状態から四苦八苦してようやく、上記質問の#6の方の作ったプログラムを入れるところまでできました。

エクセルからツール→マクロ→VBE
VBEから表示→コードを開いて、そこに貼り付けてみました。

そうしたら見事に薄い水色で表示されるようになったのですが、私が希望しているプログラムとは違ったみたいで、一度カーソルを置いて水色になった行と列が色がつきっぱなしです。

このプログラムを「カーソルが現在置いてある行と列のみに色がつく」ようにできないでしょうか。

VBAが全く初めてなので上記の貼り付け方で合っているのかどうかもよくわからない状態です。
エクセルしか使えないような初心者でもわかるように教えて頂ければ嬉しいです。
どうかよろしくお願いします。

A 回答 (3件)

別の方法です。


↓で試してみてください。
***********
1)色をつけたい範囲をマウスでドラッグして指定
2)メニューの「書式」→「条件付き書式」
3)「セルの値が」→「数式が」にして
=OR(CELL("row")=ROW(), CELL("col")=COLUMN())

「書式」→「パターン」からお好みの色を選択して条件付き書式の設定は終わり

4)下のシート見出しから該当するシートタブを右クリック→「コードの表示」

コードウィンドウに↓をコピーして貼り付け

'---------------↓ココから-------------

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Application.ScreenUpdating = True

End Sub

'---------------↑ココまで-------------

以上です。
メニューの「ファイル」→「終了して Micorosoft Excelへ戻る」
または ALTキー + Qキーを押してワークシートに戻ります。
動作を確認してください。

アクティブセルのある行・列を目立たせる-条件付き書式・イベントプロシージャ
http://www.relief.jp/itnote/archives/001406.php
    • good
    • 0
この回答へのお礼

大変親切な回答をありがとうございます。
わかりやすく、思い通りにできました!

色も選べたし、シートタブを右クリックして出てくる「コードの表示」で簡単にコードウィンドウが出てくるんですね!
私のような初心者は、このコードウィンドウを閉じる作業も「これ、バッテンで閉じちゃうだけでプログラムは保存されるの? 有効に動いてくれるの?」って不安なんです。(そのわりには失敗も恐れずに閉じてしまいますが)
だから丁寧に「メニューの「ファイル」→「終了して Micorosoft Excelへ戻る」
       または ALTキー + Qキーを押してワークシートに戻ります。」
と書いてもらえると「なるほどー! バッテンじゃなくて正式な戻り方があるのね」と了解できます。

本当に助かりました。
教えて頂いたことをよく復習して、できれば内容も理解するようにしていきたいと思います。

お礼日時:2006/04/13 15:58

参照先の


> 2行目に挿入
> Cells.Interior.ColorIndex = xlColorIndexNone
 が抜けているんじゃないですか?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
Cells.Interior.ColorIndex = xlColorIndexNone
With Target.Cells
Union(.EntireRow, .EntireColumn).Interior.ColorIndex = 34
End With
Application.EnableEvents = True
End Sub

行だけ色を付けるなら
 Union ~ の行を
.EntireRow.Interior.ColorIndex = 34
とすればOKです。
    • good
    • 0
この回答へのお礼

完璧な回答をありがとうございます。
ばっちりできました!

そして実は「列はそのままで行だけ色づけということもできないだろうか?」と内心思っていたのです。
それについても教えて頂いたので大変勉強になりました。
プログラムの内容も理解できるように見直してみます。

お礼日時:2006/04/13 16:09

> 色がつきっぱなしです。


↓をPrivate Subの次の行にいれれば、この症状はなくなるハズです。
Cells.Interior.ColorIndex = xlColorIndexNone

以下のコードにすればカーソルのあるセルのみに色が付きます。でも、このコードでは負荷が重いので内容が込み入った大きなシートに使わないほうがいいかもしれません。また、他に色が付いているセルがあっても色の無い状態に設定してしまいます。(色が付くのはカーソルのあるセルのみになる。)これらを回避しようとするともうすこし凝ったコードにする必要があります。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Interior.ColorIndex = xlColorIndexNone
Application.EnableEvents = False
Target.Cells.Interior.ColorIndex = 34
Application.EnableEvents = True
End Sub
    • good
    • 0
この回答へのお礼

優しい回答をありがとうございます!

これだとカーソルのみに色が付くんですね。
勉強させていただきます!

お礼日時:2006/04/13 16:00

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