• 締切済み

エクセル2003の質問です

エクセルでの質問です。  シート1にA1商品コード、B1に商品名、C1に在庫数、D1に生産者とした時に     A       B       C       D 1 商品コード 商品名  在庫数 生産者 2 1234   みかん1   3   太郎さん 3  456   みかん2   5   次郎さん 4  234    りんご1   1   太郎さん ・ ・ シート2のA1に太郎さんを入力した時に シート2のA1に「太郎さん」を記入 シート2のE3に「行位置」と記入 シート2のA3以降に「商品コード」「商品名」「在庫数」を記入 E4に =IF(COUNTIF(Sheet1!E:E,$A$1&ROW(A1)),MATCH($A$1&ROW(A1),Sheet1!E:E,0),"") と記入、以下コピー A4に =IF($E4="","",INDEX(Sheet1!A:A,$E4)) を記入、右にコピー、下にコピー と教えていただき大変便利に使用していますが、印刷範囲をデータが表示された場所に合わせ自動で 変更設定出来る方法が知りたいです。なおシート2は表になっている為、罫線が先に入れてあります よろしくお願い致します。

みんなの回答

noname#203218
noname#203218
回答No.1

[ファイル]→[印刷範囲]→[印刷範囲の設定]で印刷範囲を設定します。 [挿入]→[名前]→[定義]で、[Print_Area]という名前ものが存在すると思うので、それを選択し、参照範囲の数式を以下の様に変更してOKします。 ※数式はA列からC列のデータだとして、A列のデータ数で判別し、A列にデータが追加されるたびに印刷範囲が変更されます。 =OFFSET(!$A$1,0,0,COUNTA(!$A:$A),3) 数式の最後に記載されている数値3が列数を指定しています。(この場合C列) 最初の列データに途中空白セルが存在する場合はこの方式は利用出来ません。今回は問題無いようですが、次回以降利用される場合、留意下さい。 「ファイル」「ページ設定」で「ページ」タブのウィンド中央の拡大縮小印刷で、「次のページ数にあわせて印刷」がありますので、それを選択して、ページ数を設定し、終了です。

tamamike3670
質問者

補足

早速の回答ありがとうございます  さっそく試してみたのですが、どうしても=IF($E4="","",INDEX(Sheet1!A:A,$E4))  の数式が入力されていてデータが表示されていない場所まで印刷範囲に設定されてしまいます。  >A列にデータが追加  ではなく、表示の場合はどうなのでしょうか? よろしくお願いいたします。