作業シート作成VBA

完成形イメージ

コード

Sub 作業用シート作成()
    ' シートのすべてのセルの幅を設定
    Cells.ColumnWidth = 2.2
    
    ' 見出しのスタイルと値を設定
    With Range("A1")
        .Style = "見出し 1"
        .Value = "1"
    End With
    With Range("B1")
        .Style = "見出し 2"
        .Value = "2"
    End With
    With Range("C1")
        .Style = "見出し 3"
        .Value = "3"
    End With
    With Range("D1")
        .Style = "見出し 4"
        .Value = "4"
    End With
    
    ' 疑問のセルを設定
    With Range("G1")
        .Value = "疑問"
        .Style = "どちらでもない"
    End With
    
    ' Todoのセルを設定
    With Range("J1")
        .Value = "Todo"
        .Style = "悪い"
    End With
    
    ' 解決のセルを設定
    With Range("M1")
        .Value = "解決"
        .Style = "良い"
    End With
    
    ' 2行目を固定
    Rows("2:2").Select
    ActiveWindow.FreezePanes = True
    
    ' A2セルにシート名を出力
    Range("A2").FormulaR1C1 = "=MID(CELL(""filename"",R1C1),FIND(""]"",CELL(""filename"",R1C1))+1,99)"

    ' A2セルのスタイルを"見出し 1"に変更
    Range("A2").Style = "見出し 1"
        
    ' 最後にA2セルを選択
    Range("A2").Select
End Sub

シート名表示のところの補足

FormulaR1C1プロパティは、R1C1形式の参照を使った数式を設定するためのプロパティです。
R1C1形式は、行番号と列番号をR(行)とC(列)で表現する形式で、A1形式とは異なります。

例えば、A1形式のセル参照A1は、R1C1形式ではR1C1と表されます。
A1形式では、Aが1列目を示し、1が1行目を示します。
一方、R1C1形式では、R1が1行目を示し、C1が1列目を示します。

このため、以下の数式で使用されているA1をR1C1形式に変換する必要がありました。

=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,99)

この数式をR1C1形式に変換すると、以下のようになります。

=MID(CELL("filename",R1C1),FIND("]",CELL("filename",R1C1))+1,99)

この変換により、数式がFormulaR1C1プロパティを使って適切に設定されます。