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

生年月日 お名前       ★↓紙が無駄★
  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

・質問は上記の図のとおりです
 項目名はヘッダーでなんとかなるのですが
 データを折り返す方法がわかりません。
 なにか上手い方法ございましたら
 アドバイスお願いいたします。
 宜しくお願いします。

A 回答 (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
    • good
    • 0
この回答へのお礼

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

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

EXCELのほうは、VBAを使ってるんで
理解するのにちょっと勉強しないと駄目ですね(^^;
いい機会なんで、VBAマスターできるようにがんばります。
ありがとうございました(^_^)

お礼日時:2001/05/07 11:08

強引ですが、


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

プリンタの"拡張機能"の中に、"集約"っていうのがあります。

これで1ページに2ページ分入れることができます。・・・が、プリンタによって、出来るものと出来ないものがあります・・・

この回答への補足

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

でもなにかと便利な機能ですよねこれ

補足日時:2001/04/23 10:51
    • good
    • 0

lenon204さんの質問は2つに分けて考えたほうが良いのでは?



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

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

ではでは。

この回答への補足

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

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

プリンタのオプションも、いろいろ試してみます

補足日時:2001/04/19 15:23
    • good
    • 0

こんにちは



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

縦長のデータならそれで自動的に、
各ページの一行目に項目行が印刷されます。
    • good
    • 0

計算,集計用とは別に 印刷用のシートを作成すれば いかがでしょう。



幾つか項目が たまったら、行替えも「自動」で したいのでしょうか?

この回答への補足

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

印刷用シートを作成して元シートを参照する方法も試してみましたが。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
    • good
    • 0

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