• ベストアンサー

New

モーグのIDを持ってないのでこちらで質問させてください。 クリエイトオブジェクト関数でNewを付けるパターンをたまに見かけるのですが、 Newを付けた場合とつけない場合は何が違うのでしょうか? http://www.moug.net/tech/acvba/0060028.html を読んでみたのですが 例2) のほうの Dim objXL As Excel.Application Set objXL = New CreateObject("Excel.Application") と言う書き方をすると赤くなってしまい、テストできません。 newの使い方、テストの仕方を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ap_2
  • ベストアンサー率64% (70/109)
回答No.1

#1ヶ月も前の質問だけど・・・ (1)はExcelがあれば取得/なければ生成。(2)は、必ず新しいExcelを生成します。※「Excelがない」はExcel以外で実行時のみ。  Set objXL = Excel.Application '(1)  Set objXL = New Excel.Application '(2) 生成直後のExcelは非表示なので、表示すると確認できます。  objXL.Visible = True  objXL.Workbooks.add ただし・・・ (1)のApplicationはプロパティ、(2)のApplicationはクラス名。 通常は「New クラス名」で生成。"Excelの場合"は"クラス名と同名の便利機能"があるよ、という話。 全くの別モノなので、並列に語ること自体間違ってます。 ちなみに、Newはクラス名、CreateObjectはプログラム名から生成。 クラス名はライブラリ参照(ツール>参照設定)が必要になるので、どちらでもできる場合は、そのへんで使い分けます。  Dim obj As Object 'ライブラリに依存しない型で  Set obj = CreateObject("Excel.Application")

rzmmzzcirm
質問者

お礼

ご回答ありがとうございます!

関連するQ&A