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

お世話になっております。
ご存知の方がいらっしゃいましたら、お手数ですがご教授願えますでしょうか?

AccessからデータをExcelへエクスポートした際、
印刷範囲の指定を行いたいのですが、うまくいきません。

データを指定したセルにセットした後、

ActiveSheet.PageSetup.PrintArea = "$A$1:$I$30"

と指定しているのですが、
「オブジェクト変数またはWithブロック変数が設定されていません」
とエラーが出てしまいます。

オブジェクトブラウザで確認すると、
ActiveSheetはExcel.Globalのメンバとなっていますが、
Excel.Globalから書き込んでも同じエラーが出てしまいます。

もしかしてAccess上ではExcelの印刷範囲は指定できないのでしょうか?

お手数ですが宜しくお願いいたします。

A 回答 (2件)

GetObject関数


http://officetanaka.net/excel/vba/function/GetOb …

を参考に

Dim xlapp As Object
Set xlapp = GetObject(, "Excel.Application")
xlapp.ActiveSheet.PageSetup.PrintArea = "$A$1:$I$30"

とかかな?(自信ないですけど)
    • good
    • 0
この回答へのお礼

Dim xlapp As Object



Set xlapp = GetObject(, "Excel.Application")
xlapp.ActiveSheet.PageSetup.PrintArea = "$A$1:$I$30"

と記述したところ、無事に印刷範囲が設定できました。
Setしていなかったのと、Objectを宣言していなかったのが原因だったんですね(汗

ありがとうございました!

お礼日時:2009/04/21 11:08

この質問は内容的にはエクセルVBAの質問か。


実行はエクセルからではなくアクセスVBAからか。「アクセス上では(エクセルの操作が出来ない・)」と言う表現は無いのでは。
ーー
Googleで「オブジェクト変数またはwithブロック変数が設定されていません excel」で照会すればたくさん記事が出ます。どれに当たるか調べてください。
ActiveSheetを臨時に、Worksheets(”XXX”)と具体名を入れて指定し、実行してうまく行きませんか。もし旨く行けばエラーはこの表現にかかわるものでしょう

この回答への補足

説明が足りませんでした。すみませんでした。

>AccessからデータをExcelへエクスポートした際、
>印刷範囲の指定を行いたいのですが、うまくいきません。
>データを指定したセルにセットした後、
>ActiveSheet.PageSetup.PrintArea = "$A$1:$I$30"
>と指定しているのですが、
と記述したのですが、わかりづらかったでしょうか?
一応VBAのコードを書いたので、アクセス上というのは
「ACCESS VBA上では・・・」という意味だったのですが・・・。

n-junさんのコードを記述したところ、無事印刷範囲が設定できました。
imogasiさんもご教授頂きありがとうございました。

補足日時:2009/04/21 11:10
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報