エクセルで見積表を作りたいと考えています。商品名、単価をあらかじめ入力しておいて、後で数量さえ入力すれば合計金額が出るという、よくあるタイプのものです。
しかし、ここまでなら私にも作成出来るのですが、問題はこの後です。数量を入力した商品、単価、数量、金額、最終的な合計金額のみを印刷できるようにしたいのです。つまり、その都度、数量を入力していない商品(行)を省いて印刷したいのです。そうしないと商品の量が多い為に、大変な枚数になってしまい、分かり難い見積表となってしまいます。
また、もう1つお願いがあるのですが、実際、見積表の数量を入力する営業さん達は、エクセルについては超初心者ばかりです。抽出して印刷する方法は、出来るだけ分かりやすいものだと助かります。しかし無理であれば、どんな方法でも構いません。教えてください!!宜しくお願いします。補足が必要であれば致します。
No.3ベストアンサー
- 回答日時:
いろいろな方法があると思いますが意外と
簡単なマクロの組み方を一つの例として挙げます!
前提:
(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」の部分が怪しい気がします。(ここを直せマークみたいなものが出てました)
宜しくお願いします!!
すみません!私の入力の仕方がおかしかったようです。
kukkychanさんの入力通りをそのままコピーして貼りつけたら出来ました!
ありがとうございました。
No.5
- 回答日時:
ごめんなさい、抜けてました。
たしかにこれだけでは印刷できないですね…
4のcを修正させてもらいます。
4:印刷用マクロを作成する
a まず納品書シートに画面を戻し、個数欄に例として数を入力しておく
b 「ツール」→「マクロ」→「新しいマクロの記録」→マクロ名「印刷」・マクロの保存先「作業中のブック」→
OK(ここからマクロの登録開始)
c 印刷用シートに画面を写す→「データ」→「フィルタ」→「オートフィルタ」→「オプション」→
抽出条件の指定「0と等しくない」→OK→「印刷」→ 記録終了
見積表シートを修正し、印刷ボタンを押すと、
ボタンに登録したマクロが実行されて
修正結果が反映されるようになってます。
(逆にいえばボタンを押さないと修正が反映されません。)
もし毎回印刷が必要という訳ではなく、
結果の反映を見てから印刷したいというのであれば
4で印刷ボタンのかわりに反映(実行)ボタンを作成し、
印刷用シートを「印刷」でプリントアウトしてもいいと思います。
反映用マクロの作成は、私がANo.#4で書いた4と全く同じです。
これでまだ不具合であればまた補足下さい。
回答ありがとうございます。hicatさんの回答通りにやってみたら出来ました!
皆さんにご回答頂いた内容を試しているのですが、分からないものもあり、再度質問をしております。もし時間がありましたら、そちらの方も見てみてください。あつかましくてほんとスミマセン!宜しくお願いします。
何度もご親切に回答を頂き、今回は本当にありがとうございました。
No.4
- 回答日時:
これでどうでしょうか・・・
1:見積表書式を作成する(これを見積表シートとする)
2:見積表シートをシートコピーし、印刷シートを作成する
3:見積表シートに入力したら印刷シートへ反映するようにセルをコピーする。
(相手会社名・日付・個数等、営業の人が入力するであろう箇所をコピー)
4:印刷用マクロを作成する
a まず納品書シートに画面を戻し、個数欄に例として数を入力しておく
b 「ツール」→「マクロ」→「新しいマクロの記録」→マクロ名「印刷」・マクロの保存先「作業中のブック」→
OK(ここからマクロの登録開始)
c 印刷用シートに画面を写す→「データ」→「フィルタ」→「オートフィルタ」→「オプション」→
抽出条件の指定「0と等しくない」→OK→記録終了
5:営業さんに分かりやすいように印刷ボタンを作る
a 「表示」→「ツールバー」→「フォーム」
b 「ボタン」→ボタンを作る→マクロの登録「印刷」を選択→OK
c 作ったボタンを右クリックし、「テキストの編集」で名前を「印刷」に変える
4・5と同様の手順で「クリア(消去)」を作ったり、
営業の人が入力する箇所に「塗りつぶし」を作っておくと親切でしょうね。
この回答への補足
お返事ありがとうございます。
分からない点がありましたので、教えてください。
この方法だと、数量を入れ終わった後に訂正をしたい場合、もとの見積表シートを修正しても、自動的には印刷用シートに反映されませんでした。フィルタの逆三角マークを押して、「すべて」にすればでましたが・・・。どうしてでしょうか?やりかたが違うのでしょうか?
また、印刷ボタンですが、出来る事は出来ましたが、これを押すと印刷できるのですか?私が作ったボタンでは、表が範囲指定されるだけで印刷までは出来ませんが、そういったものなんでしょうか?宜しくお願いします。
No.2
- 回答日時:
マクロは操作の自動化とでも言うんでしょうか?
複数の動作を一度に自動処理できるので大変便利ですが・・・
ある程度簡単なものなら前述のように
「ツール→マクロ→新しいマクロの記録」を選択後自分のやりたい
操作をそのまま実行します。それが終わったところで「マクロの
記録終了」をクリックすれば完成
という事になります ただしこの作業中の行為はすべて記録されるため
間違ったことも、それを「やり直し」をかけてもすべて記録されます。
これを「フォーム → ボタン選択 →ボタンにマクロを登録」と
なって初めてボタンいっぱーつ状態になるのですが・・・
ちなみに「マクロ」が出ない場合は追加インストールになるんじゃ
なかったっけ・・・?
またこういう「記録だけ」で作ったマクロはいかなる状況においても
自分の思ったように動くわけではないため、正直現時点ではお勧めできません。
通常はVBAというかたちでマクロのための「特別な文法」で作成します。
このへんはもっと上級の方が書いてくださるかも。
ちなみに先ほど紹介したサイトはマクロの解説もあります。
マクロを簡単に「記録」で作成するにせよ、先ほどの私のつたない回答で
得られる結果になるのかどうかわからないと、お答えもしようがないのです
あまりお役に立てずすみません 私も仕事中人目を盗んでの書き込みです(笑)
No.1
- 回答日時:
発注がなければ、数量の部分はブランクですか、0ですか?わかんないので
それは回避して、個数の列に
データ→フィルタ→オートフィルターの順に選択
オートフィルターのプルダウンリストが現れたら上から2番目の
オプションをクリック 左のプルダウンに1 右のプルダウンに「以上」を設定
反対にすべて表示するときはオートフィルターのプルダウンリストの中から
「すべて表示」にするか「データ→フィルタ→オートフィルターのチェック
まーくをはずす」です
これで一様おっしゃってるような形になりませんか?
この一連の動作をマクロ記録して、ボタンに登録すれば他の方も使いやすく
なると思いますが・・・
ちなみにエクセルの質問の場合バージョンも書き込んだほうがいいですね
下のサイトはとても参考になると思います
参考URL:http://www2.odn.ne.jp/excel/index.html
この回答への補足
早速のお返事ありがとうございます。
バージョンは、2000の1個前(←97かな?すみません!)です。ところで、マクロ記録って何ですか?すみません、やり方も含めておしえてください。宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 荷捌作業効率をあげるためのエクセル関数を教えてください。 8 2022/10/07 08:17
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- 財務・会計・経理 【仕訳】集計されて引かれる販売手数料について 5 2023/04/26 15:32
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Excel(エクセル) 【Excel】複数シートがあるエクセルデータで片面印刷と両面印刷設定がシートごとに入 1 2023/03/10 15:25
- その他(買い物・ショッピング) 商品に印字してあるバーコードについて 3 2022/08/26 10:42
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- Excel(エクセル) グループの最後の行に書式、計算式なども同じ行を追加するマクロを教えてもらえませんか。 7 2022/05/18 10:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access終了時にマクロまたはVBA...
-
エクセルのマクロボタンが編集...
-
別シートのマクロを実行する方法
-
Application.Runエラー(1004)
-
ExcelのVBAでDisplayalertsで警...
-
マクロ 戻るボタンを押したらシ...
-
シート保護を掛けたまま並べ替...
-
マクロとモジュールの違いを教...
-
特定のシートだけ印刷はマクロ...
-
Excel起動時に画面表示縮小を自...
-
特定マクロが実行されたか確認...
-
プロシージャが大きすぎます!
-
今日の日付の範囲を指定して印...
-
ExcelVBAで右クリックメニュー...
-
InputBox内の表示について
-
access2010 コマンドまたはアク...
-
アクセス起動時にVBAを実行させ...
-
「Access」のフォームを...
-
エクセル VBA SendKeys ループ...
-
private sub にしたらマクロが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのマクロボタンが編集...
-
別シートのマクロを実行する方法
-
Application.Runエラー(1004)
-
Access終了時にマクロまたはVBA...
-
シート保護を掛けたまま並べ替...
-
access2010 コマンドまたはアク...
-
エクセルVBAで、ボタンの文字を...
-
マクロ 戻るボタンを押したらシ...
-
マクロが登録できません
-
エクセル VBA SendKeys ループ...
-
InputBox内の表示について
-
ExcelのVBAでDisplayalertsで警...
-
特定のシートだけ印刷はマクロ...
-
今日の日付の範囲を指定して印...
-
マクロとモジュールの違いを教...
-
エクセルの右クリックにオートS...
-
Workbook_Openを起動時以外に呼...
-
プロシージャが大きすぎます!
-
別シートのトグルボタンを指定...
-
アクセス:検索フォームボタンに...
おすすめ情報