Function Reference

_ExcelReadSheetToArray

アクティブなワークシートの行/列から2次元配列を作成します。

#Include <Excel.au3>
_ExcelReadSheetToArray($oExcel [, $iStartRow = 1 [, $iStartColumn = 1 [, $iRowCnt = 0 [, $iColCnt = 0 [, $iColShift = False]]]]])

 

パラメータ

$oExcel _ExcelBookOpen()か_ExcelBookNew()の呼び出しで開かれているExcelオブジェクト
$iStartRow [オプション]読み込み開始行番号。デフォルトは1(最初の行)
$iStartColumn [オプション]読み込み開始列番号。デフォルトは1(最初の列)
$iRowCnt [オプション]読み込む行数。デフォルトは0(全て)
$iColCnt [オプション]読み込む列数。デフォルトは0(全て)
$iColShift [オプション]Excelから配列が返される際、配列の列インデックスを0始まりにするか1始まりにするか決定します。デフォルトはR1C1値と一致するようFalseです。

 

返し値

Success: 指定したセルの内容を持つ2次元配列を[$row][$col]形式で返します
Failure: 0を返し@errorに値を設定します
@error: 0 - 正常終了
1 - 指定されたオブジェクトが存在しません
2 - 範囲外の開始パラメータです
3 - 読み込み数パラメータが範囲外です
@extended: 0 - 行数が範囲外です
1 - 列数が範囲外です

 

注意

返される配列の[0][0]には行数が、[0][1]には列数が保存されています。
上記の[0][0]、[0][1]を除き返された配列の第0行、第0列は空で、
実際のセルデータはR1C1番号と同じく[1][1]から始まります。
デフォルト設定ではシート全体が返されます。
シートが空の場合、[0][0]と[0][1]は両方とも0になります。

 

関連

 


; ******************************************************************************************
; 例 1 - ワークブックを開きオブジェクト識別子取得後、
;               セルのいくつかを埋め、いろいろなパラメータで値を配列に読み込む。
; ******************************************************************************************

#include <Excel.au3>
#include <Array.au3>

Local $oExcel = _ExcelBookNew() ;新しいブックを作成して表示

; いくつかのセルを単純なループと乱数を使って埋める
For $y = 1 To 10 ;1列目から開始
    For $x = 1 To 15
        _ExcelWriteCell($oExcel, Round(Random(1000, 10000), 0), $x, $y) ;ファイルにある乱数を書き込む
    Next
Next

$aArray = _ExcelReadSheetToArray($oExcel) ;デフォルトのパラメータを使用
_ArrayDisplay($aArray, "Array using Default Parameters")

$aArray = _ExcelReadSheetToArray($oExcel, 2) ;2行目から開始
_ArrayDisplay($aArray, "Starting on the 2nd Row")

$aArray = _ExcelReadSheetToArray($oExcel, 1, 2) ;2列目から開始
_ArrayDisplay($aArray, "Starting on the 2nd Column")

$aArray = _ExcelReadSheetToArray($oExcel, 1, 1, 5) ;5行読み込む
_ArrayDisplay($aArray, "Read 5 Rows")

$aArray = _ExcelReadSheetToArray($oExcel, 1, 1, 0, 2) ;2列読み込む
_ArrayDisplay($aArray, "Read 2 Columns")

$aArray = _ExcelReadSheetToArray($oExcel, 2, 3, 4, 5) ;2行目、3列目から4行、5列読み込む
_ArrayDisplay($aArray, "Starting on the 2nd Row, 3rd Column, Read 4 Rows and 5 Columns")

$aArray = _ExcelReadSheetToArray($oExcel, 1, 1, 0, 0, True) ;列のシフト(True)を除き、デフォルトパラメータを使用
_ArrayDisplay($aArray, "Array with Column shifting")

MsgBox(0, "Exiting", "Press OK to Save File and Exit")
_ExcelBookSaveAs($oExcel, @TempDir & "\Temp.xls", "xls", 0, 1) ; 上書き設定でtempディレクトリに保存
_ExcelBookClose($oExcel) ;閉じて終わり