行番号で行を強調表示するようにExcelに指示するにはどうすればよいですか。たとえば、行6、10、150、201を強調表示したいとします。ありがとう。
7 に答える
Motesの回答の代わりに、条件付き書式を使用できます。
例:A1:J500を選択、条件付き書式>>新しいルール>>数式を使用...
式には次のように入力します。=OR(ROW()=6, ROW()=10, ROW()=150, ROW()=201)
これはモートに基づいた別のものです.EntireRow.Interior.ColorIndex
これは、行番号の入力を制限するものではありませんが、実行時に行を選択する柔軟性をユーザーに提供します。
Option Explicit
Sub Sample()
Dim Ret As Range
On Error Resume Next
Set Ret = Application.InputBox("Please select the rows that you would like to color", "Color Rows", Type:=8)
On Error GoTo 0
If Not Ret Is Nothing Then Ret.EntireRow.Interior.ColorIndex = 6
End Sub
ファローアップ
リストから行番号を読み取り、行を強調表示するマクロを作成する方法はありますか?
はい、方法があります。セルA1からA10のリストを考えてみましょう。そうすれば、このコードを使用できます。
Option Explicit
Sub Sample()
Dim i As Long, sh As Worksheet
On Error GoTo Whoa
Application.ScreenUpdating = False
'~~> Set this to the sheet where the rows need to be colored
Set sh = Sheets("Sheet2")
'~~> Change Sheet1 to the sheet which has the list
With Sheets("Sheet1")
For i = 1 To 10
If Not Len(Trim(.Range("A" & i).Value)) = 0 And _
IsNumeric(.Range("A" & i).Value) Then _
sh.Rows(.Range("A" & i).Value).Interior.ColorIndex = 3 '<~~ Red
Next i
End With
LetsContinue:
Application.ScreenUpdating = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume LetsContinue
End Sub
基本的なVBAコードの場合、いつでもマクロの記録を開始し、アクションを実行し、記録を停止し、生成されたコードを確認してから、それをクリーンアップして必要な処理を実行できます。たとえば、行を強調表示するアクションを記録する(Interior.Colorの値を設定する)と、次のようになります。
Rows("13:13").Select
Range("C13").Activate
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
選択コマンドと無関係な内部プロパティを削除して、次のことを行うことができます。
Rows("13:13").Interior.Color = 65535
行に複数選択を追加します。
Rows("6:6,10:10,150:150,201:201").Interior.Color = 65535
概要:
- マクロの記録
- Excelのバージョンを表示する
- 必要なコードを使用/編集する
objWB.Cells(rowNum,201).EntireRow.Interior.ColorIndex = 6
等
更新:これに関する日付はわかりませんでしたが、選択した回答に関連しているため、これを追加すると思いました。
Siddharth Routの回答に加えて、コメントするのに十分な担当者がいないため、これらの2行を使用して、ワークシートに何行あるかを動的に把握できます。 xlCellTypeConstants
必要な別のXlCellType定数に変更でき、スプレッドシートに合わせて範囲をいつでも変更できます。
Dim numRows As Integer
numRows = Range("A2", Range("A1048576").End(xlUp)).SpecialCells(xlCellTypeConstants).Cells.Count
他の答えほど簡潔でもエレガントでもない場合は申し訳ありませんが、それで仕事は終わります。自分のアプリケーション用のコードを書いているとき、コードをループする必要がありました。また、行全体を強調表示する代わりに、行の一部を強調表示するだけで済みました。
Sub Highlight()
Dim ThisWB As Workbook
Dim ThisWS As Worksheet
Dim rows(0 To 3) As Integer
Dim test As String
Set ThisWB = ActiveWorkbook
Set ThisWS = ThisWB.Sheets("Sheet1")
rows(0) = 6
rows(1) = 10
rows(2) = 150
rows(3) = 201
For i = 0 To 3
test = "A" & rows(i) & ":H" & rows(i)
ThisWS.Range(test).Interior.ColorIndex = 15
Next i
End Sub
条件付き書式を使用して同じことを達成できる場合があります
- 値のリストを列に配置します(別のタブを使用してリストに名前を付けます)
- 条件付き書式設定-新しいルール-「数式を使用して書式設定するセルを決定する」
- この記事を読むhttp://www.howtogeek.com/howto/45670/how-to-highlight-a-row-in-excel-using-conditional-formatting/
- ルールは式でvlookupを使用します-=$A2 = VLOOKUP($ A2、list、1、FALSE)