[[20050622000336]] 『印刷枚数を印字する』(MK) ページの最後に飛ぶ

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

 

『印刷枚数を印字する』(MK)
はじめまして。ひとつの文章(1ページ)を複数枚印刷した場合、
枚数を印字できるような関数はあるのでしょうか?
現在は、ナンバリングで数字を押しているのですが、
枚数が多いので印刷と同時に数字が印字できれば大変楽になるのですが。
よろしくご教授ください。
Excel2000
Windows98SE


 下記のコードを標準モジュールに入れて、登録したボタンで印刷するようにすることではどうでしょうか。
 
Sub NumberPrint()
MyCopies = Application.InputBox("印刷枚数を入力してください。", "印刷枚数設定", 1, Type:=2)
If MyCopies = False Then Exit Sub
For i = 1 To MyCopies
    With ActiveSheet.PageSetup
        .CenterFooter = MyCopies & "部の内の" & i & "部"
    End With
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
Next i
    With ActiveSheet.PageSetup 
        .CenterFooter = ""   'フッタの設定を削除
    End With
End Sub

 (川野鮎太郎)

印刷枚数を印字するワード編』(MK)
先日下記質問をしたものです。
お教えいただいた方法でエクセルはうまくいきましたがこれをワード文書にも応用することはできるのでしょうか?
よくマクロはわからないのでお教えいただいたコードをそのままワードでマクロ登録しでみたのですがエラーがでてしまいました。
エクセルの学校なのにワードの質問で申し訳ございませんがよろしくお願いいたします。


 WordのVBAは使ったことがなかったのですが、ちょっとチャレンジしてみました。
Sub NumberPrint()
    MyCopies = InputBox("印刷枚数を入力してください。", "印刷枚数設定")
    If MyCopies = "" Then Exit Sub
    For i = 1 To MyCopies
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
        Selection.TypeText Text:=MyCopies & "部の内の" & i & "部"
        ActiveDocument.PrintOut Copies:=1
    Next i   
End Sub
まず、InputBoxメソッドがないようです。(定かではない)
関数に直しました。
wordにはヘッダーやフッダーがExcelのように3つに分かれていない。
もちろんですが、BookでなくDocument
この辺を考慮し記録しながら、チャレンジしました。
取り合えず、動く。です。
(kenbou)

『印刷枚数を印字するワード編2』(MK)
下記回答をいただきましたがうまくいきませんでした。
たとえば3枚印刷すると、一枚目→1 2枚目→12 3枚目→123
と印字され、再度同じ文章を3枚印刷すると1枚目→1231 2枚目→12312 3枚目→123123となります。
前の数字が消えないで後に続いていってしまいます。

フッタではなくヘッダの右隅に部数のみの印字でいいので良くわからずに自分で加工したのがなにか間違っているのでしょうか?
再再度のご質問申し訳ございませんがご教授ください。

↓自分でアレンジしたものです。

Sub NumberPrint()

    MyCopies = InputBox("印刷枚数を入力してください。", "印刷枚数設定")
    If MyCopies = "" Then Exit Sub
    For i = 1 To MyCopies
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageheader
        Selection.TypeText Text:= i 
        ActiveDocument.PrintOut Copies:=1
    Next i   
End Sub

このマクロを設定した後、ヘッダを右寄に設定しました。


 本当ですね。確認していなかった。
一回ヘッダーを削除してあげる必要がありそうですね。
(kenbou)

 これでいけそうです。
Sub NumberPrint()
    Dim MyCopies As String, i As Long
    MyCopies = InputBox("印刷枚数を入力してください。", "印刷枚数設定")
    If MyCopies = "" Then Exit Sub
    For i = 1 To MyCopies * 1
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
        Selection.TypeText Text:=i
        ActiveDocument.PrintOut
        ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
        With Selection
            .EndOf Unit:=wdParagraph, Extend:=wdExtend
            .TypeBackspace
        End With

    Next i
End Sub
(kenbou)

『印刷枚数を印字するワード』(MK)
下記回答いただきましたが、
10枚目まではうまくいくのですが11枚目→111〜99枚目→11111111111222222222233333333334444444444
5555555555666666666677777777778888888888999999999
と数字が重複して表示されました。
何度もすみませんがよろしくお願いいたします。

 まず、こちらをご覧下さい。
https://www.excel.studio-kazu.jp/wiki/excelboard/#kizon

 さて、本題に入ります。
ごめんなさいね。私もWordVBAなんて使わないので。
Sub NumberPrint()
    Dim MyCopies As String, i As Long
    MyCopies = InputBox("印刷枚数を入力してください。", "印刷枚数設定")
    If MyCopies = "" Then Exit Sub
    For i = 1 To MyCopies
        With Selection
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
            .TypeText Text:=i
            ActiveDocument.PrintOut
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
            .MoveLeft Unit:=wdWord, Count:=Len(i)
            .Delete Unit:=wdCharacter, Count:=Len(i)
        End With
    Next i
End Sub
これでどうでしょう?
(kenbou)

ご回答ありがとうございます。
ヘッダーを右寄・フォント14に設定した後↑で印刷してみましたが、
1枚目→12(左寄・フォント10.5) 2枚目→1(右寄・フォント14)3
枚目→2…12枚目→11 13枚目→13…(3枚目以降ずっと左寄・フォント10.5)
となりました。
ワードではなかなか難しいんでしょうか。
VBAは良くわからないのでお聞きするばかりで申し訳ございません。
質問ボードの使い方も間違っていたようで・・・ご指摘ありがとうございました。

 右揃え、フォントサイズの設定をVBAコードで行えば、よいかと思います。
Sub NumberPrint()
    Dim MyCopies As String, i As Long
    MyCopies = InputBox("印刷枚数を入力してください。", "印刷枚数設定")
    If MyCopies = "" Then Exit Sub
    For i = 1 To MyCopies
        With Selection
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
            .ParagraphFormat.Alignment = wdAlignParagraphRight
            .Font.Size = "14"
            .TypeText Text:=i
            ActiveDocument.PrintOut
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
            .MoveLeft Unit:=wdWord, Count:=Len(i)
            .Delete Unit:=wdCharacter, Count:=Len(i)

        End With
    Next i
End Sub
(kenbou)


コメント返信:

[ 一覧(最新更新順) ]


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