電子書籍の厳選無料作品が豊富!

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)の使用方法が違うのでしょうか?よろしくお願いします。

A 回答 (1件)

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



With xlBook.Sheets("Sheet1")
.Range("A1") = 1
.Range(.Cells(SCol, SRow), .Cells(ECol, ERow)).Borders.LineStyle = True
End With
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/10/11 16:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!