[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『テキストボックスに値があるシートのみを印刷』(トモエ)
Excel2003です。
値があるシートのみ印刷する、こんなものを作成したいのですが・・・
10シートあるブックです。
(シート数は予定で、今後増える場合があります)
シート1は入力専用で、印刷する必要はありません。
シート2はシート1に入力した内容を反映させた計算結果で必ず印刷したいです。
シート3〜10には、画像が1枚あり、それと”テキストボックス”が一つあります。
このテキストボックスは、入力シートで入力した値の一つが単純にイコールの値で入るだけの物です。
3〜10の各シートのテキストボックスが参照するセルはシートごとに異なります。
シート3〜10に貼り付けたテキストボックスには数量が入ります。
テキストボックスに値(0以上の整数)が入った場合のみ
そのシートを印刷したいです。値がないテキストボックスがあるシートは印刷の必要はありません。
この条件をマクロとしたボタンを入力シートに作成したのですが、
マクロで対応可能でしょうか?どのようなマクロになりますでしょうか?
ご教授願います。
< 使用 アプリ:、使用 OS:Windows7 >
テキストボックスがActiveXではない通常の(?)ものだとして、かなり手抜きですが。 数字が整数かどうかはチェックしていません。さらに、123XYZ といった入力でも数字とみなしています。 また、Sheet3以降の各シートには、必ずテキストボックスがあるという前提。 もちろん、ちゃんとした(?)厳密なチェックをすることも可能ですが。
(実際に運用する場合は PrintPreview を PrintOut に変更してください)
Sub Sample() Dim sh As Worksheet
For Each sh In Worksheets Select Case sh.Name Case "Sheet1" 'Nop Case "Sheet2" sh.PrintPreview Case Else If Val(sh.TextBoxes(1).Text) > 0 Then sh.PrintPreview End Select Next
End Sub
(β) 2016/08/26(金) 07:03
一応手抜きなしコードもアップしておきます。
Sub Sample2() Dim sh As Worksheet Dim s As String Dim n As Variant Dim tb As TextBox
For Each sh In Worksheets Select Case sh.Name Case "Sheet1" 'Nop Case "Sheet2" sh.PrintPreview Case Else For Each tb In sh.TextBoxes s = tb.Text If IsNumeric(s) Then n = Val(tb.Text) If n > 0 Then If n = Int(n) Then sh.PrintPreview End If End If End If Exit For Next End Select Next
End Sub
(β) 2016/08/26(金) 07:31
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.