[[20040102145731]] 『ページ番号が連番として増えていくように』(〃^▽^〃姫) ページの最後に飛ぶ

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

 

『ページ番号が連番として増えていくように』(〃^▽^〃姫)
 今年もお世話になります。
連番が必要な書類原紙を数百枚作りたいのですが
ページ設定で行の印刷タイトルで固定した中のセルが
連番となるようにはできるのでしょうか?
過去ログを見てこちらの↓
ボード [[20031024100444]] 『ページ番号が連番として増えていくように』(チエ)さん
が、類似してるのかと思ったのですが、違うのです。
ご教授の程お願いします。

 (〃^▽^〃姫)さん久しぶりですね。
[[20031228232834]]『自動ナンバリングはできますか?』(tani) 
とは違いますか?(ケン)

 ケンさん,あけましておめでとうございます。
今年もよろしくお願いします。
覚えててくださって光栄です。
つい最近の投稿にあったのですね、すみません!
マクロは自動記録でしかトライした事がないので
お正月休みに少しでも理解出来たら良いのですが・・・
ゆっくりがんばってみますがまたお願いしますね
(〃^▽^〃姫)

 ケンさん何とかマクロを作動する事が出来ました。感激!
フッターの左端に1−1/2・・・と表示されるのですね。
指定セルに1,2,3,4,5・・・と言うように
ページ設定で行の印刷タイトルで固定した中のセルに
連番となるようにはコードをどのようにアレンジしたらできるのでしょうか?
すみません (〃^▽^〃姫)

 とりあえず代打です。
 1シートの中の複数ページ印刷で
 連番を振るということなので、
[[20031228232834]]『自動ナンバリングはできますか?』(tani)
 とは少し様相が違うかもしれませんね。

 行タイトルを1:2
 連番指定セルをG1に設定した場合のマクロ例です。
 G1セルに「ページ番号/総ページ数」という具合にでます。

 Sub TEST_20040103()
 Dim i As Integer
 Dim PAGECOUNT As Integer

 PAGECOUNT = ActiveSheet.HPageBreaks.Count + 1

 For i = 1 To PAGECOUNT
     With ActiveSheet
         .Range("G1") = "'" & i & "/" & PAGECOUNT
         .PageSetup.PrintTitleRows = "$1:$2"
         .PrintOut _
                 From:=i, _
                 to:=i, _
                 Copies:=1, _
                 Collate:=True
     End With
 Next i
 End Sub

 ただし、この例では水平改ページしか見ていませんので、
 垂直改ページがあるとうまく行きません。
 その辺は改良の余地ありですが。
 (KAMIYA)

早とちり・・かな?
「ページ番号」じゃなくて「印刷部数」をセルへ表示ですね。
でしたら下記でどうぞ。

 Sub TEST_20040103b()
 Dim i As Integer
 Dim MYVAR As Variant
 Do
     MYVAR = Application.InputBox("印刷する部数を入力してください" _
                 & Chr(13) & "(キャンセルボタンで中止)", _
                 "印刷部数設定")
 Loop While IsNumeric(MYVAR) = False 

 For i = 1 To MYVAR
      With ActiveSheet
          .Range("G1") = i
          .PageSetup.PrintTitleRows = "$1:$2"
          .PrintOut _
                  Copies:=1, _
                  Collate:=True
      End With
 Next i
 End Sub
 (KAMIYA)

 KAMIYAさん、代打、ありがとうです。今日は初詣に行ってきました。
階段で足、挫いた〜。kazuさんと同じ〜イタタッ(ケン)

 (KAMIYA)さん、ありがとうございます。
私の思うとおりのフォーマットになりました。
嬉しいです!

 ケンさんおかえりなさい。
足大丈夫ですか?心配です!

 残り少ないお休み(私まだ初詣に行ってません・・・汗;)は
習ったたくさんのコードと反映された帳票を見て
VBAになじめたらいいな〜〜〜って思います。
休み明けの勤務が楽しみ。
次回もみなさん助けて下さいお願いします。
(〃^▽^〃姫)

 (〃^▽^〃姫)さん、お役に立ててよかったです。
 VBAは覚えることがたくさんありすぎて大変ですが、
 がんばってくださいね。
 (私は7年目、それに比べればケンさんは上達早い!)

 ケンさん、大丈夫ですかぁ?
 年明け早々災難ですね。
 「厄払い」ができたと思って元気出してください!

 (ウチの息子もおみくじ「凶」を引いた上に
 境内ですっころんでひざをすりむいて・・・
 同じ事言って聞かせました。)
 (KAMIYA)

 (〃^▽^〃姫)さん、KAMIYAさんお気遣いありがとうございます。
良い厄払い出来たと思うようにします。(ケン)

復活させてください
 早速、職場でも上手く出力する事ができました。ありがとうございました。
VBAの決まりとか言語はチンプンカンプンですが
コードがどのような命令を発しているのかというようなことは
おぼろげながら理解することができました。
(改ページ無しの1枚原紙には.PageSetup.PrintTitleRows = "$1:$2"
 は必要ないですね、勘違いしていました。抜いてみましたが大丈夫ですよね)
そこですみませんが最初にページ番号に反映するように連番としてしまったので
もし(必要性がでてきてしまったのですが・・・)
100番で一旦終了して続きの101番から連番印刷をかけようと思うと
全く違うマクロになるのでしょうか?
(〃^▽^〃姫)

 KAMIYAさんのコードをお借りして
 Sub TEST_20040103bspc2()
  Dim i As Integer
  Dim MYVAR As Variant
  Do
      MYVAR = Application.InputBox("印刷する部数を入力してください" _
                 & Chr(13) & "(キャンセルボタンで中止)", _
                 "印刷部数設定")
  Loop While IsNumeric(MYVAR) = False

  For i = Range("G1").Value + 1 To MYVAR + Range("G1").Value
      With ActiveSheet
          .Range("G1") = i
          .PageSetup.PrintTitleRows = "$1:$2"
          .PrintOut _
                  Copies:=1, _
                  Collate:=True
      End With
  Next i
 End Sub
こんな感じでどうでしょうか(ケン)

 (ケン)さん足の具合はいかがですが?
編集ありがとうございます。
G1に発行開始の先頭番号を入力しておけば良いんですね?
嬉しいです!(〃^▽^〃姫)

 (〃^▽^〃姫)さん、有難う御座います。もう、大分良くなりました。
勉強中なので、もう一つ考えてみました。
 Sub TEST_20040103bspc3()
    Dim i As Integer
    Dim MYVAR As Variant
    Dim strt As Integer, numb As Integer

    MYVAR = Application.InputBox("開始番号-印刷部数を入力してください" _
                 & Chr(13) & "(キャンセルボタンで中止)", _
                 "開始番号印刷部数設定")
    If MYVAR = False Then Exit Sub
    On Error GoTo err1
    MYVAR = Application.WorksheetFunction. _
                Substitute(MYVAR, "ー", "-")
    strt = Mid(MYVAR, 1, Application.WorksheetFunction. _
                    Find("-", MYVAR) - 1)
    numb = Mid(MYVAR, Application.WorksheetFunction. _
                    Find("-", MYVAR) + 1, 99)

    For i = strt To numb + strt - 1
        With ActiveSheet
            .Range("G1") = i
            .PageSetup.PrintTitleRows = "$1:$2"
            .PrintOut _
                Copies:=1, _
                Collate:=True
        End With
    Next i
    Exit Sub
 err1:
    MsgBox "入力ミスです。"
 End Sub

 101番から50枚印刷する時は101-50と入力して下さい。
もっといい方法は有ると思いますが、今の私ではここまでです。(ケン)

 おはようございます。
(ケン)さん、ありがとうございます。
思いどおりに仕上げもらい
親切機能までつけていただき嬉しいです。
マクロって本当に凄いですね!
(〃^▽^〃姫)


コメント返信:

[ 一覧(最新更新順) ]


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