[[20150303115152]] 『印刷』(はなちゃん) ページの最後に飛ぶ

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

 

『印刷』(はなちゃん)

データ一覧(シート6)からシート7に2つの同じフォームがあって、そこにデータ一覧から順番に印刷をしたいのですが印刷するマクロの方法をご教授いただけないでしょうか。
ワードでの印刷でなくエクセルで行いたいです。
2つのフォームは、「vlookup」で表示しております。検索値は1つ目「A1」、2つ目「H1」にA1+1で表示
データは増えたり減ったりします。データの表は40行 10列
データ 10 a,b,c,d,e,f,g,h,i,j

< 使用 Excel:Excel2007、使用 OS:Windows7 >


 >検索値は1つ目「A1」、2つ目「H1」にA1+1で表示 
 ってことは、データは連番?
 昇順もしくは、A1とH1のデータはデータ一覧に規則正しく(例えば2行ワンセット)並んでいますか?

 データはA列から入力されていますか?
(稲葉) 2015/03/03(火) 14:47

データはA列から入力されています。
データは、A列に1から30の数字、B列からデータを入力しています。
(はなちゃん) 2015/03/03(火) 15:31

 おそくなりました。
 ご提示いただいた条件を基に、テストしております。
    Sub 印刷テスト()
        Dim d
        Dim i As Long
        d = Filter([TRANSPOSE(IF(シート6!A1:A30<>"",シート6!A1:A30,CHAR(2)))], Chr(2), False)
        With Sheets("シート7")
            For i = 1 To UBound(d) Step 2
                .Range("A1").Value = d(i)
                .PrintPreview
                '.PrintOut copies:=1
            Next i
        End With
    End Sub

 PrintPreviewで確認したのち、PrintOutのコメントアウトを外して、PrintPreviewは削除してください。
(稲葉) 2015/03/03(火) 18:40

稲葉さん
ありがとうございます。
これで一度に印刷が出来るようになりました。
これからマクロを覚えればいろんなことが簡単に出来るようになるよう勉強いたいと思います。
(はなちゃん) 2015/03/04(水) 10:58

一度に印刷が出来るようになりましたが
たとえば、データの3番目から7番目までを印刷するマクロの方法をご教授いただけないでしょうか。
印刷すると毎回全データを印刷しないといけないので用紙が大変です。

(はなちゃん) 2015/03/06(金) 09:08


 用紙がどう大変なのか大変興味ありますが、

 シート6のデータを無視して、(1から30までの「数字」とのことですので)
 Noを直接入力するのはいかがですか?
    Sub 印刷テスト()
        Dim p
        Dim i   As Long
        Dim msg As String
        msg = "印刷したいページ番号をカンマ(,)区切り、及び連続する場合ハイフン(-)でつなげて入力してください" & vbNewLine & _
              "例:1,5-9,13 ・・・1,5,7,9,13のデータを印刷します"
        With Sheets("シート7")
            For Each p In GetPage(InputBox(msg, "印刷No入力", "1,3-5"))
                If p = 0 Then Exit Sub
                If p Mod 2 = 1 Then
                    .Range("A1").Value = p
                    .PrintPreview
                    '.PrintOut copies:=1
                End If
            Next p
        End With
    End Sub
    Function GetPage(ByVal s0 As String) As Variant
        Dim AL As Object
        Dim p As Variant
        Dim i As Integer
        Set AL = CreateObject("System.Collections.ArrayList")
        With CreateObject("VBScript.RegExp")
            .Pattern = "^\d*-\d*$"
            For Each p In Split(s0, ",")
                If p <> "" Then
                    If IsNumeric(p) Then
                        AL.Add CInt(p)
                    ElseIf .Test(p) Then
                        For i = Split(p, "-")(0) To Split(p, "-")(1)
                            AL.Add i
                        Next i
                    Else
                        MsgBox p & "は頁番号に変換できません。規則に従って入力し直してください"
                        GetPage = Array(0, 0)
                        Exit Function
                    End If
                End If
            Next p
        End With
        AL.Sort
        Set GetPage = AL.Clone
    End Function

(稲葉) 2015/03/06(金) 09:29


稲葉さん
思ったとおりに印刷が出来ました。
ありがとうございます。
(はなちゃん) 2015/03/06(金) 10:49

コメント返信:

[ 一覧(最新更新順) ]


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