人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルVBAについての質問です。
あるアクティブセルを基点に、範囲指定をしてを印刷しようとしていますが、範囲指定の部分でエラーがでてしまいます。式は次のとおりです。
ActiveSheet.PageSetup.PrintArea = "Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(20, 4))"
オフセットを使わずに固定した箇所を範囲指定する場合には、セルが「$」で絶対参照とされますが、オフセットを使う場合がいろいろと試したのですがよくわかりません。どなたか教えてください。

●質問者: nekoume
●カテゴリ:コンピュータ
✍キーワード:VBA アクティブ エクセル エラー オフセット
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kn1967
●27ポイント

http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop...(office.11).aspx

印刷するセル範囲を、コード記述時の言語の A1 形式の文字列で設定します。

上記のような仕様なので Address にて A1形式に変換したものを PrintArea に入れるようにします。

ActiveSheet.PageSetup.PrintArea = Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(20, 4)).Address

2 ● ken3memo
●27ポイント

ActiveSheet.PageSetup.PrintArea = "$D$10:$H$17"

とか、印刷範囲をXXX:XXXと文字列でできそうなので、

Dim strADDRESS As String 'と変数を1つ作ってから、

strADDRESS = ActiveCell.Offset(0, 0).Address & ":" & ActiveCell.Offset(20, 4).Address

'↑.Addressでアドレス:アドレスを作って↓代入

ActiveSheet.PageSetup.PrintArea = strADDRESS


こんな感じで、どうでしょうか?

1行で、

ActiveSheet.PageSetup.PrintArea = ActiveCell.Offset(0, 0).Address & ":" & ActiveCell.Offset(20, 4).Address

でも、いけると思います。

ハズしていたらスミマセン。 http://www.moug.net/tech/exvba/0050094.htm


3 ● HALSPECIAL
●26ポイント

ActiveSheet.PageSetup.PrintArea = Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(20, 4)).Address


とします。

なお、

ActiveCell.Offset(0, 0)

は、

ActiveCell

と同じです。

ActiveSheet.PageSetup.PrintArea = Range(ActiveCell, ActiveCell.Offset(20, 4)).Address

でも良いです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ