Sheets.Addアド メソッド

新しいワークシート・グラフ・またはマクロ シートを作成します。新しいワークシートがアクティブ シートになります。

BeforeAfterを共に省略すると、作業中のシートの直前に新しいシートが追加されます。

矛盾がなくてもBeforeAfterを同時に指定するとエラーが発生します。

構文
  1. Sheets = Sheets.Add( Before, After, Count, Type )
引数
Before (Sheets オブジェクト = EMPTYPARAM)省略可
指定したオブジェクトのシートの直前に、新しいシートを追加します。
After (Sheets オブジェクト = EMPTYPARAM)省略可
指定したオブジェクトのシートの直後に、新しいシートを追加します。
Count (Integer = 1)省略可
追加するシートの数を指定します。既定値は、選択したシートの数です。
Type (XlSheetType = xlWorksheet)省略可
ワークシートの種類を指定します。
戻り値
追加したシートのSheets オブジェクト

Sheets オブジェクトを返すメソッド・プロパティ

Sheets.Add メソッド
アクティブなブック内のすべてのグラフシートを表すSheetsコレクションを返します。
Application.Worksheets プロパティ
アクティブなブック内のすべてのワークシートを表すSheetsコレクションを返します。
Sheets.Add メソッド
新しいワークシート・グラフ・またはマクロ シートを作成します。新しいワークシートがアクティブ シートになります。

定数一覧

XlSheetType 列挙

名前説明
xlWorksheet-4167ワークシート
xlDialogSheet-4116ダイアログ シート
xlChart-4109Chart
xlExcel4MacroSheet3Excel バージョン 4 マクロ シート
xlExcel4IntlMacroSheet4Excel バージョン 4 International Macro シート
UWSC
CONST xlWorksheet = -4167
CONST xlDialogSheet = -4116
CONST xlChart = -4109
CONST xlExcel4MacroSheet = 3
CONST xlExcel4IntlMacroSheet = 4

使い方

シート追加

引数をすべて省略した場合、アクティブシートの直前にシートを1枚追加します。

UWSC
DIM Sheets = Excel.Sheets
Sheets.Add()

Countのみ値を指定した場合、アクティブシートの直前にシートを指定した枚数(例では2枚)追加します。

シートは1枚ずつ左側に追加されていきます。

UWSC
DIM Sheets = Excel.Sheets
Sheets.Add(Count:=2)

FOR文で書き換えると以下のような処理になります。

UWSC
DIM Sheets = Excel.Sheets
FOR i = 1 TO Count
	Sheets.Add()
NEXT

先頭に追加

一番左のシートのインデックス番号は1なので、その直前(Before)に挿入することで先頭に追加することができます。名前付き引数のBefore:=は記述しなくても大丈夫です。

UWSC
WITH Excel
	DIM Sheets = .Sheets
	Sheets.Add(Before:=.Worksheets(1))
ENDWITH

末尾に追加

一番右のシートのインデックス番号はシートの枚数に等しいので、Worksheets.Countで末尾のインデックス番号を取得することができます。その直後(After)に挿入することで末尾に追加することができます。

UWSC
WITH Excel
	DIM Sheets = .Sheets
	Sheets.Add(After:=.Worksheets(.Worksheets.Count))
ENDWITH

追加したシート名の変更

シートを追加すると追加したシートがアクティブシートになるので、ActiveSheet.Nameで追加したシートの名前を変更します。

UWSC
WITH Excel
	DIM Sheets = .Sheets
	Sheets.Add(After:=.Worksheets(.Worksheets.Count))
	.ActiveSheet.Name = "追加シート"
ENDWITH

追加シートをアクティブにしない

Sheets.Addで追加されたシートはアクティブになりますが、追加する前にアクティブだったシートを取得しシートの追加後に再度元のシートをアクティブにします。

UWSC
WITH Excel
	DIM ActiveSheet = .ActiveSheet
	DIM Sheets = .Sheets
	Sheets.Add(After:=.Worksheets(.Worksheets.Count))
	ActiveSheet.Activate
ENDWITH

プログラム実行例

2軸のグラフを作成する

UWSC
使用関数

コロナのPCR検査実施人数のグラフを生成(Excel)

オープンデータ|厚生労働省PCR検査実施人数のCSVデータを使用。

UWSC
CONST xlLine = 4
CONST xlColumnClustered = 51
CONST xlMarkerStyleCircle = 8
CONST xlValue = 2
CONST xlSecondary = 2

DIM Excel = ExcelBoot("東京の気温と降水量(2019年).xlsx")
DIM SheetName = "Sheet1"

DIM Charts = Excel.Charts.Add
DIM Series

Charts.ChartArea.ClearContents

Series = Charts.SeriesCollection.NewSeries

WITH Series
	WITH Charts.Axes(xlValue)
		.HasTitle = TRUE
		.AxisTitle.Caption = "気温[℃]"
	ENDWITH
	.ChartType = xlLine
	.MarkerStyle = xlMarkerStyleCircle
	.XValues = Excel.Worksheets(SheetName).Range("B5:B16")
	.Values = Excel.Worksheets(SheetName).Range("C5:C16")
	.Name = Excel.Worksheets(SheetName).Range("C4")
	.Format.Line.ForeColor.RGB = 255
	.MarkerBackgroundColor = 255
ENDWITH

Series = Charts.SeriesCollection.NewSeries

WITH Series
	.ChartType = xlLine
	.MarkerStyle = xlMarkerStyleCircle
	.XValues = Excel.Worksheets(SheetName).Range("B5:B16")
	.Values = Excel.Worksheets(SheetName).Range("D5:D16")
	.Name = Excel.Worksheets(SheetName).Range("D4")
	.Format.Line.ForeColor.RGB = 16711680
	.MarkerBackgroundColor = 16711680
ENDWITH

Series = Charts.SeriesCollection.NewSeries

WITH Series
TEXTBLOCK
	WITH Charts.Axes(xlValue)
		.HasTitle = TRUE
		.AxisTitle.Caption = "降水量[mm]"
	ENDWITH
ENDTEXTBLOCK
	.ChartType = xlColumnClustered
	.XValues = Excel.Worksheets(SheetName).Range("B5:B16")
	.Values = Excel.Worksheets(SheetName).Range("E5:E16")
	.Name = Excel.Worksheets(SheetName).Range("E4")
	.Format.Line.ForeColor.RGB = 10341600
	.AxisGroup = xlSecondary
ENDWITH

//////////////////////////////////////////////////
// 【引数】
//   path : 開くファイルのパス名 
// 【戻り値】
//   <a href="https://uwsc.jp/com/excel/" >Excel オブジェクト</a> 
//////////////////////////////////////////////////
FUNCTION ExcelBoot(path = "")
	DIM Excel = CREATEOLEOBJ("Excel.Application")
	Excel.Visible = TRUE
	IFB path = "" THEN
		Excel.Workbooks.Add
	ELSE
		DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
		IFB FSO.GetParentFolderName(path) = "" THEN
			path = GET_CUR_DIR + "\" + path
		ENDIF
		Excel.Workbooks.Open(path)
	ENDIF
	RESULT = Excel
FEND
結果
使用関数

気象庁のホームページから一月分の気温を取得しExcelでグラフを作成

UWSC
CONST xlColumnClustered = 51

DIM Excel = CREATEOLEOBJ("Excel.Application")
Excel.Visible = TRUE
Excel.Workbooks.Open("D:\Downloads\pcr_tested_daily.csv")

DIM Range = Excel.Range("A1").CurrentRegion
DIM Charts = Excel.Charts.Add()  // Sheetsオブジェクト

WITH Charts
	.ChartType = xlColumnClustered
	.SetSourceData(Range)
ENDWITH
結果
使用関数

この記事は役に立ちましたか?

はい
いいえ
ご協力ありがとうございます。

参考文献

  1. Sheets.Add メソッド (Excel) | Microsoft Learn

関連記事

XLSHEET関数 (スクリプト関数)
Excelシートを追加・削除する。
Sheets オブジェクト
指定されたブックまたは作業中のブックにあるすべてのシートのコレクションです。
Application.ActiveSheet プロパティ (Excel)
Worksheet オブジェクト
Sheets.Delete メソッド (Excel)
シートを削除します。
Sheets.Move メソッド (Excel)
シートをブック内の他の場所に移動します。
Sheets.Item プロパティ (Excel)
シートコレクションから単一のシートを返します。
Range.AddComment メソッド (Excel)
指定してセルにコメントを設定する。
Worksheets.Add メソッド (Excel)
新しいワークシート、グラフシート、またはマクロシートを作成します。
PageSetup オブジェクト
Excel のシートの印刷設定を表すオブジェクトです。シートの用紙サイズ、余白、方向、印刷タイトルなど、印刷に関連する設定を管理するのに使用されます。
Application オブジェクト
Excel全体を表すオブジェクトです。Excel全体に対しての操作、設定変更をしたい場合に使います。