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

エクセルで見積表を作りたいと考えています。商品名、単価をあらかじめ入力しておいて、後で数量さえ入力すれば合計金額が出るという、よくあるタイプのものです。
しかし、ここまでなら私にも作成出来るのですが、問題はこの後です。数量を入力した商品、単価、数量、金額、最終的な合計金額のみを印刷できるようにしたいのです。つまり、その都度、数量を入力していない商品(行)を省いて印刷したいのです。そうしないと商品の量が多い為に、大変な枚数になってしまい、分かり難い見積表となってしまいます。
また、もう1つお願いがあるのですが、実際、見積表の数量を入力する営業さん達は、エクセルについては超初心者ばかりです。抽出して印刷する方法は、出来るだけ分かりやすいものだと助かります。しかし無理であれば、どんな方法でも構いません。教えてください!!宜しくお願いします。補足が必要であれば致します。

A 回答 (5件)

いろいろな方法があると思いますが意外と


簡単なマクロの組み方を一つの例として挙げます!

前提:
 (1)シート名をSheet1とする。
 (2)A列=商品、B列=単価、
  C列=数量、D列=金額とする。
 (3)1行目は見出し行とする。
 (4)メニューバーのファイルより
  印刷範囲の設定を行なう
  (A列~D列を印刷)
作成手順:
 (1)コマンドボタンを用意する。
  1行目E列に1個「編集」
  1行目F列に1個「戻す」
  用意の方法
  1:メニューバー/表示(v)
   /ツールバー/コントロールツールボックス
   にチェックするとツールバーに
   ボタンが表示される
  2:そのなかのコマンドボタンをクリック
   する。
   (マウスポインタをあてれば名称が出ます)
  3:シート上の作成したい場所で好きな大きさに
   ドラックする。
  4:出来たコマンドボタンを
   右クリックし、
   コマンドボタンオブジェクト/編集にて
   ボタンの表面の文字を編集する。
 (2)「編集」ボタンをダブルクリックすると
   下記の表示が出てくる

  Private Sub CommandButton1_Click()
  End Sub

  上記の間に下記を追加する。
  Private Sub CommandButton1_Click()
Dim i As Integer
i = 2

Do Until i = -1
 If Worksheets("Sheet1").Cells(i, 1).Value = "" Then
i = -1
 Else
If Worksheets("Sheet1").Cells(i, 4).Text = 0 Or _
Worksheets("Sheet1").Cells(i, 4).Text = "" Then
Worksheets("Sheet1").Rows(i).Select
Selection.EntireRow.Hidden = True
End If
i = i + 1
 End If
  Loop
  End Sub

  上記は、2行目より1行づつ、商品が記入されている
  間、金額が0か、そうでないかのチェックを行い、
  金額が0の場合、行を非表示にしている。
  商品欄が空白になった行でチェック終了とする。
  この書き込みが終了したら一番上の×ボタンで画面を
  閉じて下さい。シートに戻ります。
 
 (3)「戻す」ボタンをダブルクリックすると
   下記の表示が出てくる

   Private Sub CommandButton2_Click()
   End Sub
   上記の間に下記を追加する。
   Private Sub CommandButton2_Click()
Worksheets("Sheet1").Cells.Select
Selection.Rows.Hidden = False
   End Sub

   上記はSheet1の行非表示を元に戻しています。
   (2)と同様画面を閉じて下さい。
 (4)シートにもどったら、デザイン画面から実行画面に
  変更します。
  方法は、ツールバーのアイコンで
  三角定規と定規と鉛筆が組み合わさったような絵が
  ONになっていると思うのでクリックしてOFFに
  してください。
  編集する場合はこれをONにするとマクロの編集
  が可能です。
 (5)以上でボタンをクリックするだけで
  不必要な行が非表示になり、印刷されない状態になり
  ます。
  入力するさいは戻すでもとにもどせば入力できます。
  次にこのファイルを開く時
  「マクロを有効にしますか?」の
  メッセージが表示されるので、
  「有効にする」で開いてください。

どうでしょう!(^-^)

この回答への補足

お返事ありがとうございます。
早速やってみたのですが、「編集」をクリックすると、「構文エラー」が出ます。
下記の部分なのですが、再度、教えてください。

「 If Worksheets("Sheet1").Cells(i, 4).Text = 0 Or _ 」

最後の「Or」の部分が怪しい気がします。(ここを直せマークみたいなものが出てました)
宜しくお願いします!!

補足日時:2001/09/06 15:04
    • good
    • 0
この回答へのお礼

すみません!私の入力の仕方がおかしかったようです。
kukkychanさんの入力通りをそのままコピーして貼りつけたら出来ました!
ありがとうございました。

お礼日時:2001/09/06 15:31

ごめんなさい、抜けてました。


たしかにこれだけでは印刷できないですね…
4のcを修正させてもらいます。

4:印刷用マクロを作成する
  a まず納品書シートに画面を戻し、個数欄に例として数を入力しておく
  b 「ツール」→「マクロ」→「新しいマクロの記録」→マクロ名「印刷」・マクロの保存先「作業中のブック」→
    OK(ここからマクロの登録開始)
  c 印刷用シートに画面を写す→「データ」→「フィルタ」→「オートフィルタ」→「オプション」→
    抽出条件の指定「0と等しくない」→OK→「印刷」→ 記録終了

見積表シートを修正し、印刷ボタンを押すと、
ボタンに登録したマクロが実行されて
修正結果が反映されるようになってます。
(逆にいえばボタンを押さないと修正が反映されません。)
もし毎回印刷が必要という訳ではなく、
結果の反映を見てから印刷したいというのであれば
4で印刷ボタンのかわりに反映(実行)ボタンを作成し、
印刷用シートを「印刷」でプリントアウトしてもいいと思います。
反映用マクロの作成は、私がANo.#4で書いた4と全く同じです。

これでまだ不具合であればまた補足下さい。  
    • good
    • 0
この回答へのお礼

回答ありがとうございます。hicatさんの回答通りにやってみたら出来ました!
皆さんにご回答頂いた内容を試しているのですが、分からないものもあり、再度質問をしております。もし時間がありましたら、そちらの方も見てみてください。あつかましくてほんとスミマセン!宜しくお願いします。
何度もご親切に回答を頂き、今回は本当にありがとうございました。

お礼日時:2001/09/06 17:37

これでどうでしょうか・・・



1:見積表書式を作成する(これを見積表シートとする)
2:見積表シートをシートコピーし、印刷シートを作成する
3:見積表シートに入力したら印刷シートへ反映するようにセルをコピーする。
  (相手会社名・日付・個数等、営業の人が入力するであろう箇所をコピー)
4:印刷用マクロを作成する
  a まず納品書シートに画面を戻し、個数欄に例として数を入力しておく
  b 「ツール」→「マクロ」→「新しいマクロの記録」→マクロ名「印刷」・マクロの保存先「作業中のブック」→
    OK(ここからマクロの登録開始)
  c 印刷用シートに画面を写す→「データ」→「フィルタ」→「オートフィルタ」→「オプション」→
    抽出条件の指定「0と等しくない」→OK→記録終了
5:営業さんに分かりやすいように印刷ボタンを作る
  a 「表示」→「ツールバー」→「フォーム」
  b 「ボタン」→ボタンを作る→マクロの登録「印刷」を選択→OK
  c 作ったボタンを右クリックし、「テキストの編集」で名前を「印刷」に変える

4・5と同様の手順で「クリア(消去)」を作ったり、
営業の人が入力する箇所に「塗りつぶし」を作っておくと親切でしょうね。

この回答への補足

お返事ありがとうございます。
分からない点がありましたので、教えてください。
この方法だと、数量を入れ終わった後に訂正をしたい場合、もとの見積表シートを修正しても、自動的には印刷用シートに反映されませんでした。フィルタの逆三角マークを押して、「すべて」にすればでましたが・・・。どうしてでしょうか?やりかたが違うのでしょうか?
また、印刷ボタンですが、出来る事は出来ましたが、これを押すと印刷できるのですか?私が作ったボタンでは、表が範囲指定されるだけで印刷までは出来ませんが、そういったものなんでしょうか?宜しくお願いします。

補足日時:2001/09/06 14:17
    • good
    • 0

マクロは操作の自動化とでも言うんでしょうか?


複数の動作を一度に自動処理できるので大変便利ですが・・・
ある程度簡単なものなら前述のように
 「ツール→マクロ→新しいマクロの記録」を選択後自分のやりたい
 操作をそのまま実行します。それが終わったところで「マクロの
 記録終了」をクリックすれば完成
という事になります  ただしこの作業中の行為はすべて記録されるため
間違ったことも、それを「やり直し」をかけてもすべて記録されます。
これを「フォーム → ボタン選択 →ボタンにマクロを登録」と
なって初めてボタンいっぱーつ状態になるのですが・・・
ちなみに「マクロ」が出ない場合は追加インストールになるんじゃ
なかったっけ・・・?
またこういう「記録だけ」で作ったマクロはいかなる状況においても
自分の思ったように動くわけではないため、正直現時点ではお勧めできません。
通常はVBAというかたちでマクロのための「特別な文法」で作成します。
このへんはもっと上級の方が書いてくださるかも。
ちなみに先ほど紹介したサイトはマクロの解説もあります。

マクロを簡単に「記録」で作成するにせよ、先ほどの私のつたない回答で
得られる結果になるのかどうかわからないと、お答えもしようがないのです
あまりお役に立てずすみません 私も仕事中人目を盗んでの書き込みです(笑)
    • good
    • 0

発注がなければ、数量の部分はブランクですか、0ですか?わかんないので


それは回避して、個数の列に
 データ→フィルタ→オートフィルターの順に選択
 オートフィルターのプルダウンリストが現れたら上から2番目の
 オプションをクリック 左のプルダウンに1 右のプルダウンに「以上」を設定
反対にすべて表示するときはオートフィルターのプルダウンリストの中から
「すべて表示」にするか「データ→フィルタ→オートフィルターのチェック
 まーくをはずす」です

これで一様おっしゃってるような形になりませんか?
この一連の動作をマクロ記録して、ボタンに登録すれば他の方も使いやすく
なると思いますが・・・ 
ちなみにエクセルの質問の場合バージョンも書き込んだほうがいいですね

下のサイトはとても参考になると思います

参考URL:http://www2.odn.ne.jp/excel/index.html

この回答への補足

早速のお返事ありがとうございます。
バージョンは、2000の1個前(←97かな?すみません!)です。ところで、マクロ記録って何ですか?すみません、やり方も含めておしえてください。宜しくお願いします。

補足日時:2001/09/06 09:57
    • good
    • 0

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