プロが教えるわが家の防犯対策術!

こんにちは。
エクセルを使って在庫管理をしてるのですが
在庫が1になったら発注をかけるようにしたいのですが
その際に発注をするように注意を促すメッセージを表示させたいと思っています。
マクロや条件付き書式や関数などいろいろありますが
こういう場合どうしたらいいでしょうか?
アドバイスよろしくお願いいたします。

「Office Excel こういう場合ど」の質問画像

A 回答 (4件)

私なら、イベントプロシージャ(マクロの一種)で発注メール自体を飛ばしちゃいますね。


もはや「忘れる」可能性すら根絶できますので、一番合理的でしょう。

まず、現残が1になると起動させる範囲に、「範囲名」をつけます。例では「現残」。
で、このシートのシートモジュールにこれをコピペ。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngGenzan As Range
Dim strProductID As String '商品ID
Dim MailSmtpServer As String
Dim MailFrom As String
Dim MailTo As String
Dim MailCc As String
Dim MailBcc As String
Dim MailSubject As String
Dim Mailbody As String

MailSmtpServer = "" 'メールサーバー名入れて下さい
MailFrom = "" '発信者入れて下さい
MailTo = "" '送付先入れて下さい
MailCc = "" 'CCの送り先入れて下さい
MailBcc = "" '同上
MailSubject = "商品発注:" '発注メールのタイトル
Mailbody = "" '本文

For Each rngGenzan In Range("現残")
If rngGenzan.Value = 1 Then
strProductID = rngGenzan.Offset(0, -1).Value
MailSubject = MailSubject & strProductID
If SendMailByCDO(MailSmtpServer, _
MailFrom, _
MailTo, _
MailCc, _
MailBcc, _
MailSubject, _
Mailbody) <> "ok" Then
GoTo ErrHandler
End If
End If
Next rngGenzan

Exit Sub
ErrHandler:
MsgBox "メール送信に失敗しますた('A`) 、環境をチェックしてください", _
vbCritical, "重大問題発生"
End Sub

そんで、Module1に参考URLのメール発信プログラムを乗っけたら、後は勝手にメール送信されます。
上記変数(Mailなんたら)も、シート上のどっかから変数化して取ってきてメール作っちゃうと合理的。
ちなみに上記はろくにテストもしてないしチューニング(普通なら起動範囲絞る)もしてないので、
使う場合はたたき台としてよろしくです。

ありゃー、確認画面でわかったけど、Tab利かないのね。見づらくてすみません。

参考URL:http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …
    • good
    • 0
この回答へのお礼

こんばんは。
これすごく便利ですね!
マクロをよく知らない私にとって目から鱗というか
思いもよらない方法で発注メールまで完了とは。
マクロも勉強したいと思っていたのでとても参考になりました。
>もはや「忘れる」可能性すら根絶
これです、これ!
忘れる馬鹿がいるんでわざわざ注意勧告を出すはめになっているので
もう少し勉強して教えていただいたマクロをたたき台として
自分なりのものを作っていきたいと思います。
ありがとうございました。

お礼日時:2010/02/27 18:53

こんにちは


#1補足です。
後からアップされた画像のイメージでよいなら、#2の方のアドヴァイスをもとに実現できますね。
#2の方の式を結合されたA3セルに条件(例えばチェックするセル範囲)やイメージ(条件付き書式で塗りつぶしとフォントを指定)に合うように編集すればよいです。

A3セル例)
=IF(COUNTIF([範囲],"<2")>0,"注文はしましたか?","")
※[範囲]はチェックするセルを指定します(下記参照)。

[範囲]例)
 $B$7:$B$* [*印に末尾の行番号を指定する]
 $B:$B [B1~B6セルに値 1 が無いこと]

 条件付き書式では、「セルの値が」を「数式が」に選択を変更して次の式を設定し、フォントとパターンの色を選択して下さい。

=$A$3="注文はしましたか?"
 
    • good
    • 0
この回答へのお礼

こんばんは。
教えていただいたやり方で思うとおりできました^^
ありがとうございました。

お礼日時:2010/02/27 18:47

No.1さんの書かれている方法が一番判りやすいと思います。



ただ私はマクロを知らないので代替案としてはA1~A7に在庫数が入力されていた場合は
=IF(COUNTIF(A1:A7,"<2")>0,"注意:在庫数が1の項目があります","在庫は適正です")
のようなセルを目立つ場所に文字サイズを大きくして挿入します。

あとどのセルが1以下になったのかすぐに判るように在庫数の欄には条件付き書式で文字か背景の色が目立つようにしますね。
「Office Excel こういう場合ど」の回答画像2
    • good
    • 0
この回答へのお礼

早速のアドバイスありがとうございます。
教えていただいた計算式でうまくいきました。
条件付き書式で思うとおりできました。
ありがとうございました。

お礼日時:2010/02/26 15:52

こんにちは


>在庫が1になったら発注をかけるようにしたいのですが、その際に発注をするように注意を促すメッセージを表示させたいと思っています。
 おっしゃるとおり、条件付き書式でセルに表示や変則的ですが入力規則でセルに表示、関数でセルに表示がありますが表示セルを見ない限り気づきませんね。

 やはりここはマクロでメッセージボックスをエクセルシート上に表示して知らせる方が一番目立ちそうです。
    • good
    • 0
この回答へのお礼

早速のアドバイスありがとうございます。
自分のやりたい形の画像をアップしました。
マクロは使ったことがなく全くわからないのですが
こういう感じにしたい場合どうすればいいのでしょうか。
もう少し教えていただけると助かります。
よろしくお願いします。

お礼日時:2010/02/26 15:23

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