
エクセルにデータを表示させて印刷するときに、
一続きのデータがページをまたいでしまうのですが、
またいだ時にページの一番はじめに、データの項目を表示させたいと思っています。
PrintTitleRowsを使用しようと思いましたが、
データの項目→データ、データの項目→データというようにエクセルシートに表示されているため、もし、丁度ページが変わったときにうまくデータの項目が次のページの1列目にくるとデータの項目がダブってしまい、使用することができません。
他の方法を考えてみたのですが、その方法では現在のページ番号を取得する方法か現在のページの最終行(データが最終行に入力されていない場合も含む)を取得する方法を知らなくては実現することができません。
いろいろ調べたのですが、見つからず、このような方法がないのかもしれません。
うまく状況が説明できずすみません。
もしご存知の方がお見えになりましたら教えてください。
また、何か他によい方法をご存知の方がお見えになりましたら教えてください。
No.2ベストアンサー
- 回答日時:
ページの先頭に表題や項目(列)見出しを入れる場合
(1)エクセルのPrintTitleRowsを使う
この場合は最初以外は項目見だしをいれないのが普通でしょう。質問のケースはこれを入れていると言うことですか。
そのため邪魔になると言うことでしょうか。
であれば削除するか、非表示にするのが手でしょう。
項目見出しを何かの文言・印でプログラムで割り出せるなら、その行をプログラムで非表示にすることも出来るでしょう。
(2)PageBreakで改ページし、改ページ後に
項目見出しを(手動でということになる)いれる。
と言うか項目見出しの行の前で改ページを入れる。
紙は多少無駄が起こるかもしれない。
(3)VBAでPrintAreaを別途編集し直し
項目見出しを最上部にセットする。
すると普通は毎ページ「一定行数」+見だし行数となろう。その場合も中間の項目見だしは邪魔になる。
(4)(2)の場合PageBreakの位置をVBAで
取得し、その後に項目見だしを印刷し、明細行を打てばよいが、Printoutでは、改ページしてしまうので不可能。行印刷して改ページしないメソッドが判れば可能。
>現在のページの最終行(データが最終行に入力されていない場合も含む)を取得する方法
これはプリンタの動作の最終行と言う情報をシステムに送らせないといけないが、VBAレベルでは多分不可能でしょう。APIでも難しいのでは。プリント動作はプリンタドライバに任せているのだと思う。
様々な方法を教えてくださり、ありがとうございます。
項目の上に表示データごとにことなるもう一つの見出しがつくため項目を非表示にすることは難しいと思いますが、それぞれ教えてくださった方法を試して見たいと思います。
ありがとうございました。
No.1
- 回答日時:
私なら印刷を以下のようにマクロ化します。
1)2番目以降のデータ項目の行を非表示にする
2)1番目のデータ項目をタイトル行にして印刷する
3)非表示にした行を表示に戻す。
現在のページ番号を直接知るのは、無理かもしれませんが、間接的にRangeオブジェクトのPageBreakプロパティかHPageBreak オブジェクト(VPageBreakも必要かもしれません)の位置の記録と集計を使えば可能じゃないかとは思います。
お答えいただき、ありがとうございます。
やはり現在のページ番号を直接知るのは無理なんですね。
この方法を試して見ます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- PHP PHP ページング データベース 1 2022/06/16 10:30
- Visual Basic(VBA) マクロについて(tatsumaru77さん見てください) 5 2023/06/07 17:51
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS htmlのデータをwebページみたいに見る方法 5 2023/06/23 17:47
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
このQ&Aを見た人はこんなQ&Aも見ています
-
いちばん失敗した人決定戦
あなたの「告白」での大失敗を教えてください。
-
【お題】動物のキャッチフレーズ
【お題】「百獣の王 ライオン」「実は動物界最強 カバ」は分かるけど、それはちょっとピンと来ないなと思った動物のキャッチフレーズ
-
最速怪談選手権
できるだけ短い文章で怖がらせてください。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
かっこよく答えてください!!
あなたは今にも別れそうなカップルの彼女の恋愛相談に乗っています。
-
EXCEL-VBAで印刷時のページ番号を取得したい
Excel(エクセル)
-
EXCEL、マクロ-改ページ行番号の取得方法を教えてください
Visual Basic(VBA)
-
Excelのマクロについて
Visual Basic(VBA)
-
-
4
A1セルにアクティブセルのページ数を入力したい
Excel(エクセル)
-
5
エクセルの行タイトルを特定のページにつけたい。
Excel(エクセル)
-
6
スクロールしてもボタンを常に表示させたい。Excel2002
Excel(エクセル)
-
7
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
8
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
9
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
10
エクセルVBAでマルチページの切り替え方法の件で
Excel(エクセル)
-
11
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
12
VBAで印刷ページ最終行にページ計表示印刷したい
Visual Basic(VBA)
-
13
エクセルVBA 複数列のリストボックス内を検索して値を複数列表示したい
Excel(エクセル)
-
14
エクセルvbaでの図形のカット(コピー)ペーストについて
Excel(エクセル)
-
15
エクセルのページ区切り(点線)の位置をマクロで取得 ※印刷範囲クリア
Excel(エクセル)
-
16
ユーザーフォームのテキストボックスに前回入力した値を表示する Excel
Visual Basic(VBA)
-
17
ExcelVBA 改ページの横破線を消す方法
Excel(エクセル)
-
18
エクセルマクロでワードの一ページ目をコピーして新たに二ページを追加して、一ページ目の内容を貼り付ける
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】先頭の「0」飛び...
-
VBAでページ番号、ページ最終行...
-
ASP.NET DataGridの項目数(列...
-
DataGrdViewに関連付けたデータ...
-
Listviewのデータを上から順番...
-
GridViewを自動的にスクロール...
-
GridViewにバインドせずにデー...
-
VBA ピボットテーブル自動更新
-
DataGridViewで表示に制限をつ...
-
コンパイルエラーSubまたは...
-
MSFlexGridのデータ表示位置の設定
-
Excelで指定した日付から過去の...
-
i=cells(Rows.Count, 1)とi=cel...
-
文字列の後ろから必要分だけ削...
-
テキストボックスのvalueとtext...
-
Accessのクエリで、replace関数...
-
特定のセルが空白だったら、そ...
-
エクセルvbaで、別シートの最下...
-
VBA実行後に元のセルに戻りたい
-
”戻り値”が変化したときに、マ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel VBA】先頭の「0」飛び...
-
DataGrdViewに関連付けたデータ...
-
.NET SqlDataReader のレコー...
-
Listviewのデータを上から順番...
-
GridViewにバインドせずにデー...
-
VBAでページ番号、ページ最終行...
-
GASでスプレッドシートの一番上...
-
DataGridViewで表示に制限をつ...
-
コード側からDataGridの列を追...
-
MSFlexGridのデータ表示位置の設定
-
ListViewで条件によって表示を...
-
【ASP.NET MVC】一覧編集画面
-
コンパイルエラーSubまたは...
-
VB.net CrystalReportでプロジ...
-
C#でマスターから検索した値に...
-
GoogleスプレッドシートからExc...
-
ASP.NET DataGridの項目数(列...
-
EXCEL2000のマクロ(ADO)にてCSV...
-
ACCESSのVBAで[Split]について
-
1台のサーバへの同一セグメント...
おすすめ情報