COMオブジェクト#
COMオブジェクトの作成・取得#
- createoleobj(ProgID)#
- COMオブジェクトのインスタンスを得ます
- パラメータ:
ProgID (文字列) -- COMオブジェクトのProgIDまたはCLSID
- 戻り値:
- getactiveoleobj(ProgID[, タイトル=EMPTY, n番目=1])#
- 既に起動中のCOMオブジェクトを得ますタイトルが未指定の場合は指定ProgIDに該当しアクティブなオブジェクトを返しますタイトルを指定した場合はウィンドウタイトルに部分一致するウィンドウからProgIDに該当するオブジェクトを返します
- パラメータ:
ProgID (文字列) -- COMオブジェクトのProgIDまたはCLSID
タイトル (文字列 省略可) --
ExcelやWordなど、オブジェクトを取得したいウィンドウのタイトルを指定 (部分一致)
MDI非対応
MDIウィンドウは対象外ですn番目 (数値 省略可) -- タイトルに一致するウィンドウが複数ある場合、n番目を取得
- 戻り値:
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以外を指定した場合
- 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_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) |
配列 |
非推奨関数#
非推奨の理由
- safearray([下限=0, 上限=-1, 二次元下限=EMPTY, 二次元上限=(二次元下限-1)])#
- EMPTYを返します
- パラメータ:
下限 (数値 省略可) -- 無視されます
上限 (数値 省略可) -- 無視されます
二次元下限 (数値 省略可) -- 無視されます
二次元上限 (数値 省略可) -- 無視されます
- 戻り値:
EMPTY