GETOLEITEM

引数に指定したコレクションからオブジェクトを取得し配列に格納します。

構文
  1. Integer = GETOLEITEM( コレクション名 )
引数
コレクション名
COMオブジェクト.コレクション名
戻値

取得したコレクションの数

取得した物は配列変数の ALL_OLE_ITEM[ ] に格納される (配列はゼロから)

コレクションとは

WorkbooksオブジェクトやWorksheetsオブジェクトのようにオブジェクトをまとめて格納したものをコレクションと言います。

COMオブジェクトのコレクションはプロパティにItemとCountを必ず持ちます。

「GETOLEITEM(コレクション名)」で返す配列(ALL_OLE_ITEM)は「コレクション名.Item(Index)」で取得するものと同等で、コレクション内のオブジェクトが1つずつ格納されています。

例えば「GETOLEITEM(Worksheets)」と記述した場合、「ALL_OLE_ITEM(Index)」にはWorksheetオブジェクトが格納されます。

Indexの範囲は0からGETOLEITEM(コレクション)-1の範囲となります。

GETOLEITEM以外での記述方法

GETOLEITEMと同じように取得する他の記述方法を記載しています。

以下はExcelを起動し全シートを取得する例です。

DIM Excel = ExcelBoot()
DIM Worksheets = Excel.Worksheets

PRINT “◇GETOLEITEM”

FOR i = 0 TO GETOLEITEM(Worksheets) – 1
	PRINT ALL_OLE_ITEM[i].Name
NEXT

PRINT
PRINT “◇Item・Count”

FOR i = 1 TO Worksheets.Count
	PRINT Worksheets.Item(i).Name
NEXT

PRINT
PRINT “◇FOR-IN-NEXT”

FOR Worksheet IN Worksheets
	PRINT Worksheet.Name
NEXT

//////////////////////////////////////////////////
// 【引数】
//   path : 開くファイルのパス名 
// 【戻値】
//   Excelオブジェクト 
//////////////////////////////////////////////////
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

結果
◇GETOLEITEM
Sheet1
Sheet2
Sheet3

◇Item・Count
Sheet1
Sheet2
Sheet3

◇FOR-IN-NEXT
Sheet1
Sheet2
Sheet3