ボランティア募集

Mission

  • われわれのミッションは、
    「集団活動をとおして、おたがいの交流の輪をひろげる」
    ことです。
2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

« さてさて今月は | トップページ | サークルKサンクスがなくなるとガルパンが困る »

2016年2月 3日 (水)

(Excel VBA)印刷範囲指定ではAddressプロパティを使う[備忘録]

ExcelのVBAで、印刷範囲の指定を動的に切り替えたいのです。
最大行が毎回変わる表を印刷するので。

PageSetupのPrintAreaプロパティに値を設定します。値はA1形式です。
今回のマクロでは行番号と列番号を取得しているので、既存コードを活かしてRangeでエリア指定したいのです。

特に、Columnで値を取得できても、絶対位置の数値です。いちいちアルファベットに置き換える、などということをしなくていいようになっているはずなのです。
初歩的なことを知らない自分でした。。

結論

RangeでA1形式の値を取得するためには、Addressプロパティを使用します。

試しにイミディエイトウィンドウに値を出してみました。

' 出力テスト
Sub test001()
    With ActiveSheet
        Debug.Print .Range(.Cells(1, 1), .Cells(10, 20)).Address
    End With
End Sub
【イミディエイト出力内容】
$A$1:$T$10

普通に文字列でA1形式の場所が出ました。

書いたコード

そのまま使えることが分かったので、以下のようになりました。Cellsの値は変数にしています。

' 印刷範囲指定
With ActiveSheet
    .PageSetup.PrintArea = _
        .Range(.Cells(開始行番号, 開始列番号), .Cells(終了行番号, 終了列番号)).Address
End With

関数を埋め込むときなどにも使えますね。
そういえば、苦労して関数を埋め込んでいたような気がします。。
もっと早く知っていればよかったです ^ ^;

ちなみに

なにも指定しないと絶対参照形式になります。
相対参照形式にしたい場合は、RowAbsoluteやColumnAbsoluteにFalseを設定しましょう。

.Address(RowAbsolute:=False)

といった具合です。

« さてさて今月は | トップページ | サークルKサンクスがなくなるとガルパンが困る »

パソコン・インターネット」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: (Excel VBA)印刷範囲指定ではAddressプロパティを使う[備忘録]:

« さてさて今月は | トップページ | サークルKサンクスがなくなるとガルパンが困る »

新ブログ

わたしたちのこと

  • わたしたち「ともだちひろば運営委員会」は、埼玉県戸田市内を中心に活動するボランティア団体です。「ともだちひろば」の企画と運営を行います。
    「ともだちひろば」は、障がいのある方たちが余暇を楽しむためのイベントです。職場や学校とは違う、交流の場所になります。体操や作品づくりやゲームなどの集団活動を楽しむイベントです。季節を感じ、日本の伝統文化も体験できます。

スポンサーリンク

Twitter