- ベストアンサー
excel VBAの構文の内容を訳してくださいませ!
すいません、まったくマクロやVBA関係は、だめで、、 上司が、どこかのサイトで見つけた操作をやってみようと思ったら 下記の内容をVisual Basic Editorを開いて、 ThisWorkbookに下記のコードを入力して、さらに条件付書式をすると セルを選択すると、その行が自動的にハイライトになるしく。。 私には、よくわからない世界になってきたような。。 すんません、またまたお願いします! 『入力するコード内容』 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.ScreenUpdating = True End Sub そして、条件付書式より ”数式が”を選択して=CELL("row")=ROW()を入力します。 ⇒ごめんなさいです。 どこで、探してきたのか、わかりませんが、詳細をテキストにして 送付されてきました。すみません。 内容を説明できないでいます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) >Application.ScreenUpdating = True >End Sub この3行の意味は『このBook内で、セルの選択範囲が変わったら画面を更新する』です。 >”数式が”を選択して=CELL("row")=ROW()を入力します。 意味は No.2 の方の通りです。行をハイライトにするのであれば 全てのセルを選択した状態で [書式(O)]-[条件付書式(D)] とすすみ、上記の条件を設定し [書式(F)]-[パターン] で好みの色を選択し [OK]-[OK] とすすみます。 これで、例えば[C5]を選択すれば5行目全体に色がつきます。 上の3行だけでは何も起こりませんし、条件付書式だけでは色のついた行が移動しません。 2つがセットで選択行のハイライトが可能になります。
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 説明はみなさんがされているので置いておきますが、なぜ、条件付書式をしなければならないのでしょうか?。 私は、以下のようなコードでよいと思います。 全て、VBAの中でまかなえばよいと思います。 最初に、全体の色を消して、次に、アクティブになっているセルの全体の行に色をつけるというものです。 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Sh.Cells.Interior.ColorIndex = xlColorIndexNone Target.EntireRow.Interior.ColorIndex = 34 '色番号は、記録マクロで調べてください。 End Sub ただし、このマクロの不都合な点は、すでに色づけしているところまで消してしまうということです。条件付書式は、そういうことがありませんが、今度は、ワークブック全体を重くしてしまうという欠点があります。 なお、SelectionChangeイベントは、セルの選択を移動したときに発生するイベントです。ThisWorkbook モジュールに付けるのは、ワークブック全体のシートに設定しようとするためのものです。Sh とは、アクティブシートのこと。Target というのは、アクティブセルのことです。
お礼
遅くなって申し訳ありません。 ごていねいな回答に感謝します。 4人の方々の回答を全て参考にして上司は、うまく伝えることが出来ました。 本当に有難うございました!
- Somali_Shinji
- ベストアンサー率14% (45/305)
=CELL("row")=ROW()で、「カーソルのある行に対して次の書式を適用する」という意味になります。書式(フォントが斜体とか)を指定してやらないとダメです。 次のスクリプトは、セルを移動するたびに起動され、強制的に画面を書き換えます。これがなければ画面の書き換えが行われません。 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.ScreenUpdating = True End Sub
お礼
遅くなって申し訳ありません。 ごていねいな回答に感謝します。 4人の方々の回答を全て参考にして上司は、うまく伝えることが出来ました。 本当に有難うございました
- surounin
- ベストアンサー率28% (30/106)
正解かどうか自信がありませんが^^; Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) これは、現在選択しているワークシート以外のシートを選択したときに発生するイベントです。 つまり、シートを移動する度に発生します^^ Application.ScreenUpdating = True これは、画面の更新(たとえばマクロでA1のセルからA10のセルまで一個ずつセルを選択していくと動きが見えるかと思いますが、application.screenupdating=Falseにすると 見えなくなります。) End Sub サブルーチンの終わりを示す ※これだけでは何の意味も無い気がしますけど^^;
お礼
遅くなって申し訳ありません。 ごていねいな回答に感謝します。 4人の方々の回答を全て参考にして上司は、うまく伝えることが出来ました。 本当に有難うございました
お礼
遅くなって申し訳ありません。 ごていねいな回答に感謝します。 4人の方々の回答を全て参考にして上司は、うまく伝えることが出来ました。 本当に有難うございました