Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
印刷タイトルのタイトル行部分に各ページのデータを参照したい
投稿日時: 22/07/06 09:31:06
投稿者: hato

お世話になります。
可能かどうかもわからないため、よろしくお願いします。
●やりたいこと
1行目に そのページで表示している得意先名(A列)を出したいのです。
ページごとに参照する行は変わるのでかなり無理かもしれませんが
何かアイデアがあればよろしくお願いします。
 
 
VBAでExcelに以下のようにデータを貼り付けました
 
1行目    売上実績表 というタイトル
2〜4行目 表の項目名
5行目以降
       A列     B列
5行目 得意先A  商品あああ C5〜実績の数字
6行目 得意先A  商品いいい C6〜  〃
7行目 得意先A  商品ううう 
       :
49行目 得意先A 商品XX 
 
50行目 得意先B 商品あああ
51行目 得意先B 商品いいい
       :
94行目 得意先B 商品XX
 
45行ずつA列には同じ得意先名が入っていて、1つのシートに
100以上の得意先分のデータが並んでいます。
1〜4行目を印刷タイトルに設定して、得意先が変わるところで
改ページを設定しています。
1行目の売上実績表 の文字の横にそのページの得意先名を表示できたら
いいなと思っています。
 
どうぞよろしくお願いします。

回答
投稿日時: 22/07/06 10:37:16
投稿者: sk

引用:
45行ずつA列には同じ得意先名が入っていて、1つのシートに
100以上の得意先分のデータが並んでいます。
1〜4行目を印刷タイトルに設定して、得意先が変わるところで
改ページを設定しています。
1行目の売上実績表 の文字の横にそのページの得意先名を表示できたら
いいなと思っています。

・そのワークシートの印刷が、具体的にどのような操作によって
 実行されることを前提としているのか。
 ユーザーが手動で印刷を実行するのか、それとも印刷処理も含めて
 マクロで自動化するのか。
 
・前者である場合、ユーザーによって印刷範囲が変更されたり、
 用紙への印刷だけでなく PDF 出力が実行されたりすることも
 想定しているのか。
 
・後者である場合、1 回の印刷処理で全てのページ(全ての得意先)を
 出力したいのか。
 
今のところ思いつく限りでは、以上の疑問点への回答次第。

回答
投稿日時: 22/07/06 10:56:26
投稿者: Suzu

引用:
1〜4行目を印刷タイトルに設定して、得意先が変わるところで
改ページを設定しています。
1行目の売上実績表 の文字の横にそのページの得意先名を表示できたら
いいなと思っています。

 
引用:
1行目に そのページで表示している得意先名(A列)を出したいのです。
ページごとに参照する行は変わるのでかなり無理かもしれませんが
何かアイデアがあればよろしくお願いします。

 
 
少なくとも、リボン等から 印刷プレビュー を押し 連続で表示される中で、
ヘッダーや、印刷タイトルを ページ毎に セルの参照先を変える様な動作はできないと思います。
 
VBA を用いてならば、
ページ毎に、タイトルの参照先を変え、PrintOutメソッドで、1ページづつ印刷(プレビュー)を行う事はできるでしょう。
 
でも、『1ページ毎』になるで、プレビューは、1ページ表示し、スクロール等で次のページへは行けません。
プレビュー画面で、ESC等で、1ページのプレビューを解除後
次のページのタイトルを変え プレビュー表示をさせる 流れになるので、違和感はあるでしょう。
 
 
VBAを使っているなら、
・印刷タイトルを使用せず、希望の表示になる様に、タイトル部分と得意先 を 配置する
・印刷用のシートを用意し、そこに VBA を使い データを代入する
 
それとも、いっその事、希望の表現の手法を予め備えている Accessのレポートを使うか
 
あたりでしょうか。

投稿日時: 22/07/06 11:31:10
投稿者: hato

skさん、早速ありがとうございます!!
 
・Excelシートを作るところまではVBAで作成していますが、
できたExcelについては手動で印刷します
 
・印刷範囲を変えたりPDF化することはありません
 
・全てを印刷することはなくて、必要な得意先のページを
選んで印刷します
 
よろしくお願いします。

投稿日時: 22/07/06 11:46:48
投稿者: hato

Suzuさん、早速の返信ありがとうございます!
 
なるほど。
やはり無謀なことをやろうとしていた感じなんですね。
 

引用:
・印刷タイトルを使用せず、希望の表示になる様に、タイトル部分と得意先 を 配置する
・印刷用のシートを用意し、そこに VBA を使い データを代入する

 
出力にかなり時間かかりそうですが、この方法でやってみようかと思います。
どうもありがとうございました!!

回答
投稿日時: 22/07/06 12:51:18
投稿者: WinArrow
投稿者のウェブサイトに移動

Excelを離れてしまいますが、
対策としては、Wordの差込印刷を使う方法があります。
Wordの差込印刷用のセットアップしまたマスタ文書を作成します。
Excelからの差込用データを定義する。
改ページ(ある項目のデータの値が変わるまで、同じページに表示する)指定
等の機能が用意されています。
 
 
印刷したいデータを抽出するシートを用意します。
このシートは、差込印刷時の差込用データとするものです。
オートフィルタなどを使用して、抽出します。
その後、ブックを保温します。
Wordマスタ文書ファイルを開き、差込印刷を実行します。
 
 

投稿日時: 22/07/06 13:44:39
投稿者: hato

WinArrowさん、返信ありがとうございます!
 
なるほど。Wordの差し込み印刷でもExcelデータを出力できるんですね。
住所リストとかしか使ったことなかったので、全然想像もしなかったです。
 
無謀と思うようなことでも、いろんなアイデアで近いところまで
実現できるんですね。今回は大変勉強になりました。
 
ご回答いただきました皆さま、どうもありがとうございました!!