Function Reference

ObjGet

存在するプロセス、ファイル名からCOMオブジェクトの参照を取得します。

ObjGet ( "filename" [, "classname"] )

 

パラメータ

filename オブジェクトが存在するファイルのフルパス(注意を参照)
classname [オプション] オブジェクトのクラス。次のフォーマットで指定。
"appname.objectype"

 

返し値

成功 オブジェクトを返します。
失敗 0を返し、@errorを1に設定します。

 

注意

Classnameだけで使用する場合はFilenameはオプション扱いになりますが、省略することはできません。
次のようにFilenameには空文字列を指定してください。
例:$Object = ObjGet("","Excel.Application")

Filenameを使用する場合はClassnameはオプション扱いになります。
オプションは単一のファイルに複数のクラスが定義されていて、その中の特定のクラスにアクセスしたい場合にだけ必要になります。

全てのコンピュータが同じオブジェクトを持っている訳ではありせん。ObjGet()呼び出し後、必ずエラーチェックをおこなってください。

オブジェクトについてのより詳しい説明についてはObj/COM Referenceを参照してください。

 

関連

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