- ベストアンサー
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でコードを作る際、どちらのコードを使った方がいいか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 ご質問のコードの内容では、 >Set xlBook = xlApp.Workbooks.Open(FolderName & FileName) VBA系なら、単にブックを開けるだけで、その変数を何も使っていないのですから、要らないと思います。別に手抜きをしているわけではありません。不必要なコードを入れる必要もありません。 ただし、そのお使いの言語によっては、開いたブック、シートが、プロセス側に残ることもありますから、その場合は、変数が必要です。
その他の回答 (1)
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
オブジェクト型変数定義が面倒なのか、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)
お礼
めんどくさくなければ SETを使うのは何かと便利そうですね。 デメリットが見当たらないので使って行こうと思います。
お礼
開くだけなら手抜きなわけではなく不要なわけですね。ありがとうございました。