[[20160826052544]] 『テキストボックスに値があるシートのみを印刷』(トモエ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『テキストボックスに値があるシートのみを印刷』(トモエ)

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.