- ベストアンサー
Excel チェックボックスにより選択され印刷
よろしくお願いします。 A□ (F10のセルにtrue) B□ (F11のセルにtrue) C□ (F12のセルにtrue) Aならページ60 Bならページ70 Cならページ80 チェックボックスを3つ用意して、チェックがされている個所(ページ)のみ印刷をしたいです。 チェックボックスオンでtrueを返すまでは設定できたのですが、例えば、Aがオン(F10にtrueが表示)ならページ60を印刷と言うのがなぜか出来なくて困っています。 ご教授下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
という事は全部にチェックしてあったら、 60ページ、70ページ、80ページ 飛び飛びに印刷するのですか。 Option Explicit ' Sub Macro1() Dim ROut As Integer Dim Page As Integer ' For ROut = 10 To 12 ' If Cells(ROut, "F") Then Page = ROut * 10 - 40 ActiveSheet.PrintOut From:=Page, To:=Page End If Next ROut End Sub
その他の回答 (3)
- watabe007
- ベストアンサー率62% (476/760)
参考に Sub Test() If Range("F10").Value Then ActiveSheet.PrintOut From:=60, To:=60 If Range("F11").Value Then ActiveSheet.PrintOut From:=70, To:=70 If Range("F12").Value Then ActiveSheet.PrintOut From:=80, To:=80 End Sub
お礼
ありがとうございます!
- SI299792
- ベストアンサー率47% (774/1618)
「ページ60」が解りません。何でしょうか。 私が思い付くのは、 ①領域に「ページ60」等の名前が付いている。(名前の管理) ②どこかのセル「ページ60」が入っている ③印刷範囲が 100ページ位あり、その中の60ページ(1ページだけ)印刷。 取りあえず①と解釈して作りました。 Option Explicit ' Sub Macro1() Dim ROut As Long ' For ROut = 10 To 12 ' If Cells(ROut, "F") Then ActiveSheet.PageSetup.PrintArea = "ページ" & ROut * 10 - 40 ActiveSheet.PrintOut End If Next ROut End Sub
お礼
ありがとうございます!
補足
ご回答ありがとうございます。 説明不足で失礼しました。 ③印刷範囲が 100ページ位あり、その中の60ページ(Aの場合)(1ページだけ)印刷。 をしたいです。 チェックボックスオンされたやつのみ(AだけとかA B C全部とか)印刷されると良いのですが。 よろしくお願いします。
- imogasi
- ベストアンサー率27% (4737/17069)
質問の内容から、エクセル(VBA)の未経験者と推測する。 まだこういうことをやるのは、早すぎるのではないか。凝りすぎと思う。 他人に使ってもらうため、というなら、なおさら経験を積んでからやるべきと思う。 エクセル、VBA、使う立場の人間心理など。 ーー チェックボックスを設けるのは、場所的に (1)ユーザーフォームに (2)ワークシートに (3)その他に があるが、 この(1)が標準で、(2)は勉強が必要な面がある ーー VBAを使うことにならざるを得ないと思うのだが、イベントという考えを利用する必要がある。 今回は、チェックボックス(コントロールの一種)には、(エクセルには)マクロの登録と言う仕組みがあるので、それを使うことになろう。いわば、Clickイベント1つに制限版です。 ーー これらコントロールと、ワークシートのセル(番地で表される)は 根源的には関係ないもので、LinkedCellなどでエクセルが、わざわざ設けた仕組によればそうなるという仕組みに過ぎない。 だからエクセルシートのセルの値がTRUEならば、何々すると考えるよりも チェックボックスがクリックされたらとか、チェック状態なら、と捉える方がよいと思う。 ーー 標準モジュールに Sub test01() ActiveSheet.PrintOut From:=1, To:=1 End Sub Sub test02() ActiveSheet.PrintOut From:=2, To:=2 End Sub のようなコードを作って置く。ページ設定操作の一部の限定版です。 ページ番号的に、FromとToで指定する。単一1ページ限定なら、FromとToは同じ値にする。 これで印刷するページ該当のチェックボックスをマウスなどで、Onにすると、印刷が始まると思う。 1,2ページでテスト済み。 コントロールのデザインモードで、右クリックして出る、マクロの登録で,test01やTest02を指定(コントロールごとに)紐づけて)おく。 後は、これで印刷するページ該当のチェックボックスをOnにすると印刷が始まる。 印刷指定後、チェックボックすをOffにすることは略。
お礼
なかなか自分でExcelを触れる時が無くて試せてませんが、ひとまずお礼まで。 ありがとうございました