• ベストアンサー

Excelで出来るのかな?

Excelにて、見積の書式を現在制作しています。 ひと通り項目を入力したものの、項目によっては常時記入しない 部分があったりします。しかし、印刷時には、しっかり印刷されて しまい、これでは見積を貰ったお客さんが混乱を招く恐れがあります。    なんとか項目に数量を入れない場合、印刷に出ない方法がExcelにて ありましたら教えてください。

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

  • ベストアンサー
  • akey
  • ベストアンサー率38% (8/21)
回答No.5

#2です。 VBAはMicrosoft Officeに含まれているプログラミング言語です。 比較的取っつきやすいと思いますので、是非習得されることを お勧めいたします。Excelの世界が何百倍(?)にも広がります #3さんのおっしゃっている方法で今回は十分なのでしょうが、 マクロを使わないと自動処理できない方法(不要行を非表示)を 参考までに説明させていただきます(よけいなお世話?)。 例えば非常に単純な見積書を想定した場合を説明いたします。 EXCELのシートで A列:項目名 B列:数量 C列:単価 D列:金額 となっている見積書で、1行目から9行目までは 社名等が書かれていて、11行目から内容が 入力されているようなものを想定します。 1~9行:社名等 10行目:項目名、数量、単価、金額と入力されている 11行目から30行目まで、内容が入力されている。 また、あらかじめ、印刷範囲等の印刷条件は設定済みと仮定します。 手順: 1.見積書のBookを開く。 2.Alt + F11 でVBE(Visual Basic Editor)を開く。 3.挿入(I) - 標準モジュール(M) 4.開かれた標準モジュール内に下に書いたSub 印刷() ~ End Subをコピーして貼り付ける。 Sub 印刷() Dim i As Long 'この場合、11行目から30行目を処理するというような意味 For i = 11 To 30 'B列の値がゼロまたは空白であった場合その行だけを非表示にする。 If Range("B" & i).Value = "" Or Range("B" & i).Value = 0 Then Rows(i).Hidden = True End If Next i ActiveSheet.PrintOut '印刷実行のコマンド Rows.Hidden = False '先に非表示にした行を再表示する。 End Sub 以上で準備OKです。

参考URL:
http://www.moug.net/index.htm
fujito-keisuke
質問者

お礼

参考ページを見させて頂きました。 Excelの奥深さを改めて痛感しました。 今後、少しずつ勉強し、Excelの世界の幅を広げていこう と思います。 ありがとうございました。

その他の回答 (4)

  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.4

私も#1さんの方法でやってます。 お手軽簡単ですからね。 >出来れば自動的に移るような >やり方がないかと思ってですね はい、自動的に移ります。

fujito-keisuke
質問者

お礼

お返事ありがとうございます。 今から挑戦してみますが、#2と#3で教えて頂いた方法は、今後使えるかも知れません!! うまくいったら報告しますね^^

  • dejiji-
  • ベストアンサー率38% (327/858)
回答No.3

項目部分を印刷しないようにする場合、そこのセル部分が印刷時空欄になってしまっても良いのなら以下の方法で可能ですが。 項目部分に書式→条件付書式で「数式が」を選択して式に「=A2=””」と入力して書式部分で文字を白にしてしまえばセルの色と同じになり見かけ上は見えなくなり、印刷もされなくなります。 後は、この書式を項目全体にコピーすれば出来ます。(このとき「A2」の部分は必ず相対参照にしておいてください。$A$2の絶対参照は駄目です。)コピーは条件付書式の入ったセルの右下を必要な部分まで右クリックでドラッグして書式のコピーを行えば数分の作業だと思います。 ただこの方法だと何か間の抜けた感じになってしまう可能性は高いですが。 これ以外だったら#1の方のように別シートに数式を使い入力済みのセルだけを引っ張ってきて表示させ印刷ですか。こちらの方が体裁は良いと思いますが。

fujito-keisuke
質問者

お礼

ご回答ありがとうございます。 かなり具体的に教えて頂きまして、大変参考になります。 早速、挑戦してみます。

  • akey
  • ベストアンサー率38% (8/21)
回答No.2

マクロ(VBA)を使えばたぶんできると思います。 見積書のレイアウトが分からないので、具体的には 書けませんが、 例えば、数量の欄を見て、それが空欄または0であれば、 行を非表示にするだとか、対象のセルの文字の色を ”白”にするだとかして印刷されないようにすることは 可能です。

fujito-keisuke
質問者

お礼

ご回答ありがとうございます。 マクロ(VBA)とは、Excel内にあるのですか? ちょっと調べてみますが、かなり光が見えてきた気がします^^ 私の書式無視して出来れば詳しく教えていただけますか? お願いします。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

違うシートに 必要箇所のみ印刷できるようにレイアウトして作成したらいいと思います。 ちなみに シート名!をつければ 他のシートのセルの中身をもってこれます。

fujito-keisuke
質問者

お礼

早速のお返事ありがとうございます。 必要箇所だけシートに移す方法ですか^^; 一度は、それでもいいかなって思ったのですが 何せ項目が非常に多く、出来れば自動的に移るような やり方がないかと思ってですね・・・^^;

関連するQ&A