-PR-
解決
済み

エクセルで縦長のデータを紙の無駄なく印刷

  • 困ってます
  • 質問No.65628
  • 閲覧数3396
  • ありがとう数3
  • 気になる数0
  • 回答数6
  • コメント数0

生年月日 お名前       ★↓紙が無駄★
  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
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.5
レベル13

ベストアンサー率 68% (791/1163)

会社でよくこのようなことができないか聞かれます。手っ取り早いのが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
お礼コメント
noname#20962

返事が遅れてしまいってすいませんでした。

Accessから印刷は、おもいつきませんでした
見栄えはともかく、便利ですね。

EXCELのほうは、VBAを使ってるんで
理解するのにちょっと勉強しないと駄目ですね(^^;
いい機会なんで、VBAマスターできるようにがんばります。
ありがとうございました(^_^)
投稿日時 - 2001-05-07 11:08:47
-PR-
-PR-

その他の回答 (全5件)

  • 回答No.6
レベル7

ベストアンサー率 42% (3/7)

強引ですが、 用紙がA4横なら、印刷設定をA5縦にして、プリンタ側の縮小印刷機能で2ページを1枚にまとめる。 用紙がA4縦なら、印刷設定をA6縦にして、プリンタ側の縮小印刷機能2~4ページを1枚にまとめる。 という横着な手もありかも…
強引ですが、
用紙がA4横なら、印刷設定をA5縦にして、プリンタ側の縮小印刷機能で2ページを1枚にまとめる。
用紙がA4縦なら、印刷設定をA6縦にして、プリンタ側の縮小印刷機能2~4ページを1枚にまとめる。
という横着な手もありかも…


  • 回答No.1
レベル11

ベストアンサー率 17% (48/279)

計算,集計用とは別に 印刷用のシートを作成すれば いかがでしょう。 幾つか項目が たまったら、行替えも「自動」で したいのでしょうか? ...続きを読む
計算,集計用とは別に 印刷用のシートを作成すれば いかがでしょう。

幾つか項目が たまったら、行替えも「自動」で したいのでしょうか?
補足コメント
noname#20962

その行替えを「自動」でやりたいのですが
やはりページの設定とかでは無理なんでしょうか

印刷用シートを作成して元シートを参照する方法も試してみましたが。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がダブる。
結局全部の改行の式を設定してやらないと
駄目なんです。

もうすこし手順を減らす
うまい方法ありますでしょうか?
投稿日時 - 2001-04-19 15:17:19
  • 回答No.2
レベル8

ベストアンサー率 14% (6/42)

こんにちは ファイル→ページ設定とすすみ、 シートのタブで印刷タイトル(R)に、 例えば1行目だったら、$1:$1のように、 項目の行を指定してください。 縦長のデータならそれで自動的に、 各ページの一行目に項目行が印刷されます。
こんにちは

ファイル→ページ設定とすすみ、
シートのタブで印刷タイトル(R)に、
例えば1行目だったら、$1:$1のように、
項目の行を指定してください。

縦長のデータならそれで自動的に、
各ページの一行目に項目行が印刷されます。
  • 回答No.3
レベル14

ベストアンサー率 33% (1403/4213)

lenon204さんの質問は2つに分けて考えたほうが良いのでは? 1.見出しをつけるためには? 2.用紙1ページにデータ2ページ分を印刷するためには? 1.はxaxaさんの回答のとおりでしょう。 2.は、私も同じことをしたかったけど、わからなかったので   プリンタの縮小印刷機能を利用しています。   (用紙1ページにデータ複数ページを印刷できる機能つき)   プリンタのマニュアルで ...続きを読む
lenon204さんの質問は2つに分けて考えたほうが良いのでは?

1.見出しをつけるためには?
2.用紙1ページにデータ2ページ分を印刷するためには?

1.はxaxaさんの回答のとおりでしょう。
2.は、私も同じことをしたかったけど、わからなかったので
  プリンタの縮小印刷機能を利用しています。
  (用紙1ページにデータ複数ページを印刷できる機能つき)
  プリンタのマニュアルでご確認ください。

ではでは。
補足コメント
noname#20962

bin-chanさんのおっしゃるとおりです
見出しは問題無くいけてます。
質問を見やすくしようと思ったんですが
よけいややこしかったですかね?(^^;

問題は1ページに、1、2ページ分のデータを
いれる方法なんです。(縮小とかではなくて)

プリンタのオプションも、いろいろ試してみます
投稿日時 - 2001-04-19 15:23:29
  • 回答No.4
レベル8

ベストアンサー率 20% (5/24)

プリンタの"拡張機能"の中に、"集約"っていうのがあります。これで1ページに2ページ分入れることができます。・・・が、プリンタによって、出来るものと出来ないものがあります・・・ ...続きを読む
プリンタの"拡張機能"の中に、"集約"っていうのがあります。これで1ページに2ページ分入れることができます。・・・が、プリンタによって、出来るものと出来ないものがあります・・・
補足コメント
noname#20962

集約機能というのはあるのですが
それを使うと1枚目と2枚目の間が
やはりすごく空いてしまいます(^^;

でもなにかと便利な機能ですよねこれ
投稿日時 - 2001-04-23 10:51:13
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ