エクセルの最初の行を改ページしても、印刷したい場合は
ページ設定で、行のタイトルで設定するのはわかるのですが、
最初の行と最後の行両方を繰り返し印刷できるようにしたいんです
よい方法がありましたら、よろしくお願いします。
ちなみにエクセル97をつかってます。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

このような表を想定してみました。

手順を追って試してみてください。

<Sheet1>データが入力されているシート  <Sheet2>印刷用のシート 
   A   B   C   D       A   B   C   D
 1 項目1 項目2 項目3 項目4  11   ***×××の明細表***
 2 AA  A1    1 101  12 項目1 項目2 項目3 項目4
 3 AB  A2    2 102  13 AA  A1    1 101
 4 AC  A3    3 103  14 AB  A2    2 102
 5 AD  A4    4 104  15 AC  A3    3 103
          :                ┌─────────┐
97 ZX  A9   97 197  16     │ページ計 3件  │
98 ZY  A9   98 198         ├───┬─────┤
99 ZZ  A9   99 199  17     │確認印│     │
                           └───┴─────┘
                    18       1/33

1.表のデータ列は4列あって、印刷は1頁に3行と仮定します。(変更できます)
2.表題部分と頁の下部を作成してください。
3.上の例でいえばSheet2のA11からD18が印刷範囲になります。
4.Sheet2のセル範囲A13:D15に範囲名pAreaを付けておきます。
5.フッタに頁を印刷するために18行目の任意のセルに範囲名pPageを付けておきます。
6.下のマクロをコピーして標準モジュールに貼り付けて下さい。
   Const Prow = 3・・・1頁に印刷する行数
   Const Pcol = 4・・・1頁に印刷する列数 を実際のシートからセットして下さい。
    標準モジュールはメニューからツール→マクロ→Visual Basic Editor で
    VBE画面を起動して下さい。
    それからVBE画面で挿入→標準モジュールとします。
7.シートに戻って ツール→マクロ→マクロ でInsatu を実行します。
   今は印刷プレビューです。PrintPreview→PrintOut とすれば印刷します。

Public Sub Insatu()
Dim rg As Range 'データの基準位置
Set rg = Worksheets("Sheet1").Range("A1")
Dim pArea As Range '印刷データ部分
Set pArea = Worksheets("Sheet2").Range("pArea")
Const Prow = 3 '***これをセットする***
Const Pcol = 4 '***これをセットする***
Dim modePage As Integer '1頁印刷件数
Dim maxPage As Integer '最大印刷頁
'
Dim rw, cl, pgCot As Integer '行、列、頁カウンタ
maxPage = Int((Worksheets("Sheet1").UsedRange.Rows.Count - 2) / Prow) + 1
For pgCot = 1 To maxPage
For rw = 1 To Prow
For cl = 0 To Pcol - 1
pArea.Cells(rw, cl + 1) = rg.Offset((pgCot - 1) * Prow + rw, cl)
Next
Next
Range("pPage") = pgCot & "/" & maxPage
ActiveSheet.PrintPreview '.PrintOut
Next
End Sub
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。
ちょっと難しそうですが、チャレンジしてみます。
ほんとうに、感謝です。

お礼日時:2001/05/14 22:36

会社で同様なことを行っていますが機能だけでは困難なような気がします。


1772(QNo.65628)「エクセルで縦長のデータを紙の無駄なく印刷」のANo.#5で回答していますが、印刷用のシートを作れば問題なくできそうですね。会社ではページの下部にページ計や区分の小計を表示したり、最終ページのみに総計を枠の中に表示してくれとか依頼がありこの質問のようなことをやっています。

印刷シートには行タイトルとページの下部には指定されたデータをセットし、内部の明細行はマクロでデータを送り込んでいます。

1772のANo.#5のマクロはそのままにして、ページの下部をセットすればいいと思います。不明な点があれば補足して下さい。

この回答への補足

ありがとうございます。
しかし、ふだん初歩的な機能のみを使っているので
お恥ずかしい話しですがマクロって何?って感じです
もう少しわかりやすくお願いできないでしょうか?
それとも、初心者にはやっぱり難しいのでしょうか…

補足日時:2001/05/11 22:53
    • good
    • 0

ページ設定のヘッダー/フッターでは駄目でしょうか?

この回答への補足

すみません。言葉がたりませんでした。
行の最後もちょっとした表にしたいので、
エクセル形式にしたいんですが、やっぱりムリなのでしょうか??
引き続きよろしくお願い致します。

補足日時:2001/05/11 20:31
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

Qエクセル VBA 印刷改ページ 行数設定

環境:Excel2002です

印刷する行数は毎回異なります

改ページの条件は
(1)行1から10は表題などが設定されているが6から10行を行タイトルに設定する
(2)データ30行毎に改ページする
  
   例:データ数100、行1から10に表題があるので 最終行は110
     ページ設定 1ページ:行1から40
                   行1から10の表題 プラス データ数30(行11~40)
             2ページ:行6から10の行タイトル プラス データ数30(行41~70)
             3ページ:行6から10の行タイトル プラス データ数30(行71~100)
             4ページ:行6から10の行タイトル プラス データ数10(行101~110)

印刷範囲の設定はネット上に多数紹介されていますが
私の設定したい方法は見つけることができませんでした

思考錯誤してみましたが、私のスキルでは無理でした
よろしくご教示願います

Aベストアンサー

ご相談に書かれていることを手順を追って行うと
1.印刷する行数(最終行)を調べる
2.タイトル行を設定する
3.所定の行に改ページを打つ
4.印刷範囲を設定する
5.印刷する
というだけの作業です。


実際には
事前準備:タイトル行を設定する
事前準備:所定の30行ごとに、データの有無に関係なしに改ページを埋めておく
   →挿入メニューの改ページ
マクロの仕事:最終行を調べ、印刷範囲を設定して印刷する

だけで十分です。

作成例:
sub macro1()
 dim LastRow as long
’仮にA列で最終行を調べられるとして
 lastrow = range("A65536").end(xlup).row
’仮にA:G列を印刷するとして
 activesheet.pagesetup.printarea = "$A$1:$G$" & lastrow
 activesheet.printout
end sub



もしも手抜きで何も手を動かして準備とかしたくないというなら

sub macro2()
 dim LastRow as long
 dim r as long
 lastrow = range("A65536").end(xlup).row
 activesheet.resetallpagebreaks
 for r = 41 to lastrow + 1 step 30
  activesheet.hpagebreaks.add before:=cells(r, "A")
 next r
 activesheet.pagesetup.printtitlerows = "$6:$10"
 activesheet.pagesetup.printarea = "$A$1:$G$" & lastrow
 activesheet.printout
end sub

といった具合に、丁寧に書いていけば出来ます。

ご相談に書かれていることを手順を追って行うと
1.印刷する行数(最終行)を調べる
2.タイトル行を設定する
3.所定の行に改ページを打つ
4.印刷範囲を設定する
5.印刷する
というだけの作業です。


実際には
事前準備:タイトル行を設定する
事前準備:所定の30行ごとに、データの有無に関係なしに改ページを埋めておく
   →挿入メニューの改ページ
マクロの仕事:最終行を調べ、印刷範囲を設定して印刷する

だけで十分です。

作成例:
sub macro1()
 dim LastRow as long
’仮にA列で最終行を...続きを読む

Qエクセルでプルダウンメニューの作り方

  エクセルの画面で、よく三角形を逆さまにした形をクリックするといくつかメニューが出てき、どれかを選べるようになっていますが、その作り方を教えてください。
 会社で人事を担当していますが、三角形(プルダウンボタン)をクリックすると社員氏名一覧が表示され、そこから選択できるようにしたいのです。
 しばらく自力でいろいろやってみましたが、さっぱり見当がつかず、どうやればいいのか分かりませんでした。よろしくお願いします。

Aベストアンサー

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならないでしょうか?
Excel2007の場合は↓のURLが参考になるかもしれません。

http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis2.html

尚、同一Sheetに「名簿表」を作成する場合は名前定義する必要はなくて
「元の値」の右側の四角をクリックし、リスト表示したいセルをそのまま範囲指定すればOKです。

以上、お役に立てば良いのですが・・・m(_ _)m

こんばんは!
当方使用のExcel2003での一例です!

↓の画像のようにSheet2に名簿表を作成しておきます。
画像ではSheet2のA2セル以降を範囲指定 → 名前ボックスに仮に「名簿」と入力しOK
これで範囲指定したセルが「名簿」と名前定義されましたので、

Sheet1のリスト表示させたいセルを範囲指定 → メニュー → データ → 入力規則
→ リスト → 「元の値」の欄に
=名簿
としてOK

これでSheet1のセルをアクティブにすると右側に下向き▼が表示されますので、そこをクリック!
これで希望に近い形にならない...続きを読む

QExcelの改ページ 同シート内で複数の改ページの設定

同じシート内で多くの改ページを設定しなければならない場合
1ページ毎に設定していかないといけないのでしょうか?
それとも改ページしたいデータで並び替えて、同データのある行で改ページを分割していくのは可能でしょうか?

たとえばA列に上から111112223333344455555とある場合に自動的に1と2の間、2と3の間、3と4の間、4と5の間にそれぞれ自動的に改ページを入れたいのですが・・・

Aベストアンサー

マクロなら入力している値が変わったところに「改ページ」を挿入することが可能です。
「マクロはNG」なら手作業で1カ所ずつ挿入する必要があります。「プレビュー」→「改ページプレビュー」を利用すれば、改ページ位置の変更を、多少、楽に操作できるかもしれませんが、行数が多いならこの方法でも大変だと思います。

A列の値が変わったら改ページを挿入するマクロのサンプルは以下になります。
以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はワークシート画面に戻ってALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。

Sub Macro4()
Const col As String = "A" '改ページを判断するデータの列名
Dim idx As Long
Dim sv
sv = Cells(1, col).Value
For idx = 1 To Cells(65536, col).End(xlUp).Row
  If Cells(idx, col).Value <> sv Then
    ActiveSheet.HPageBreaks.Add Before:=Rows(idx)
    sv = Cells(idx, col).Value
  End If
Next idx
End Sub

でも実際のシートはそんなに単純ではないと思います。質問文に具体的な指示がないので、100%期待に添えるとは思いませんが、「ご参考まで」にどうぞ。
なおマクロの実行結果は「UNDO」で戻せませんので試しに実行するなら、シートは必ず保存しておいて、元に戻せるようにしておいてください。

マクロなら入力している値が変わったところに「改ページ」を挿入することが可能です。
「マクロはNG」なら手作業で1カ所ずつ挿入する必要があります。「プレビュー」→「改ページプレビュー」を利用すれば、改ページ位置の変更を、多少、楽に操作できるかもしれませんが、行数が多いならこの方法でも大変だと思います。

A列の値が変わったら改ページを挿入するマクロのサンプルは以下になります。
以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュー...続きを読む

Qエクセル(Excel) 納品書の作り方【画像修正版

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が見にくかったのでシート<CENTER></CENTER>だけにしました。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルでコピー!
そのまま最後の24行目までコピーしておきます。

F4セルには
=IF(COUNTBLANK(B4:E4),"",D4*E4)
という数式を入れ、F24までオートフィルでコピー!

これでB列に商品番号を入力すればSheet2のデータが反映され、
E列に数量を入力でF列に金額が表示されると思います。

最後に合計金額のF26セルは
=IF(COUNT(F4:F24),SUM(F4:F24),"")
手数料のF27セルは
=IF(F26="","",F26*0.2)

これで何とか形にならないでしょうか?

※ 振込金額の欄は不明ですので手を付けていません。

参考になりますかね?m(_ _)m

こんばんは!
前回投稿した者です。

当方もかなり古い(人間も古い!なぁ~んちゃって!)Excel2003を使用しています。
↓の画像のようにSheet2にデータを作成しておきます。

#N/A というエラーは、「検索値」がない!ということですので
お示しの画像のB列にSheet2のA列にないデータを入力するとそういったエラーが表示されます。

画像のセル配置ですと
C4セルに
=IF($B4="","",VLOOKUP($B4,Sheet2!$A:$C,COLUMN(B1),0))
(「$」マークの位置に気を付けてください)
という数式を入れD4セルまでオートフィルで...続きを読む

Qexcel2007印刷範囲の選択と改ページプレビューと改ページの挿入

Excel2007を使っています。
シートはExcel97-2003と互換性のあるbookで保存している状態です。
設定を変えた覚えがないのですが、
例えばNO1~NO6まで選択し、プリンタで「選択した部分を印刷」にします。

1枚目→正常
2枚目→NO2の一行だけ1枚の紙に印刷
3枚目→NO2の残り
4枚目→NO3の二行のみ印刷
5枚目→NO3の残り
6枚目→NO4の三行のみ印刷
というふうに一行ずつ増えて真中に印刷されてます。

ここで印刷ドキュメントは終わり、選択してあるNO5とNO6はなかったことになっています。

過去3年間「選択した部分を印刷」はトラブルなく普通にできていました。

いろいろ調べてみたのですが、
今までは「ページレイアウト」タブの「印刷範囲の設定」を使ったことがありません。
今印刷したいセルを選択したあと「印刷範囲の設定」を押すと謎の線が出てきて印刷されてたとおりわかれてしまっています。

表示タブの「改ページプレビュー」は正常です。

印刷範囲の選択と改ページプレビューと改ページの挿入についてわかっていないのかと思うのでどなたかお教えください。


サイズはA4縦です。
余白は上下2cm、左右1.5cm、ヘッダーフッターは1.3cm。
縮小は94%。

プリンタはエプソンPM-A890
パソコンはNEC、OSはウインドウズvistaです。

Excel2007を使っています。
シートはExcel97-2003と互換性のあるbookで保存している状態です。
設定を変えた覚えがないのですが、
例えばNO1~NO6まで選択し、プリンタで「選択した部分を印刷」にします。

1枚目→正常
2枚目→NO2の一行だけ1枚の紙に印刷
3枚目→NO2の残り
4枚目→NO3の二行のみ印刷
5枚目→NO3の残り
6枚目→NO4の三行のみ印刷
というふうに一行ずつ増えて真中に印刷されてます。

ここで印刷ドキュメントは終わり、選択してあるNO5とNO6はなかったことになっています。

過去3年間「...続きを読む

Aベストアンサー

印刷範囲を指定する、あるいは改ページを設定するなどの操作はすべて改ページプレビューに反映されるはずですね。そはならないということでしょうか?
印刷操作に入る前に改ページプレビューで確認されてみてはいかがでしょう。

Qエクセル(Excel) 納品書の作り方【改めて】

昨日http://oshiete.goo.ne.jp/qa/7348426.htmlで質問させていただき、詳しくご回答いただき少し進んだのですが、状況が変わったので改めて質問させていただきます。

■エクセル(Excel)で納品書の作成をしています。
シート1に納品書、シート2に商品マスタ(一覧)を作っていて、シート2の一覧を反映させて
納品書に番号を打ち込むだけで、商品名・単価までが出るシステムを作りたいのですが、
昨日のご回答の中の「VLOOKUP」?を入れて、自分なりにマス目の数字を変えてやってみたのですが
反映されずN/?のようなエラーになってしまいます。

※画像が貼り付けてあります。商品名は1番以外伏せさせていただいています。
くっつけてありますが、左側がシート1・右側がシート2です。

1、上記のように、シート2との関連付けの係数を、写真の場合の数字で教えてください。

2、合計と、合計から20%を引いた数値を割り出す関数も、写真の数字で御願いします。

宜しくご教授お願い致します。

Aベストアンサー

画像がいまいちよく見えないのですが、納品書の項目は左から、No、商品番号、商品名、単価、数量、金額でいいのでしょうか(名前は多少違っていても意味があっていればもんだいないです)

でしたら、
C1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,2,FALSE))
D1セルに=IF(ISBLANK(B2),"",VLOOKUP(B2,Sheet2!$A$2:$C$200,3,FALSE))
E1セルは空白で
F1セルに=IF(D2="","",D2*E2)
といれて、C1からF1までをコピーしてその下の行にタテに貼り付ければ出来ますよ。
おそらくエラーが出たのは、コピーしたときにVLOOKUP関数の最初のセルの指定がずれてしまっているのでは無いかと思いますよ。     

Qエクセルで改ページするときに、1ページ分の改ページをひろくしたら、同様に他のページも広くなる方法

エクセル2003ですが、改ページ表示したときに、青い線がでますよね。
それをおなじ大きさ?(同じページ幅)で、他のページも改ページをずらしたいのですが、今は一つずつ、手作業でしていますが、これを簡単にする方法はありますか?
質問の表現がどういえばいいのか、わからないのですが、たとえば、改ページしたときに40行くらいになっていて、それを45行くらいに変えていきたいのです。(行という言い方はおかしいかもしれませんが、、、)

Aベストアンサー

まず、「1ページ目の行数を変えれば他のページも変わる」という考えは捨てて下さい。

どんな印刷イメージをお持ちかで、方法は変わってきます。行数を変えた時に

1.文字の大きさ…変えない
  行間…変える

これは私が先に申し上げた、行の高さを変える方法です。

2.文字の大きさ…変えない
  行間…変えない

これは他の方がおっしゃった、余白を変える方法です。

3.文字の大きさ…縮める
  縦横の比率…変えない

これは「ファイル」-「ページ設定」でできます。
まず、改ページプレビューモードにしておきます。
行見出しを右クリック-「全ての改ページを解除」をします。
「ページ」タブの「次のページ数に合わせて印刷」を選び、縦のページ数を指定すればOKです。
100%で印刷したときに12ページになってしまうデータなら、9ページに収めるように設定すると、倍率を75%程度にして、9ページに収めてくれます。
ただし、この機能は「入りきれないデータを縮小して、指定した枚数に収める」ための機能なので、倍率100%で印刷した時に9ページで収まるデータを12ページに印刷するようにしても、12ページにはなりません。

4.文字の大きさ…大きくする
  縦横の比率…変えない

これも「ファイル」-「ページ設定」でできます。
倍率を4/3、つまり133%にすれば、9ページだったデータは4/3の12ページになります。
しかしこの場合、横幅が広がってはみ出てしまう可能性があります。その場合、1か2の方法を使うことになります。

まず、「1ページ目の行数を変えれば他のページも変わる」という考えは捨てて下さい。

どんな印刷イメージをお持ちかで、方法は変わってきます。行数を変えた時に

1.文字の大きさ…変えない
  行間…変える

これは私が先に申し上げた、行の高さを変える方法です。

2.文字の大きさ…変えない
  行間…変えない

これは他の方がおっしゃった、余白を変える方法です。

3.文字の大きさ…縮める
  縦横の比率…変えない

これは「ファイル」-「ページ設定」でできます。
まず、改ページプ...続きを読む

Qエクセル2007でプルダウンで選んだものに反応

Excel2007でプルダウンで選んだものに反応して隣のセルが自動入力される方法(エクセル2007)
A1をプルダウンで「猫」「犬」から選べるようにし、「猫」を選んだ場合B1に自動に「111」が、「犬」を選んだ場合B1に自動に「222」と入力されるようにしたいです。
ご教授の程、宜しくお願いします。

Aベストアンサー

VLOOKUP関数での方法です。
(1)別シートに入力文字列と対応コード表を作成。(仮にSheet2のA:B列範囲で順不同)
(2)B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2FALSE),"")を設定
   入力文字列が存在しない場合は空白としています。

QEXCEL 2003におけるVBA,マクロ、改ページ操作と印刷設定について

EXCEL 2003における
VBA、マクロについての質問です。
CSVデータを読み込んで、1度マクロを作動させて、
再度違うCSVデータを取り込んで表示したいので、シートフォーマットプロシージャを設定しましたが、改ページの調整が、わからないのでページ操作が毎回おかしくなってしまいますので誰か教えていただけないでしょうか。


'#######################################################
' セルフォーマット プロシージャ
'#######################################################

Sub clearcell()
Worksheets("Sheet1").Activate
Selection.CurrentRegion.Select
Selection.ClearContents
Selection.Borders.LineStyle = xlLineStyleNone
★★
'ページ操作についても、もとの状態にしたい'
'もしくは、1ページ何列で、何行までという指定が
'したいです。'
★★
End Sub

悩み(3)
印刷プロシージャにおいて、詳細な印刷設定が行いたい。

'#######################################################
' 印刷 プロシージャ
'#######################################################
Sub copypage()
ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

このような、印刷はできましたが、
詳細を設定できる、プロシージャの例があれば、教えて
いただければ幸いです。

よろしくお願いいたします。

EXCEL 2003における
VBA、マクロについての質問です。
CSVデータを読み込んで、1度マクロを作動させて、
再度違うCSVデータを取り込んで表示したいので、シートフォーマットプロシージャを設定しましたが、改ページの調整が、わからないのでページ操作が毎回おかしくなってしまいますので誰か教えていただけないでしょうか。


'#######################################################
' セルフォーマット プロシージャ
'#######################################################

Sub cle...続きを読む

Aベストアンサー

>詳細を設定できる、プロシージャの例があれば、教えて

マクロの記録で、印刷設定画面([ファイル]-[ページ設定])を開いて、「OK」をクリックすればアクティブシートの印刷設定をマクロに書き出せます。

その後、不要な設定を削除するなりして調整すれば良いでしょう。


人気Q&Aランキング

おすすめ情報