Range.Row プロパティ (Excel)
範囲内の最初の領域の最初の行の番号を返します。 取得のみ可能な Long 値です。
構文
式。行
expression は Range オブジェクトを表す変数です。
例
次の使用例は、シート 1 上の他のすべての行の行の高さを 4 ポイントに設定 します。
For Each rw In Worksheets("Sheet1").Rows
If rw.Row Mod 2 = 0 Then
rw.RowHeight = 4
End If
Next rw
この例では、 BeforeDoubleClick ワークシート イベントを使用して、あるワークシートから別のワークシートにデータ行をコピーします。 このコードを実行するには、ターゲット ワークシートの名前が列 A にある必要があります。データを含むセルをダブルクリックすると、この例では列 A からターゲット ワークシート名を取得し、データ行全体をターゲット ワークシートの次の使用可能な行にコピーします。 次の使用例は、 Target キーワードを使用してアクティブな行にアクセスします。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'If the double click occurs on the header row or an empty cell, exit the macro.
If Target.Row = 1 Then Exit Sub
If Target.Row > ActiveSheet.UsedRange.Rows.Count Then Exit Sub
If Target.Column > ActiveSheet.UsedRange.Columns.Count Then Exit Sub
'Override the default double-click behavior with this function.
Cancel = True
'Declare your variables.
Dim wks As Worksheet, xRow As Long
'If an error occurs, use inline error handling.
On Error Resume Next
'Set the target worksheet as the worksheet whose name is listed in the first cell of the current row.
Set wks = Worksheets(CStr(Cells(Target.Row, 1).Value))
'If there is an error, exit the macro.
If Err > 0 Then
Err.Clear
Exit Sub
'Otherwise, find the next empty row in the target worksheet and copy the data into that row.
Else
xRow = wks.Cells(wks.Rows.Count, 1).End(xlUp).Row + 1
wks.Range(wks.Cells(xRow, 1), wks.Cells(xRow, 7)).Value = _
Range(Cells(Target.Row, 1), Cells(Target.Row, 7)).Value
End If
End Sub
次の使用例は、選択された範囲から空の行を削除します。
Sub Delete_Empty_Rows()
'The range from which to delete the rows.
Dim rnSelection As Range
'Row and count variables used in the deletion process.
Dim lnLastRow As Long
Dim lnRowCount As Long
Dim lnDeletedRows As Long
'Initialize the number of deleted rows.
lnDeletedRows = 0
'Confirm that a range is selected, and that the range is contiguous.
If TypeName(Selection) = "Range" Then
If Selection.Areas.Count = 1 Then
'Initialize the range to what the user has selected, and initialize the count for the upcoming FOR loop.
Set rnSelection = Application.Selection
lnLastRow = rnSelection.Rows.Count
'Start at the bottom row and work up: if the row is empty then
'delete the row and increment the deleted row count.
For lnRowCount = lnLastRow To 1 Step -1
If Application.CountA(rnSelection.Rows(lnRowCount)) = 0 Then
rnSelection.Rows(lnRowCount).Delete
lnDeletedRows = lnDeletedRows + 1
End If
Next lnRowCount
rnSelection.Resize(lnLastRow - lnDeletedRows).Select
Else
MsgBox "Please select only one area.", vbInformation
End If
Else
MsgBox "Please select a range.", vbInformation
End If
'Turn screen updating back on.
Application.ScreenUpdating = True
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。