アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelにてシート1にある、表内の数値を選択した状態で、実行ボタンをクリックすると
選択行の指定項目がシート2それぞれコピーされて単票を作成するマクロをつくっています。

そこで、下記の処理を追加したいと考えています。
シート1で選択した数値が3であれば、単票の印刷枚数は3枚 かつそれぞれ1/3、2/3、3/3 と書かれたものが各1枚(計3枚)9なら、1/9,2/9,3/9・・・・9/9と書かれたものが各1枚(計9枚)ページ番号とページ枚数を表記。
ヘッダー等ではなく、指定するセル(E14)に反映させたいです。
見た目が ○○/○○になるのであれば、ページ番号とページ枚数それぞれ1つずつセルを使用しても問題ありません。

セルの値だけの枚数を印刷するなどのコードはいくつか見つけることができましたが、
ページ枚数/総数 をセルに表記するとなるとわかりません。
実現可能な処理方法がありましたら、お力をお借りできませんでしょうか。
どうぞよろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    おっしゃる通り分母は選択セルの値のため取得はできています。
    ただ、指定枚数分の印刷については現時点では下記のコードにて処理をしており、
    シート2に作ったひな形にシート1の内容が転記されて、ただ指定枚数分を印刷することまでしかできておりません。
    ActiveSheet.PrintOut preview:=True, copies:=Range("I4").Value
    (セルI4に選択セルの値が転記されるようにしています。)

    当初の質問で記載したように、メインの内容(名前やNO、数量など)は同じ帳票を指定枚数出力するが、セル内でページ番号を振りたいのであれば上記のコードでは対応できないのでしょうか。

    No.2の回答に寄せられた補足コメントです。 補足日時:2019/02/13 21:03

A 回答 (3件)

1/9 という場合は、同じものを、1/9 ~ 9/9 まで、印刷するということでしょうか?つまり、分母の数は任意だということでしょうか。

私は、そういう表記の習慣がないので、紛らわしいですね。

もし、そうだったら、簡単なことだと思います。

ActiveSheet.PrintOut preview:=True, copies:=Range("I4").Value '←これはいらない
こうではなくて、Copy は、1でいいのですが、ループで9回繰り返せばよいのではありませんか。

TotalPages =Range("I4").Value

For i =1 to TotalNum
  Range("E14").Value = i & "/" & TotalPages
  ActiveSheet.PrintOut
Next
    • good
    • 0

こんにちは



よく把握できてないのですけれど・・・

要は、最初に選択された数値が分母にあたる総数になるということでしょうか?
であれば、最初にその値を取得していることでしょうから、分母に関しては簡単に処理できるものと想像します。

その枚数を出力するのにどのような方法で行っているのかご質問文からは不明ですが、VBAのループ処理等で行っているのであれば、カウンタを1~「分母の数(=Max)」までインクリメントしながら処理するものとして、それをそのまま分子として利用すれば済むものと思います。

※ よくわからないので、勘違いをしていたならスルーしてください。
この回答への補足あり
    • good
    • 0

1枚に何行印刷できるのか把握してこれをNP行とすると


最終の印刷する最後までの行数をNAとする。

セルに表記する○○/○○は P/ALLとすると

ALL=int(NA/NP)+1

でいいじゃない?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています