COMオブジェクト#

COMオブジェクトの作成・取得#

createoleobj(ProgID)#
COMオブジェクトのインスタンスを得ます
パラメータ:

ProgID (文字列) -- COMオブジェクトのProgIDまたはCLSID

戻り値:

COMオブジェクト

getactiveoleobj(ProgID[, タイトル=EMPTY, n番目=1])#
既に起動中のCOMオブジェクトを得ます
タイトルが未指定の場合は指定ProgIDに該当しアクティブなオブジェクトを返します
タイトルを指定した場合はウィンドウタイトルに部分一致するウィンドウからProgIDに該当するオブジェクトを返します
パラメータ:
  • ProgID (文字列) -- COMオブジェクトのProgIDまたはCLSID

  • タイトル (文字列 省略可) --

    ExcelやWordなど、オブジェクトを取得したいウィンドウのタイトルを指定 (部分一致)

    MDI非対応

    MDIウィンドウは対象外です

  • n番目 (数値 省略可) -- タイトルに一致するウィンドウが複数ある場合、n番目を取得

戻り値:

COMオブジェクト

CLSIDの入力

CLSIDは {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} の形式で入力します
// WScript.ShellのCLSIDを指定
ws = createoleobj("{72C24DD5-D70A-438B-8A42-98424B88AFB8}")
print ws // ComObject(IWshShell3)
ws.Popup("Hello!")

コレクション#

getoleitem(コレクション)#
コレクションを配列に変換します
パラメータ:

コレクション (COMオブジェクト) -- コレクションを示すCOMオブジェクト

戻り値の型:

配列

戻り値:

コレクションの要素を格納した配列

UWSCとの違い

要素の数ではなく要素の配列を返すようになりました
それに伴い ALL_OLE_ITEM は廃止されました

サンプルコード

ws = createoleobj("WScript.Shell")
col = getoleitem(ws.SpecialFolders)
print col[0]

VARIANT#

vartype()#
VARIANTがどのような型であるかを調べます
パラメータ:

(VARIANT) -- VARIANT型の値

戻り値の型:

定数

戻り値:

VARIANTのデータ型を示す VAR定数

VARIANT以外を指定した場合

UWSCRの大半の値はVARIANT型ではありません
VARIANTではない値の場合は VAR_UWSCR が返ります
UWSCRにおける値の型を調べるには type_of() 関数をご利用ください

vartype(, VAR定数)
任意の値を指定した型のVARIANTに変換します
パラメータ:
  • (すべて) -- 任意の値

  • VAR定数 (定数) --

    変換する型を 定数 で指定

    以下の定数は使用できません

    • VAR_ASTR

    • VAR_USTR

    • VAR_UWSCR

戻り値の型:

VARIANT

戻り値:

指定した型のVARIANT

// 開いているExcelを取得
excel = getactiveoleobj("Excel.Application")
// 日付型のVARIANTに変換
date = vartype("2023/07/15", VAR_DATE)
// Excelのアクティブセルに日付型の値を入力
excel.ActiveCell.value = date
vartype(COMオブジェクト, プロパティ名)
COMオブジェクトのプロパティが返す値のVARIANT型を得ます
パラメータ:
  • COMオブジェクト (COMオブジェクト) -- 型を調べたいプロパティを持つCOMオブジェクト

  • プロパティ名 (文字列) -- 型を調べたいプロパティの名前

戻り値の型:

VAR定数またはEMPTY

戻り値:

プロパティの型、COMオブジェクト以外が渡された場合やプロパティが存在しない場合はEMPTY

excel = getactiveoleobj("Excel.Application")
// アクティブセルの型を調べる
vt = vartype(excel.activecell, "value")
// 得た値をVAR_定数名に変換
print const_as_string(vt, "VAR_")

VAR定数#

VAR定数一覧#

定数

詳細

VAR_EMPTY

0

EMPTY

VAR_NULL

1

NULL

VAR_SMALLINT

2

符号付き2バイト整数

VAR_INTEGER

3

符号付き4バイト整数

VAR_SINGLE

4

単精度浮動小数点数

VAR_DOUBLE

5

倍精度浮動小数点数

VAR_CURRENCY

6

通貨型

VAR_DATE

7

日付型

VAR_BSTR

8

文字列型

VAR_DISPATCH

9

IDispatch型 (COMオブジェクト)

VAR_ERROR

10

エラー

VAR_BOOLEAN

11

真偽値

VAR_VARIANT

12

VARIANT型

VAR_UNKNOWN

13

IUnknown型

VAR_SBYTE

16

符号付き1バイト整数

VAR_BYTE

17

符号なし1バイト整数

VAR_WORD

18

符号なし2バイト整数

VAR_DWORD

19

符号なし4バイト整数

VAR_INT64

20

符号付き8バイト整数

VAR_ASTR

256

互換性のために残していますが実際には使用できません

VAR_USTR

258

互換性のために残していますが実際には使用できません

VAR_UWSCR

512

UWSCRのデータ型

VAR_ARRAY

$2000 (8192)

配列

非推奨関数#

非推奨の理由

UWSCRにはSAFEARRAY型の値が存在しないため以下の関数は非推奨となりました
互換性のため関数は残していますが、UWSCとは結果が異なります
safearray([下限=0, 上限=-1, 二次元下限=EMPTY, 二次元上限=(二次元下限-1)])#
EMPTYを返します
パラメータ:
  • 下限 (数値 省略可) -- 無視されます

  • 上限 (数値 省略可) -- 無視されます

  • 二次元下限 (数値 省略可) -- 無視されます

  • 二次元上限 (数値 省略可) -- 無視されます

戻り値:

EMPTY