[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件によって印刷範囲を変えて印刷する』(MIU)
いつもお世話になっております。
早速ですが、次の条件によって印刷範囲を変更して印刷をするマクロを作りたいのですが
途中までサイト等を見ながら自分なりに作成してみたのですが、うまく動きません。
アドバイスお願いできればと思います。
宜しくお願い致します。
条件:「J4」のセルに入力があった時、コマンドボタン「印刷」を押すと
セル「A1:N38」とセル「O3:R14」までをA4計2枚に印刷する。
また「J4」に入力が何もない時は、「A1:N38」の範囲のみA4に1枚印刷する。
下記が自分なりに作ってみたマクロです。
初心者なもので、プログラムの基礎があまりよくわかってない所が多々ありますが、
何卒アドバイスの程、宜しくお願いします。
Private Sub 印刷_Click()
If Range("J4").Value = "" Then
ActiveSheet.PageSetup.PrintArea = "" ActiveSheet.PageSetup.PrintArea = "$A$1:$N$38" ActiveWindow.Selection.PrintOut copies:=1, collate:=True Else ActiveSheet.PageSetup.PrintArea = "" ActiveSheet.PageSetup.PrintArea = "$A$1:$N$38" ActiveSheet.PageSetup.PrintArea = "$O$3:$R$14" ActiveWindow.Selection.PrintOut copies:=1, collate:=True End If End Sub
[エクセルのバージョン]Excel2003
[OSのバージョン]
WindowsXP
こんなかんじでは?
Private Sub 印刷_Click() With ActiveSheet If .Range("J4").Value = "" Then .PageSetup.PrintArea = "$A$1:$N$38" .PrintOut copies:=1, collate:=True Else .PageSetup.PrintArea = "$A$1:$N$38,$O$3:$R$14" .PrintOut copies:=1, collate:=True End If End With End Sub
(INA)
いつもありがとうございます。
早速、試してみたところうまく動きます。
ありがとうございます。
ちなみに、With ActiveSheet というのは、全ての行にActiveSheetを
使用してる様な感じになるんですか?
MIU
そうです。 . で始めると、省略できます。 with ステートメント といいます。 (INA)
お返事ありがとうございます。勉強になりました。
また、使いこなせれるようにがんばります。
MIU
----2007/9/14-----
a1 = InputBox("何枚目を印刷しますか?")
B = 42 * a1
b1 = B - 41
D = 42 * a1
ActiveSheet.PageSetup.PrintArea = Range(Cells(b1, "A"), Cells(D, "h"))
With ActiveSheet.PageSetup
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.CenterHorizontally = True
End With
End Sub
結果戻り値が出てきません。
大分時間がたってしまいましたが、まだ見て居られますか?
>結果戻り値が出てきません。 と言うのはどういう事ですかね?
Sub BBB()
a1 = InputBox("何枚目を印刷しますか?")
B = 42 * a1 b1 = B - 41 D = 42 * a1
Range(Cells(b1, "A"), Cells(D, "h")).Activate End Sub
こんなのを実行した時選択される範囲が希望する範囲と異なる と言う事ですかね?
なお、コメント記入の際は その都度ご署名を御願いしますね。
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.