- ベストアンサー
エクセルで縦長のデータを紙の無駄なく印刷
生年月日 お名前 ★↓紙が無駄★ 1 A 2 B 3 C --------------ページ区切り------------------- 4 D 5 E 6 F --------------ページ区切り------------------- 7 G ★↑のようなデータを★ ★↓のように自動で折り返して印刷★ 生年月日 お名前 生年月日 お名前 1 A 4 D 2 B 5 E 3 C 6 F --------------ページ区切り------------------- 生年月日 お名前 生年月日 お名前 7 G 10 J 8 H ↓ずーっと続く 9 I ・質問は上記の図のとおりです 項目名はヘッダーでなんとかなるのですが データを折り返す方法がわかりません。 なにか上手い方法ございましたら アドバイスお願いいたします。 宜しくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
会社でよくこのようなことができないか聞かれます。手っ取り早いのがAccessでExcelのデータをインポートし、詳細部を作り、ページ設定→レイアウト→列数で指定の列数にして印刷します。ただ、ヘッダー、フッタについては見栄えのいいレポートとはいえないかもしれません。 さてExcelでの解決方法ですが、私は、データを入力したシートとは別に印刷用シートを作成しマクロで印刷しています。下記がそれです。条件を説明します。 1.Sheet1のA1、B1に"生年月日"、"お名前"の表題が入力されていて、データは2行目から入力されていると仮定しています。 2.印刷する表はSheet2に作成し、その縦データ行数をPRTrow、その横データ組数をPRTcolにセットしてください。このマクロは質問にある、縦3×横2を想定しています。 3.また、Sheet2の縦3×横2の範囲には、"pArea"の範囲名をつけてください。 4.Sheet2からこのマクロを実行します。今はプレビューです。PrintPreviewをPrintOutにすれば印刷します。 印刷の形を違えるにはCellsの座標を修正してください。 入力データ数から印刷ページ数を求め、各データに対する印刷部分の座標を求め印刷しています。人が転記し仕上げていくような感覚です。 Public Sub Insatu() Dim rg As Range 'データの基準位置 Set rg = Worksheets("Sheet1").Range("A1") Dim pArea As Range '印刷データ部分 Set pArea = Worksheets("Sheet2").Range("prtArea") Dim Datanum As Long 'データ数 Dim PRTrow As Integer '1頁行数 Dim PRTcol As Integer '1頁列数(データの組数) Dim modePage As Integer '1頁印刷件数 Dim maxPage As Integer '最大印刷頁 ' Dim pgCot As Integer '頁カウンタ Dim yokoCot As Integer 'カウンタ(印刷の横) Dim tateCot As Integer 'カウンタ(印刷の縦) Dim pINDEX As Long 'データは何行目か ' Datanum = Worksheets("Sheet1").UsedRange.Rows.Count - 1 PRTrow = 3 '***これをセットする*** PRTcol = 2 '***これをセットする*** modePage = PRTrow * PRTcol maxPage = Int((Datanum - 1) / modePage) + 1 ' For pgCot = 1 To maxPage For yokoCot = 1 To PRTcol For tateCot = 1 To PRTrow pINDEX = pINDEX + 1 pArea.Cells(tateCot, (yokoCot - 1) * 2 + 1) = rg.Offset(pINDEX, 0) pArea.Cells(tateCot, yokoCot * 2) = rg.Offset(pINDEX, 1) Next Next ActiveSheet.PrintPreview '.PrintOut Next End Sub
その他の回答 (5)
- marsah
- ベストアンサー率42% (3/7)
強引ですが、 用紙がA4横なら、印刷設定をA5縦にして、プリンタ側の縮小印刷機能で2ページを1枚にまとめる。 用紙がA4縦なら、印刷設定をA6縦にして、プリンタ側の縮小印刷機能2~4ページを1枚にまとめる。 という横着な手もありかも…
- yuu200
- ベストアンサー率20% (5/24)
プリンタの"拡張機能"の中に、"集約"っていうのがあります。これで1ページに2ページ分入れることができます。・・・が、プリンタによって、出来るものと出来ないものがあります・・・
補足
集約機能というのはあるのですが それを使うと1枚目と2枚目の間が やはりすごく空いてしまいます(^^; でもなにかと便利な機能ですよねこれ
- bin-chan
- ベストアンサー率33% (1403/4213)
lenon204さんの質問は2つに分けて考えたほうが良いのでは? 1.見出しをつけるためには? 2.用紙1ページにデータ2ページ分を印刷するためには? 1.はxaxaさんの回答のとおりでしょう。 2.は、私も同じことをしたかったけど、わからなかったので プリンタの縮小印刷機能を利用しています。 (用紙1ページにデータ複数ページを印刷できる機能つき) プリンタのマニュアルでご確認ください。 ではでは。
補足
bin-chanさんのおっしゃるとおりです 見出しは問題無くいけてます。 質問を見やすくしようと思ったんですが よけいややこしかったですかね?(^^; 問題は1ページに、1、2ページ分のデータを いれる方法なんです。(縮小とかではなくて) プリンタのオプションも、いろいろ試してみます
- xaxa
- ベストアンサー率14% (6/42)
こんにちは ファイル→ページ設定とすすみ、 シートのタブで印刷タイトル(R)に、 例えば1行目だったら、$1:$1のように、 項目の行を指定してください。 縦長のデータならそれで自動的に、 各ページの一行目に項目行が印刷されます。
- goo_0102
- ベストアンサー率17% (48/279)
計算,集計用とは別に 印刷用のシートを作成すれば いかがでしょう。 幾つか項目が たまったら、行替えも「自動」で したいのでしょうか?
補足
その行替えを「自動」でやりたいのですが やはりページの設定とかでは無理なんでしょうか 印刷用シートを作成して元シートを参照する方法も試してみましたが。1ページの式を作ったら後のページは同じ式を貼りつけというふうにはゆかず困っています。 ↓大元データを参照した式が入っています 1 4 7 2↓ 5↓ 8↓ 3 6 9 2ページ目に上の式コピーすると 4 7 10 5↓ 8↓ 11↓ 6 9 12 4.5.6.7.8.9がダブる。 結局全部の改行の式を設定してやらないと 駄目なんです。 もうすこし手順を減らす うまい方法ありますでしょうか?
お礼
返事が遅れてしまいってすいませんでした。 Accessから印刷は、おもいつきませんでした 見栄えはともかく、便利ですね。 EXCELのほうは、VBAを使ってるんで 理解するのにちょっと勉強しないと駄目ですね(^^; いい機会なんで、VBAマスターできるようにがんばります。 ありがとうございました(^_^)