みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL VBA Applicationインスタンス内での範囲指定

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Private Const SCol = 1
Private Const SRow = 1
Private Const ECol = 1
Private Const ERow = 1

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add

xlBook.Sheets("Sheet1").Range("A1") = 1
xlBook.Sheets("Sheet1").Range(Cells(SCol,SRow), Cells(ECol, ERow)).Borders.LineStyle = True
xlBook.SaveAs "c:\ss.xls"
xlBook.Close
xlApp.Quit

Set xlApp = Nothing
Set xlBook = Nothing

以上のようにEXCEL VBA内で新規ExcelApplicationインスタンス内で値を代入し、線を引いているのですが線を引く範囲指定部分でアプリケーション定義またはオブジェクト定義のエラーですと表示されます。

xlBook.Sheets("Sheet1").Range("A1:B2").Borders.LineStyle = True
↑のような形であればエラーは出ません。
xlBook.Sheets("Sheet1").Range(Cells(1,1),Cells(2,2)).Borders.LineStyle = True
↑ではエラーが出ます。

新規ExcelApplicationインスタンス内でのRange(Cells)の使用方法が違うのでしょうか?よろしくお願いします。

投稿日時 - 2007-10-11 16:05:31

QNo.3420435

すぐに回答ほしいです

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

下記ではいかがでしょうか?

With xlBook.Sheets("Sheet1")
.Range("A1") = 1
.Range(.Cells(SCol, SRow), .Cells(ECol, ERow)).Borders.LineStyle = True
End With

投稿日時 - 2007-10-11 16:11:34

お礼

hana-hana3 様
素早いご回答ありがとうございます。
Cellsと略してしまうとActiveSheets扱いになってしまうので、Rangeと指定しているSheetと違うSheetなのでこういったエラーが発生するのですね。基本的なことを忘れていました。

投稿日時 - 2007-10-11 16:20:16

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問