-ChatGPT-4に「VBAで選択したセルの1行下に行を挿入して選択行をコピーして背景色をつけて」と頼んだら

-ChatGPT-4への質問

-ChatGPT-4

VBAで選択したセルの1行下に行を挿入して選択行をコピーして背景色をつけて

ChatGPT4の回答

Sub InsertCopiedRow()
    Dim selectedRow As Range
    Dim newRow As Range
    Dim lastColumn As Long
    
    ' 選択した行を取得します
    Set selectedRow = Selection.EntireRow
    
    ' 選択した行の1行下に新しい行を挿入します
    Set newRow = selectedRow.Offset(1).EntireRow
    selectedRow.Copy newRow
    
    ' 最終列を取得します
    lastColumn = newRow.Cells(1, newRow.Columns.Count).End(xlToLeft).Column
    
    ' 新たに追加した行の最終列までの範囲に色を付けます
    newRow.Cells(1).Resize(, lastColumn).Interior.Color = RGB(255, 0, 0)  ' 色を赤に設定します
    
    ' 選択した行を選択状態にします
    newRow.Select
End Sub

コードの説明

  1. Dim selectedRow As Range, Dim newRow As Range, Dim lastColumn As Long : 必要な変数を宣言します。selectedRownewRowは選択した行と新しい行を保存するためのRangeオブジェクトを参照します。lastColumnは行の最終列のインデックスを保持します。
  2. Set selectedRow = Selection.EntireRow : 選択した行をselectedRow変数に代入します。
  3. Set newRow = selectedRow.Offset(1).EntireRow : 選択した行の次の行を取得し、それをnewRow変数に代入します。
  4. selectedRow.Copy newRow : 選択した行をコピーし、その内容を新しい行に貼り付けます。
  5. lastColumn = newRow.Cells(1, newRow.Columns.Count).End(xlToLeft).Column : 新たに追加した行の最終列のインデックスを取得します。
  6. newRow.Cells(1).Resize(, lastColumn).Interior.Color = RGB(255, 0, 0) : 新たに追加した行の1列目から最終列までのセルの背景色を赤色に設定します。
  7. newRow.Select : 新たに追加した行を選択します。これにより、新しく挿入した行がハイライトされます。

このスクリプトは、ユーザーが選択した行をコピーして新しい行に貼り付け、その新しい行を赤色にハイライトすることで、行の挿入が行われたことを視覚的に確認しやすくします。

タイトルとURLをコピーしました