Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'1つのセルのみが選択されている場合
If Target.CountLarge = 1 Then
'セルB2もしくはC2が選択された場合
If Target.Row = 2 And _
(Target.Column = 2 Or Target.Column = 3) Then
'セルB2の背景色が白色の場合
If Range("B2").Interior.Color = RGB(255, 255, 255) Then
Range("B2").Value = "ON"
Range("C2").ClearContents
Range("B2").Interior.Color = RGB(0, 255, 0)
Range("C2").Interior.ColorIndex = 0
Else
Range("B2").ClearContents
Range("C2").Value = "OFF"
Range("B2").Interior.ColorIndex = 0
Range("C2").Interior.Color = RGB(255, 0, 0)
End If
End If
End If
End Sub
Sub 対象行の削除()
Dim sh As Worksheet
Set sh = ActiveWorkbook.ActiveSheet
Dim lastRow As Integer
lastRow = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row
Dim rng As Variant
rng = sh.Range(sh.Cells(1, 1), sh.Cells(lastRow, 1)).Value
Dim i As Long
For i = lastRow To 3 Step -1
If rng(i, 1) <> "" Then
sh.Range(sh.Cells(i, 1), sh.Cells(i, 3)).Delete Shift:=xlShiftUp
End If
Next i
End Sub
▼Officeスクリプト▼
function main(workbook: ExcelScript.Workbook) {
// Your code here
const sh = workbook.getActiveWorksheet();
var maxRow = sh.getRange('A:A').getRowCount();
var lastRow = sh.getCell(maxRow - 1,0).getRangeEdge(ExcelScript.KeyboardDirection.up).getRowIndex() + 1;
var rng = sh.getRangeByIndexes(0,0,lastRow,1).getValues();
for (var i = lastRow - 1; i >= 2; i--){
if (String(rng[i]) != ''){
sh.getRangeByIndexes(i,0,1,3).delete(ExcelScript.DeleteShiftDirection.up);
}
}
}