[[20160623112335]] 『マクロを使って印刷する』(カブカブ) ページの最後に飛ぶ

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

 

『マクロを使って印刷する』(カブカブ)

下記のようなマクロを貼付て印刷をしようとしています。
A3用紙1枚にA4原稿を2つ上下に並べて印刷し、合計100枚分のA4用紙を50枚のA3用紙で作りだすことが目的です。
今のままだと上部分にはマクロ通りのカウントがされるのですが、下部分には反映されません。
カウントが入る場所を続けてもう1つ追加すればいいのか、新たなマクロを設定するのか教えてください。
下記のマクロも知恵袋等からコピペしたもので、カウントが入る場所だけ自分で手直ししました。
マクロに関してはまったくの初心者です。

Sub NumberPrint()

 Dim idx As Integer
 Dim frmPage, toPage
  frmPage = Application.InputBox("連番を挿入して印刷します" & Chr(13) _
          & "開始番号を入力してください", Type:=1)
  toPage = Application.InputBox("終了番号を入力してください", Type:=1)
  If frmPage > 0 And toPage >= frmPage Then
    For idx = frmPage To toPage
      Range("AS4").Value = idx
      ActiveSheet.PrintOut
    Next idx
  Else
    MsgBox "開始番号、終了番号が不適切です。印刷は行いません"
  End If
 End Sub

分かりにくい文章で申し訳ありません。宜しくお願いします。

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


こんにちは

このコードで「A3用紙1枚にA4原稿を2つ上下に並べて印刷」出来ているのですか?

一つのシートの全てのデータが入っていて、From To のページを指定して印刷しているのですか?

改ページが挿入してあって、用紙をA3にしてあるのですか?

それとも、1シートにA4二枚分のデータがあって50シート印刷しているのですか?

そうは思えないのですが、今のコードで印刷自体はうまくいっているのですか?

(ウッシ) 2016/06/23(木) 11:55


[[20160621160444]] これの続きですね。

このコードだと、プリンタの段組印刷を設定しても、1回Printoutするとそこで切れてしまうので、上半分だけ印刷して、次のページは次の用紙のまた上半分、となってしまったかと思います。

シートの印刷範囲をコピーして、1シートで2ページになるようにレイアウトしてください。
そして、ナンバーは2箇所ずつセット。これを50回行えば良いでしょう。
(???) 2016/06/23(木) 12:51


コメントありがとうございます。

???様のおっしゃる通り、上の半分だけは印刷されるという感じでした。
ですので、コピペして2枚分のデータを作成しました。マクロは本当に初心者でナンバーを2か所ずつセットとお教えいただきましたが、どのようにセットすればいいのでしょうか?

ウッシ様 現在は同じ文書をコピペして2枚分のデータをA3用紙1枚に印刷されるようになっています。
今まではアナログ方式で自分でナンバリングの判を押して作成し、それを原紙としてコピーして使うというやり方だったので、何とかデータとして残せないかと悪戦苦闘中です。
今現在では、ウッシ様のおっしゃる通り、やりたいことはできていません。
2枚分のデータを作成しましたが、上の部分には反映されいますが、下部には何も反映されなく、カウントを入力して印刷してみても上だけがカウントが入る状態で下は空白のままです。

こんなマクロの意味も分かっていないようなものが使う事が間違いなのでしょうか?
もし、使えるような便利な機能があれば、再度、ご教授いただければと思います。

(カブカブ) 2016/06/23(木) 16:06


こんにちは

今現在はどのようなExcelデータが有るのですか?

「同じ文書をコピペして2枚分のデータ」を作っているという、

元の文書はどのシートにどのように格納されているのですか?

マクロで可能な作業かと思いますが、前提条件が全く分からないので

お答えしようが無いです。

(ウッシ) 2016/06/23(木) 16:12


おそらく、連番部分以外はほぼ真っ白の、罫線主体の手書き用原紙印刷か何かだろうと想像しています。

元は、番号は Range("AS4") でしたよね。コピーしたことで番号部分がもうひとつできたはずですが、それはどこでしょう?
とりあえず、2つ目のセルをAS64と仮定した場合の変更例なぞ。

    For idx = frmPage To toPage Step 2
      Range("AS4").Value = idx
      Range("AS64").Value = idx + 1
      ActiveSheet.PrintOut
    Next idx
(???) 2016/06/23(木) 16:44

???様 ウッシ様

大変お手数をおかけしました。

???様からのご回答で解決することが出来ました。

ありがとうございました。
(カブカブ) 2016/06/23(木) 16:59


コメント返信:

[ 一覧(最新更新順) ]


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