[[20171017215256]] 『1シート内で特定位置で特定数値以上の数値を印刷』(みほ) ページの最後に飛ぶ

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

 

『1シート内で特定位置で特定数値以上の数値を印刷範囲指定して印刷』(みほ)

説明が下手ですいませんがよろしくお願いします。

例えば1シートの1ページ目の特定個所に特定数値以上の数値があった場合
その1ページ目を印刷
さらに2ページ目の特定箇所に特定数値以上の数値があった場合
1・2ページを印刷
それを8ページまで印刷(1ページから順に印刷することは絶対として)
したいと思っているのですが
どうすれば出来るでしょうか?
ご教授頂ければ幸いです。

よろしくお願い致します。

< 使用 Excel:Excel2010、使用 OS:Windows8 >


マクロになりますが、全くわかりませんか?

(マナ) 2017/10/17(火) 22:02


マクロは使用したことがありません。
大変申し訳ありませんが教えて頂けないですか??
(みほ) 2017/10/17(火) 22:03

例えば、こんな感じでできます

 Option Explicit

 Sub test()
    Dim c As Range
    Dim n As Long

    n = 8

    For Each c In Range("b4,b3,b2,b1,a4,a3,a2, a1")   '★特定位置
        If c.Value >= 100 Then   '★特定数値
            ActiveSheet.PrintOut 1, n
            Exit For
       Else
            n = n - 1
       End If
    Next

 End Sub

(マナ) 2017/10/17(火) 22:24


返答ありがとうございます。
印刷は出来るのですが特定位置が0以上で印刷をかけたいと思っています。
上記マクロを引用させて頂くと全ページ数印刷されてしまうのですが
どうしたらよいでしょうか?
(みほ) 2017/10/17(火) 22:36

特定位置などと言わずに具体的にアドレスを教えてください

(マナ) 2017/10/17(火) 22:45


各ページで

 O39,O80,O121.O162,O203,O244

です(ゼロでは無くオーです)

各ページで数値が0以上のものを印刷したいです。
関数は上記セルに入っています。
(みほ) 2017/10/17(火) 22:49


なぜ6セルしかないのでしょうか?

(マナ) 2017/10/17(火) 22:54


大変申し訳ありません。

6ページまでありませんでした。
(みほ) 2017/10/17(火) 22:55


誤字すいません。

6ページまでしかありませんでした。

大変申し訳ありません。
(みほ) 2017/10/17(火) 22:57


特定セルには、数値が必ず入るという前提です。
つまり、負の数だと印刷しない。

 Sub test2()
    Dim c As Range
    Dim n As Long

    n = 6

    For Each c In Range("O244,O203.O162,O121,O80,O39")   '★特定位置
        If c.Value >= 0 Then '★特定数値
            ActiveSheet.PrintOut 1, n
            Exit For
       Else
            n = n - 1
       End If
    Next

 End Sub

(マナ) 2017/10/17(火) 23:04


特定セルに関数(Sam)で数値を出しているのですが
やはりすべて印刷されてしまいます。

負の数になるように関数でマイナスを入力してみたのですが
それでもなぜか印刷されてしまいます。
(みほ) 2017/10/17(火) 23:19


O244は、そんな値ですか?

(マナ) 2017/10/17(火) 23:25


↑タイプミスです。
O244は、どんな値ですか?

(マナ) 2017/10/17(火) 23:27


244はデータ上上からの入力なので0は多いです
(みほ) 2017/10/17(火) 23:50

???意味がわかりません。
つまり、今は0ということですか?
それなら6枚印刷でよいのではありませんか。

(マナ) 2017/10/17(火) 23:53


こういうことですか
 Sub test3()
    Dim c As Range
    Dim n As Long

    n = 1

    For Each c In Range("O39,O80,O121.O162,O203,O244")   '★特定位置
        If c.Value >= 0 Then '★特定数値
            ActiveSheet.PrintOut 1, n
            Exit For
       Else
            n = n + 1
       End If
    Next

 End Sub

(マナ) 2017/10/17(火) 23:56


順番はそういううことです。
ただ特定位置が0の場合は印刷の必要性がないんです。

説明下手で大変申し訳ありません
(みほ) 2017/10/18(水) 00:03


 >各ページで数値が0以上のものを印刷したいです。
↑こういう場合は0も含むって学校で習ったよね?

「0より大きい場合」
と表現しましょう。

それから、コードを読んで理解する気がないならマクロなんか使わない方がよいです。

「印刷範囲 可変」などで検索してみましょう。

http://yasu-excel.blogspot.jp/2014/07/blog-post_6.html
(まっつわん) 2017/10/18(水) 09:01


>順番はそういううことです。

意味がわかりません…
できるだけ、わかりやすいコードにしてみました。

 Sub test3()

    If Range("O39").Value > 0 Then
        ActiveSheet.PrintOut 1, 1
        Exit Sub
    End If

    If Range("O80").Value > 0 Then
        ActiveSheet.PrintOut 2, 2
        Exit Sub
    End If

    If Range("O121").Value > 0 Then
        ActiveSheet.PrintOut 3, 3
        Exit Sub
    End If

    If Range("O162").Value > 0 Then
        ActiveSheet.PrintOut 4, 4
        Exit Sub
    End If

    If Range("O203").Value > 0 Then
        ActiveSheet.PrintOut 5, 5
        Exit Sub
    End If

    If Range("O244").Value > 0 Then
        ActiveSheet.PrintOut 6, 6
        Exit Sub
    End If

 End Sub

(マナ) 2017/10/18(水) 19:32


↑間違えました。Exit Sub (6箇所)は全部削除してください。

(マナ) 2017/10/19(木) 18:46


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.