VBA関数
CreateObject関数

Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
最終更新日:2019-11-20

CreateObject関数


CreateObject関数は、ActiveX オブジェクトへの参照を作成して返します。
CreateObject関数を使う事で、参照設定することなくActiveX オブジェクトを使用できるようになります。


CreateObject関数の構文

CreateObject(class,[servername])

class
必ず指定します。
内部処理形式が文字型 (String) のバリアント型 (Variant) の値を指定します。
作成するオブジェクトのクラスとアプリケーションの名前を指定します。
指定文字列の大文字小文字は問いません。
servername
省略可能です。
内部処理形式が文字型 (String) のバリアント型 (Variant) の値を指定します。
作成するオブジェクトを保存するネットワーク サーバの名前を指定します。
ローカル マシンで使用する場合は、空の文字列 ("") を指定します。

引数 class は、appname.objecttype の形式で指定します。
appname
必ず指定します。

内部処理形式が文字型 (String) のバリアント型 (Variant) の値を指定します。
オブジェクトを提供しているアプリケーションの名前を指定します。
objecttype
必ず指定します。
内部処理形式が文字型 (String) のバリアント型 (Variant) の値を指定します。
作成するオブジェクトの種類またはクラスを指定します。

戻り値
作成されたオブジェクトの参照が返されます。
オブジェクトを作成できなかった場合はエラーを返します。

CreateObjectの解説

CreateObject関数で作成したオブジェクトを利用するには、以下のような方法があります。
・CreateObject関数の戻り値をSetステートメントでオブジェクト変数に代入する
・Withステートメントのオブジェクトに指定する
・プロシージャー呼び出し時の実引数に指定する
等々の方法があります。

オートメーションに対応しているアプリケーションでは、少なくとも 1 種類のオブジェクトが提供されています。
複数のオブジェクトが提供されているものもあります。
たとえばWordでは、アプリケーション(Application)オブジェクト、文書(Document)オブジェクト、等が提供されています。

As Object または、As Variantを使用してオブジェクト変数を宣言すると、任意の種類のオブジェクトへの参照を格納できる変数を作成できます。
ただし、このような変数を使用してオブジェクトを操作する場合は、実行時バインディングが行われます。
つまり、プログラムの実行時にバインディングが行われます。
これに対し、事前バインディングは、プログラムのコンパイル時にバインディングが行われます。

事前バインディングを行うオブジェクト変数を作成するには、特定のクラス IDを指定してオブジェクト変数を宣言します。
事前バインド変数を使用して参照するとパフォーマンスは向上する可能性がありますが、宣言で指定したクラスへの参照しか含めることができなくなります。

CreateObject関数の使用例

Excelの新規イスタンスを作成
Dim xlApp As Object
Set xlApp = CreateObject("excel.application")
xlApp.Visible = True
xlApp.Quit
Set xlApp = Nothing

・オブジェクトへの参照を格納する変数を宣言
・CreateObjectでExcelアプリケーションへの参照を作成
・アプリケーションを表示する為に、Visibleプロパティに真(True)を設定
・処理終了後、Quit メソッドでアプリケーションを終了
・オブジェクトの参照を解放

Wordドキュメントを新規作成
Dim wdDoc As Object
Set wdDoc = CreateObject("Word.Document")
With wdDoc.Application
  .Visible = True
  .Selection.TypeText Text:="abc"
End With

・オブジェクトへの参照を格納する変数を宣言
・CreateObjectでWordドキュメントへの参照を作成
・Wordドキュメントの親オブジェクトであるApplicationを指定
・アプリケーションを表示する為に、Visibleプロパティに真(True)を設定
・カーソル位置に"abc"を入れる
ここでは、サンプルとして、"Word.Application"ではなく"Word.Document"で作成している点に注意してください。
※上記VBAではWordは起動されたままになります。

※VBA関数一覧

VBA関数の一覧と解説です、どんな関数があるかは一度は確認しておくとをお勧めいたします。どんな関数があるだけでも知っておけば、詳細の使い方は実際に使うときに調べても良いでしょう。文字列操作…34 分岐…3 型変換…14 データ判定…10 日付時刻…20 配列…6 ファイル操作…14 数学/財務…28 その他…18 MicrosoftDocsOfficeV…



同じテーマ「VBA関数」の記事

Abs関数
Hex関数
Oct関数
CreateObject関数
DoEvents関数
RGB関数
CBool関数
CByte関数
CCur関数
CDate関数
CDbl関数


新着記事NEW ・・・新着記事一覧を見る

GetObject関数|VBA関数(11月19日)
ActiveXコントロール|VBA入門(11月16日)
フォームコントロール|VBA入門(11月15日)
ジャンプの選択オプション(SpecialCells)|VBA入門(11月14日)
CSVの読み込み方法(ジャグ配列)(改)|VBAサンプル集(11月11日)
VBAでのCSVの扱い方まとめ|VBAサンプル集(11月9日)
VBAにおける変数のメモリアドレスについて|VBA技術解説(11月8日)
空文字列の扱い方と処理速度について(""とvbNullString)|VBA技術解説(1月7日)
Errオブジェクトとユーザー定義エラー|VBA入門(11月5日)
シングルクォートの削除とコピー(PrefixCharacter)|VBA技術解説(11月4日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.マクロって何?VBAって何?|VBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.セルに文字を入れるとは(Range,Value)|VBA入門



  • >
  • >
  • >
  • CreateObject関数

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
    掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ