教えて!goo限定 1000名様に電子コミック1000円分が当たる!!

お世話になります。
Excelで売り上げ&支払い表を作っているのですが、1つのセルに4ページにまたがって表を作っています、そして5ページ目に合計などを入れるようにしています。
これで月によって入力数が違って空白のページが出来るので入力したページのみ印刷したいのですが出来るでしょうか。
例えば今月は1ページで終わったので1ページと合計のある5ページだけを印刷したいのです。

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

A 回答 (3件)

今回のケースのようにデータ数が変動する場合は、最終頁に集計行を設定するのではなく、1ページ目に集計行を設定されることをお勧めしますが、どうしても現在のレイアウトのまま途中の部分を印刷対象から外したいなら、印刷範囲の設定を行います。



すなわち、データの続いている範囲と5ページ目の集計行を含む範囲をCtrlキーを押しながらドラッグして選択し「ファイル」「印刷範囲」「印刷範囲の設定」をしてみてください。

いくつかの印刷パターンを登録しておく必要があるなら、この設定を「表示」「ユーザー設定のビュー」で名前を付けて保存しておき、いつでもこの印刷設定を呼び出せるようにしておきます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
何せ実務をするのがパソコンに疎い事務員なのでマクロでも作って簡単に出来ないかと思ったのです。
確かに集計項目をトップに置いた方が見た目もスマートですね、早速取り掛かります。

お礼日時:2010/01/15 17:57

よく考えたら、無理やり複数の印刷範囲を設定するよりも、入力されていない行を選択して、右クリックから「表示しない」にしてそのまま印刷するほうが簡単で確実ですね。



この場合も、いくつかのパターンをユーザー設定のビューに登録して、それを呼び出すこともできます。
    • good
    • 0

エクセルのバージョンが判りませんが、ファイル→印刷→ページの指定で出来ないでしょうか?


こんな簡単な事ではなくて、別の問題だったらすいません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
集計項目をトップに置いてページ指定印刷でやってみようと思います。

お礼日時:2010/01/15 17:59

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Qエクセルでデータがあるシートだけ印刷するマクロ

エクセルのマクロで印刷するマクロを使っていますが、5つある
ワークシートを全て選択して印刷するマクロでこれをデータ(数値)が
入っているワークシートだけ印刷するマクロにしたいのですがどのようにすればいいのでしょうか?

Aベストアンサー

こんばんは。

以下のようにするのが一般的です。

Sub test1()
Dim sh As Worksheet
For Each sh In Worksheets
 '数値のみ '文字を含むなら、CountA です。
 If WorksheetFunction.Count(sh.Cells) > 0 Then
   ''sh.PrintOut '印刷
 End If
Next
End Sub

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセル VBA 条件つきの印刷

エクセルVBAにおいて、
例えば「セルA1が空白でないシートすべてを印刷する」
このようなコードは可能でしょうか?
よろしくお願いします。
(エクセル2000)

Aベストアンサー

こんばんは。

Sub Test1()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
 If sh.Range("A1").Value <> "" Then
  sh.PrintOut 'Preview:=True
 End If
Next sh
End Sub

単に、こんな風にすればよいのですが、VBAを動かす前に、印刷範囲だけは確認したほうがよいかもしれません。

--それなら、VBAの意味がないではないか、と思うかもしれませんがね。(^^; もちろん、それはそれなりに方法はあるのですが。--

印刷というのは、一旦、印刷が始まると、とまらないわけですから、それで、こんなことを言っています。

sh.PrintOut Preview:=True

最初は、こんな風にして、プレビューで調べてから、印刷実行という方法もあります。

QExcel2003 マクロ 1ページのみ印刷する

マクロで印刷範囲を設定するとき、1ページのみ印刷の範囲とする設定をしたいのですが、
どのようにすればできますか?

Aベストアンサー

例えば
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:True

http://www.asahi-net.or.jp/~zn3y-ngi/YNxv9b62.html

Qエクセルで、空欄を印刷しない設定

エクセルで、
1行目 項目名
2行目以降 各データ
60行目 上記のデータの合計
61行目~70行目 メモ

としています。

2行目以降の何行かは入力済みですが、59行目までは空欄です。
ここを印刷せず、空のセルを詰めて、60行目~70行目のメモまでを印刷したいです。

例えば、3行目まで入力が行われていた場合、印刷結果として

1行目+2行目++3行目+60~70行目

となるようにしたいです。一発印刷ができればベストです。

入力されていないところを都度非表示にしたり、印刷する部分だけ選択するのもよいのですが、印刷する回数が多いので、手間がかからない方法を教えてほしいです。

VBAには疎いのですが、記載された内容をいただいて貼り付けたり、チェックすることは可能です。

また、マクロを使わなくてもできる方法があれば、そちらのほうが助かります。

Aベストアンサー

シートコピーして空白行を削除して印刷プレビューを表示してるだけでよろしければ以下でどうぞ。

Sub 空白行削除でプレビュー表示()
Dim i As Integer
ActiveSheet.Copy after:=ActiveSheet
With ActiveSheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For i = 70 To 2 Step -1
If WorksheetFunction.CountA(.Range("A" & i & ":AB" & i)) = 0 Then
.Rows(i).Delete
End If
Next i
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
.PrintPreview
End With
End Sub

シートコピーして空白行を削除して印刷プレビューを表示してるだけでよろしければ以下でどうぞ。

Sub 空白行削除でプレビュー表示()
Dim i As Integer
ActiveSheet.Copy after:=ActiveSheet
With ActiveSheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For i = 70 To 2 Step -1
If WorksheetFunction.CountA(.Range("A" & i & ":AB" & i)) = 0 Then
.Rows(i).Delete
End If
Next i
Application.Calculation = xlCalculati...続きを読む

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。

Qエクセル 規定のフォーマットに別シートのデータを繰り返し印刷

エクセルにて繰り返し印刷の方法を質問します。
 環境は、OSはME・エクセルは2000です。

現在、前任者からの引継ぎを行っています。
現在は200社ぐらいのデータを各シート(同じレイアウト)に分割入力しています。これでは入力・管理・印刷等も面倒なので、200社の入力データのみを1ページに入力して、表示や印刷のみは、別シートにする事を考えています。

<考え方>
1)ページA:200件の会社情報をコードにて管理。
必要なデータをそれぞれ入力。
2)ページB:表示や印刷する帳票レイアウト形式のページ。会社コードを入力すると、ページAから検索して、会社名やその他の情報を表示する。

表示は帳票形式のページに、データシートのセルを参照する形で可能です。vlookup関数を使用して、該当コードのそれぞれのデータを表示する・・・という形です。

問題は、この形式で印刷をしたいのです。
マクロ登録も考えましたが、1ページならばわかるのですが、複数会社を一回で印刷する方法がわかりません。

できれば、ページAに印刷指示セルの列を作り、ONになっている会社のみを印刷する・・・・ということが希望です。

マクロでできればよいのですが、繰り返しのまくろがわかりません。”VBAでできる”というのだけは分りますが、VBAについて、全然未経験なもので、実際の記述方法がわかりません。

過去の質問を見ましたが、該当そうなものをみつけられずに、困っています。どうぞよろしくお願いします。

エクセルにて繰り返し印刷の方法を質問します。
 環境は、OSはME・エクセルは2000です。

現在、前任者からの引継ぎを行っています。
現在は200社ぐらいのデータを各シート(同じレイアウト)に分割入力しています。これでは入力・管理・印刷等も面倒なので、200社の入力データのみを1ページに入力して、表示や印刷のみは、別シートにする事を考えています。

<考え方>
1)ページA:200件の会社情報をコードにて管理。
必要なデータをそれぞれ入力。
2)ページB:表示や印刷する帳票レイアウ...続きを読む

Aベストアンサー

私も何度も回答してます。
例データ
Sheet1はデータシート
A1:E5
行番号氏名住所年齢印刷
1大田東京都34p
2山田横浜市36
3上村千葉市15p
4木村静岡市16p

Sheet2は印刷シート
そこに行って
A1に「1」と入力(A1はどこか目立たないところでもよい)
あるいは第1列か第1列を遊び行にしてしまう。
氏名を印刷したいセルに
=VLOOKUP($A$1,Sheet1!$A$1:$C$100,2,FALSE)
住所をセットしたいセルに
=VLOOKUP($A$1,Sheet1!$A$1:$C$100,3,FALSE)
これは判りますね。他の項目も好きなところへ、第3引数だけ変えて
式をセット。
(印刷)
ALTきを押しつつF11,I,Mを順次押すと、標準モジュール画面になる。
そこへ下記をコピペする。
骨子ですが
Sub test01()
Range("A2:J20").PrintOut
End Sub
ーー
これでは今の1ページしか印刷しない。
VBAでA1を変化させる。するとSheet2の中身が変わります。
●これを第2行から最下行まで繰り返し
●F列がブランクで無い行だけを印刷する
に改良すると下記コードになる。
ーー
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
'--
d = sh1.Range("a65536").End(xlUp).Row
For i = 2 To d
If sh1.Cells(i - 1, "E") <> "" Then
sh2.Cells(1, "A") = i - 1
sh2.Range("A2:H20").PrintOut
End If
Next i
End Sub
ーー
これをF5を押して実行する。
このほかにも、ボタンをクリックすると実行する、などの方法があるので、勉強してください。
ーーー
印刷シートのSheet2に関して、書式、行高、列幅、印刷設定についてはVBAでやってません。手動でやってください。VBA熟練者には、型破りですが、そのほうが初心者には判りやすく、すぐ応用(自分で自由にできる)が効くからです。
わざわざ関数VLOOKUPを使うことを残しているのも、そういう見地からです。
自分流にチュニングが必要ですが(sh2.Range("A2:H20").PrintOutの印刷範囲など)推測して、テストしてみてください。

私も何度も回答してます。
例データ
Sheet1はデータシート
A1:E5
行番号氏名住所年齢印刷
1大田東京都34p
2山田横浜市36
3上村千葉市15p
4木村静岡市16p

Sheet2は印刷シート
そこに行って
A1に「1」と入力(A1はどこか目立たないところでもよい)
あるいは第1列か第1列を遊び行にしてしまう。
氏名を印刷したいセルに
=VLOOKUP($A$1,Sheet1!$A$1:$C$100,2,FALSE)
住所をセットしたいセルに
=VLOOKUP($A$1,Sheet1!$A$1:$C$100,3,FALSE)
これは判りますね。他の項目も好...続きを読む

Qexcelからexcelへの差し込み印刷

お世話になります。

excelでwordへの差し込み印刷をよく利用するのですが、
同様に、
excelのデータをexcelに流し込んで印刷する方法はありますでしょうか。

excelの名簿のデータを
excelの表のフォーマットに流し込んで
1人づつ印刷したいのですが。

お分かりの方いらっしゃいました教えてください。
どうぞ宜しくお願い致します。

Aベストアンサー

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

上記の品をお送り申し上げます。
ご査収ください

以上
Xの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,2,FALSE)
Yの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,3,FALSE)
Zの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,4,FALSE)

---
結果

送り状

住所山田 三郎
氏名東京都江東区

品物かばん

上記の品をお送り申し上げます。
ご査収ください

以上
ここで
VBE画面で標準モジュールに
Sub test01()
For i = 1 To 2 '人数分
Range("H1") = i
Range("A1:G20").PrintOut '印刷範囲は各人同じとする
Next i
End Sub
を張り付け、実行する。
山田、植田分の紙が2枚印刷されました。
これは質問者はVBAの経験も無いでしょうと、最低限にしてあります。
VBAを勉強してください。
別ブックにある名簿を対象などは複雑になるので避けています。

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

...続きを読む

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

Qエクセルでページ数をあるセルに表示させたい

どこかのセルに、そのシートで印刷される
ページ数を表示するような計算式orマクロはありますでしょうか。
質問が分かりにくかったらすみません。

Aベストアンサー

次の方法は如何でしょうか。
(1)挿入→名前→定義で名前欄に任意名(仮にaaa)、参照範囲欄に =GET.DOCUMENT(50) →OK
(2)表示セルを選択→F3キー押下→aaaを選択→OK→enter


人気Q&Aランキング