- ベストアンサー
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の使い方、テストの仕方を教えてください。
- みんなの回答 (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")
お礼
ご回答ありがとうございます!