• ベストアンサー

SETを使ったほうがよい?

accwessからエクセルファイルを開きたいのですが、 App.Workbooks.Open と、 Set xlBook = xlApp.Workbooks.Open とどちらを使った方がいいのでしょうか? ////////////////////////////////////////////////////////// Private Sub ファイル1_Click() Dim App As Object Dim MyFileName As String MyFileName = "D:\My Documents\test.xls" Set App = CreateObject("Excel.Application") App.Workbooks.Open FileName:=MyFileName App.Visible = True End Sub でも Private Sub ファイル2_Click() Dim xlApp As Object Dim xlBook As Object Dim FileName As String Const FolderName = "D:\My Documents\test.xls" Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(FolderName & FileName) xlApp.Visible = True Set xlApp = Nothing Set xlBook = Nothing End Sub ////////////////////////////////////////////////////////// でも開けました。 多分、SETを使うかどうかの違いだと思うのですが VBAでコードを作る際、どちらのコードを使った方がいいか教えてください。

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

  • ベストアンサー
回答No.2

こんにちは。 ご質問のコードの内容では、 >Set xlBook = xlApp.Workbooks.Open(FolderName & FileName) VBA系なら、単にブックを開けるだけで、その変数を何も使っていないのですから、要らないと思います。別に手抜きをしているわけではありません。不必要なコードを入れる必要もありません。 ただし、そのお使いの言語によっては、開いたブック、シートが、プロセス側に残ることもありますから、その場合は、変数が必要です。

sad9sd
質問者

お礼

開くだけなら手抜きなわけではなく不要なわけですね。ありがとうございました。

その他の回答 (1)

回答No.1

オブジェクト型変数定義が面倒なのか、Setしない人もいますね。 自分が付けた簡潔な名前を使えば、書き易くなり、読み易くもなる、これは間違いないでしょう、、、 Const FileName = "D\tmp\ex.xls" Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(FileName) Set xlSheet = xlBook.Worksheets(1)

sad9sd
質問者

お礼

めんどくさくなければ SETを使うのは何かと便利そうですね。 デメリットが見当たらないので使って行こうと思います。