概要
Excelのワークブックにシートを追加するには、Worksheets.Add メソッド (Excel)を使います。任意のシートを第一引数として渡した場合、そのシートの前に、第二引数として渡した場合、そのシートの後に新しいシートが追加されます。
詳細
シートを追加する
Worksheets.Add メソッド (Excel)を使います。$Excel
にはエクセルのオブジェクトが格納済みだとします。
$Excel.Worksheets.Add()
あるいはWorkbookオブジェクトのWorksheetsに対してAddを呼ぶ方が丁寧かもしれないです。例えば、現在のワークブックを対象にする場合、次のようになります。
$Book = $Excel.ActiveWorkbook
$Book.Worksheets.Add()
シートは、現在のシートの前に挿入されます。
任意のシートの前にシートを追加する
Worksheets.Add メソッド (Excel)の引数で任意のシートを渡すと、そのシートの前に新しいシートが追加されます。例えばSheet3
の前に追加する場合、次のようになります。
$Book = $Excel.ActiveWorkbook
$Sheet = $Book.Sheets('Sheet3')
$Book.Worksheets.Add($Sheet)
任意のシートの後にシートを追加する
Worksheets.Add メソッド (Excel)の第一引数はBefore
、第二引数はAfter
なので、第二引数に任意のシートを渡すと、そのシートの後に新しいシートが追加されます。この時、第一引数には省略を示すため、欠損値[System.Reflection.Missing]::Value
を渡します。
例えば、最後のシートの後にシートを追加する場合、次のようになります。
$Book = $Excel.ActiveWorkbook
$Sheet = $Book.Sheets($Book.Sheets.Count)
$Book.Worksheets.Add([System.Reflection.Missing]::Value, $Sheet)
参考
- PowerShell で Excel をどうのこうのすることに興味を持ってくれると嬉しい - Qiita
- Worksheets オブジェクト (Excel)
- Worksheets.Add メソッド (Excel)
- Add or Move Excel sheet with PowerShell
- Missing.Value フィールド (System.Reflection)
本ページ内容は筆者が参照の便のためにある時点でまとめた個人的なメモです。内容を保証するものではなく、また筆者の所属組織等とは一切かかわりがありません。