Excel#

xlopen([ファイル名=EMPTY, 起動フラグ=XL_DEFAULT, パラメータ...])#
Excelを起動します
パラメータ:
  • ファイル名 (文字列 省略可) -- 開きたいファイル名、EMPTYならExcelを新規に起動

  • 起動フラグ (定数 省略可) --

    Excelの起動方法を指定

    XL_DEFAULT (0)
    起動済みのExcelがあればそれを使い、なければ新規起動します
    XL_NEW (1)
    常にExcelを新規に起動します
    XL_BOOK (2)
    applicationではなくWorkbookオブジェクトを返します
    XL_OOOC (3)
    使用できません

  • パラメータ (文字列 可変長) --

    ファイルオープン時の追加パラメータを "パラメータ名:=値" 形式の文字列で指定する
    書式が不正な場合は無視される (エラーにはなりません)
    以下は有効なパラメータ例
    UpdateLinks
    リンク更新方法
    • 0: 更新しない

    • 1: 外部更新のみ

    • 2: リモート更新のみ

    • 3: 外部、リモート共に更新

    ReadOnly
    読み取り専用で開く場合にTrueを指定
    Format
    CSVファイル時を開く場合にその区切り文字
    • 1: タブ

    • 2: カンマ

    • 3: スペース

    • 4: セミコロン

    Password
    パスワード保護されたブックを開くためのパスワード
    WriteResPassword
    書き込み保護されたブックに書き込むためのパスワード
    IgnoreReadOnly
    「読み取り専用を推奨する」のダイアログを抑止したい場合にTrue
    // パスワード付きファイルを読み取り専用で開く
    excel = xlopen("hoge.xlsx", XL_NEW, "ReadOnly:=True", "Password:=hogehoge")
    
    // カンマ区切りcsvファイルを開く
    excel = xlopen("hoge.xlsx", XL_NEW, "Format:=2")
    

戻り値の型:

COMオブジェクト

戻り値:

Excel自身、またはWorkbookを示すCOMオブジェクト

xlclose(Excel[, ファイル名])#
Excelを終了します
ファイル名指定の有無で保存方法が異なります
パラメータ:
  • Excel (COMオブジェクト) -- Excel.ApplicationまたはWorkbookを示すCOMオブジェクト

  • ファイル名 (文字列 省略可) -- 保存するファイル名を指定、省略時は上書き保存

xlclose(Excel, TRUE)
変更内容を保存せずに終了します
パラメータ:
  • Excel (COMオブジェクト) -- Excel.ApplicationまたはWorkbookを示すCOMオブジェクト

  • TRUE (真偽値) -- TRUE を指定 (固定値)

戻り値の型:

真偽値

戻り値:

成功時TRUE、失敗時FALSE

サンプルコード

excel = xlopen("foo.xlsx")
// ブックが編集される
xlclose(excel, "bar.xlsx") // 別名で保存

excel = xlopen("bar.xlsx")
// ブックが編集される
xlclose(excel) // 上書き保存

excel = xlopen("foo.xlsx")
// ブックが編集される
xlclose(excel, TRUE) // 保存せず終了
xlactivate(Excel, シート識別子[, ブック識別子=EMPTY])#
指定したシートをアクティブにします
パラメータ:
  • Excel (COMオブジェクト) -- Excel.ApplicationまたはWorkbookを示すCOMオブジェクト

  • シート識別子 (文字列または数値) -- アクティブにするシート名またはインデックス番号(1から)

  • ブック識別子 (文字列または数値 省略可) -- アクティブにするブック名またはインデックス番号(1から)

戻り値の型:

真偽値

戻り値:

成功時TRUE、失敗時FALSE

シート・ブックの識別子について

  • シート名は各シートの表示名を完全一致で指定する必要があります

  • シートのインデックス番号は左から数えた順番です

  • ブック名は拡張子を含めたファイル名を完全一致で指定する必要があります
    • 新規作成したブックの場合は Book1 のようになります(拡張子がありません)

  • ブックのインデックス番号はブックを開いた順番です

  • ブック識別子を省略した場合はアクティブなブックが対象となります

  • Workbookオブジェクトを指定した場合ブック識別子は無視され、そのWorkbook内のシートをアクティブにします

xlsheet(Excel, シート識別子[, 削除=FALSE])#
アクティブなブックへのシートの追加、または削除を行う
パラメータ:
  • Excel (COMオブジェクト) -- Excel.ApplicationまたはWorkbookを示すCOMオブジェクト

  • シート識別子 (文字列または数値) -- アクティブにするシート名、削除時のみインデックス番号(1から)も可

  • 削除 (真偽値 省略可) -- FALSEなら指定名のシートを追加、TRUEなら該当シートを削除

戻り値の型:

真偽値

戻り値:

成功時TRUE、失敗時FALSE

インデックス指定について

シート追加時はインデックス番号を文字列として扱います
xlsheet(excel, 1, FALSE) // "1" という名前のシートが追加される
シート削除時はインデックスとシート名を厳密に区別します
そのためUWSCとは一部動作が異なります
xlsheet(excel, 1, FALSE) // "1" という名前のシートを追加しておく
xlsheet(excel, 1, TRUE)  // 1を指定して削除を試みた場合
// UWSCの場合: "1" という名前のシートがあればそれを削除、なければ1番目のシートを削除
// UWSCRの場合: 必ず1番目のシートを削除、2番目以降にある"1"という名前のシートは対象とならない

xlgetdata(Excel[, 範囲=EMPTY, シート識別子=EMPTY])#
xlgetdata(Excel[, 範囲=EMPTY, <EMPTYPARAM>, シート識別子=EMPTY])
範囲をA1形式の文字列で指定し、その値を返します
パラメータ:
  • Excel (COMオブジェクト) -- Excel.ApplicationまたはWorkbookを示すCOMオブジェクト

  • 範囲 (文字列 省略可) -- 単一セル指定なら"A1"、範囲なら"A1:C3"のように指定

  • シート識別子 (文字列または数値 省略可) --

    得たい値のあるシート名またはインデックス番号(1から)を指定、省略時はアクティブシート

    第三引数について

    互換性のために第三引数を省略し、第四引数にシート名を指定することもできます

戻り値の型:

値または配列、値の型はセルによる

戻り値:

範囲の指定方法により異なります

  • 単一セル指定: セルの値を返す

  • 範囲指定: 範囲内の値を順に格納した配列を返す

範囲指定時の注意

UWSCではインデックスが1から始まるSafeArrayが返っていましたが
UWSCRでは通常の配列が返るためインデックスが0からになります

xlgetdata(Excel, 行番号, 列番号[, シート識別子=EMPTY])
セルの行と列の番号を指定しその値を得ます
パラメータ:
  • Excel (COMオブジェクト) -- Excel.ApplicationまたはWorkbookを示すCOMオブジェクト

  • 行番号 (数値) -- 値を得たいセルの行番号 (1から)

  • 列番号 (数値) -- 値を得たいセルの列番号 (1から)

  • シート識別子 (文字列または数値 省略可) -- 得たい値のあるシート名またはインデックス番号(1から)を指定、省略時はアクティブシート

戻り値の型:

セルによる

戻り値:

指定セルの値

xlsetdata(Excel, [, 範囲=EMPTY, シート識別子=EMPTY, 文字色=EMPTY, 背景色=EMPTY])#
xlsetdata(Excel, [, 範囲=EMPTY, <EMPTYPARAM>, シート識別子=EMPTY, 文字色=EMPTY, 背景色=EMPTY])
A1形式で指定したセルまたはセル範囲に値を入力します
入力したい値が配列で、かつ単一セルを指定した場合は指定セルを起点として配列の値を入力します
パラメータ:
  • Excel (COMオブジェクト) -- Excel.ApplicationまたはWorkbookを示すCOMオブジェクト

  • () --

    入力したい値 (配列可)

    入力値ごとの入力パターン

    入力値により入力方法が代わります

    • 単一の値: 指定範囲すべてに同一の値が入力されます

    • 一次元配列: 指定行の列ごとに配列要素がそれぞれ入力されます、範囲が複数行の場合それぞれの行に入力されます

    • 二次元配列: 配列を行列とみなし各要素を該当するセルに入力します

    配列サイズが指定範囲を超える場合、超過分は入力されません
    指定範囲が配列サイズを超える場合、不足箇所には #N/A が入力されます

  • 範囲 (文字列 省略可) -- A1形式でセルまたはセル範囲を指定

  • シート識別子 (文字列または数値 省略可) --

    得たい値のあるシート名またはインデックス番号(1から)を指定、省略時はアクティブシート

    第三引数について

    互換性のために第三引数を省略し、第四引数にシート名を指定することもできます

  • 文字色 (数値 省略可) -- 該当セルの文字色を変更する場合にBGRで指定

  • 背景色 (数値 省略可) -- 該当セルの背景色を変更する場合にBGRで指定

戻り値の型:

真偽値

戻り値:

成功時TRUE、失敗時FALSE

xlsetdata(Excel, , , [, シート識別子=EMPTY, 文字色=EMPTY, 背景色=EMPTY])
行列番号で指定したセルに値をセットする
入力したい値が配列の場合は指定セルを起点に配列の値を入力します
パラメータ:
  • Excel (COMオブジェクト) -- Excel.ApplicationまたはWorkbookを示すCOMオブジェクト

  • () -- 入力したい値 (配列可)

  • (数値) -- 入力したいセルの行番号 (1から)

  • (数値) -- 入力したいセルの列番号 (1から)

  • シート識別子 (文字列または数値 省略可) -- 得たい値のあるシート名またはインデックス番号(1から)を指定、省略時はアクティブシート

  • 文字色 (数値 省略可) -- 該当セルの文字色を変更する場合にBGRで指定

  • 背景色 (数値 省略可) -- 該当セルの背景色を変更する場合にBGRで指定

戻り値の型:

真偽値

戻り値:

成功時TRUE、失敗時FALSE

// A1セルに100が入力される
xlsetdata(excel, 100, "A1")

// A2,B2,C2に200が入力される
xlsetdata(excel, 200, "A2:C2")

// A3に301, B3に302, C3に303が入力される
xlsetdata(excel, [301,302,303], "A3:C3")

// 単一セル指定で配列を渡した場合はそのセルを起点に配列の値が入力される
// A4に401, B4に402, C4に403になる
xlsetdata(excel, [401,402,403], "A4")

// 配列サイズが範囲より大きい場合
// C5に503は入力されない
xlsetdata(excel, [501,502,503], "A5:B5")

// 配列サイズが範囲より小さい場合
// 配列を超えた部分であるD6は#N/A
xlsetdata(excel, [601,602,603], "A6:D6")

// 二次元配列は行列になる
//   |  A  |  B  |
// 7 |  701|  702|
// 8 |  801|  802|
xlsetdata(excel, [[701,702],[801,802]], "A7:B8")

// 二次元配列で単一セルを指定した場合でもそのセルを起点に入力される
xlsetdata(excel, [[901,902,903],[1001,1002,1003]], "A9")

// 行列番号指定
xlsetdata(excel, [[1101,1102],[1201,1202],[1301,1302]], 11, 1)