存在するプロセス、ファイル名からCOMオブジェクトの参照を取得します。
ObjGet ( "filename" [, "classname"] )
パラメータ
filename | オブジェクトが存在するファイルのフルパス(注意を参照) |
classname | [オプション] オブジェクトのクラス。次のフォーマットで指定。 "appname.objectype" |
返し値
成功 | オブジェクトを返します。 |
失敗 | 0を返し、@errorを1に設定します。 |
注意
Classnameだけで使用する場合はFilenameはオプション扱いになりますが、省略することはできません。
関連
GUICtrlCreateObj, IsObj, ObjCreate, ObjEvent, ObjName
例
; クラス名を使用してオブジェクトを取得する例
;
; この例が成功するにはExcelはアクティブ化されている必要があります。
$oExcel = ObjGet("","Excel.Application") ; 存在するExcelオブジェクトを取得
if @error then
Msgbox (0,"ExcelTest","Error Getting an active Excel Object. Error code: " & hex(@error,8))
exit
endif
$oExcel.Visible = 1 ; GUI表示
$oExcel.workbooks.add ; 新しいワークブックを追加
exit
; ファイル名を使用してオブジェクトを取得する例
;
; この例が正常動作するためにはWorksheet.xlsというファイル名
; のExcelファイルがC:\ドライブのルートディレクトリに存在しなければならない。
$FileName="C:\Worksheet.xls"
if not FileExists($FileName) then
Msgbox (0,"Excel File Test","Can't run this test, because you didn't create the Excel file "& $FileName)
Exit
endif
$oExcelDoc = ObjGet($FileName) ; Excelオブジェクトをファイル名から取得
if IsObj($oExcelDoc) then
; Tip: 以下の行を非コメント化するとExcelが見えるようになる。(credit: DaleHohm)
; $oExcelDoc.Windows(1).Visible = 1; ワークブック内の最初のワークシートを可視か。
; $oExcelDoc.Application.Visible = 1; アプリケーションを可視化。(これがないとExcelが終了)
$String = "" ; String for displaying purposes
; 値を返さないドキュメントプロパティは無視する
$OEvent=ObjEvent("AutoIt.Error","nothing"); VBscriptの On Error Resume Next と同じ
For $Property In $oExcelDoc.BuiltinDocumentProperties
$String = $String & $Property.Name & ":" & $Property.Value & @CRLF
Next
Msgbox(0,"Excel File Test","The document properties of " & $FileName & " are:" & @CRLF & @CRLF & $String)
$oExcelDoc.Close ; Excelドキュメントを閉じる
else
Msgbox (0,"Excel File Test","Error: Could not open "& $FileName & " as an Excel Object.")
endif