警告表示の方法

1.同一商品の二重計上時の警告表示:
 コンボボックスで5商品まで選択できるようにしていますが、すでに選択している商品を二重計上した場合警告表示を行なうようにします。
1)ユーザーフォームの挿入:
 タブの「ユーザーフォームの挿入」をクリックし、ユーザーフォームを挿入します。(ここでは、UserForm2となっています。)
図1
2)ユーザーフォームにラベルとコマンドボタンを貼り付け、ラベルには注意喚起する言葉を書込みます。
ここでは下図のようにしました。
図2
3)「了 解」のコマンドボタンのプロシージャに「ユーザーフォーム2」を非表示にするプログラムを書きます。
図3
4)注文書への商品名の書込みのタイミングを変更:
  商品名の書込みは、「書込み」ボタンのプロシージャで行なわせましたが今回は警告を出すために商品をコンボボックスで選択した時点で二重計上となって いないかのチェックを行い警告を表示させたいためにコンボボックスで商品を選択したら注文書シートに書込みを行なわせることにします。
商品名のコンボボックスの「Enter」、「Exit」のプロシージャに追記修正を行ないます。
「Exit」には、すでに単価の書込みの「TextBox4.Value=ComboBox2.Value」と書き込まれていますが、下図のように修正く ださい。
図5 
「Enter」プロシージャ:
 コンボボックスに「Enter」すると注文書シートの該当の商品名のセルをリセットさせます。
「Exit」プロシージャ:
 変数nで商品名の列を検索し「If ComboBox2.Text=WorkSheets("注文書").Cells(7+n, 3).Value Then」で同一商品が存在しないか確認します。同一商品名が見つかればUserForm2を表示させます。
「ElseIf n=5 Then 」は、n=5まで進んでも同一商品名が検出されなかったことを意味していますので、「Worksheets("注文書").Cells(8, 3).Value = ComboBox2.Text」で注文書に商品名を書き込み、次に「TextBox4.Value = ComboBox2.Value」で、単価をテキストボックスに書き込ませす。
こ こでコンボボックス2は最初の商品だから同じ商品が書き込まれていることはない筈ですから同一商品の確認作業は必要ないのではと考えられますが、日常業務 では、他の商品を書き込んだ後で、最初のコンボボックス2の商品名を修正しても対応するためです。
このコンボボックス2の「Enter」と「EXit」のプロシージャのプログラムを他のコンボボックス3~6に書き込みます。
但し、コンボボックスの番号、注文書への書き込みの位置、及び単価を書き込テキストボックスの番号は当然コンボボックスに応じた番号に書換えが必要です。
参考までにコンボボックス3、コンボボックス4の場合を下図に示します。
赤下線部が書換えを行なった箇所です。図6
警告表示がうまく動作した場合は次のようになります。図7
また参考までにこの時点での注文書を確認すると、松村商品B,C,Dまでが書き込まれている状態です。
図8
【参考】
前の「書込み」ボタンのプロシージャでも「記録一覧」シート及び「発注先」シートへの書込みプ ログラムに「注文書」シートの「商品一覧表」を活用しました。今回も同様に「商品一覧表」を活用しました。
この「商品一覧表」を活用したメリットは繰り返し文が使用できてプログラムが簡略化できることです。
今回この「商品一覧表」を使用しない場合には、それぞれのコンボボックスの商品を比較照合するプログラムを組まなければなりません。
例えばコンボボックス2の「Exit」プロシージャには
If ComboBox2.Value<>"" Then
    If ComboBox2.Text=ComboBox3.Text Then
         UserForm2.Show
    Else
If ComboBox2.Text=ComboBox4.Text Then
         UserForm2.Show
    Else
If ComboBox2.Text=ComboBox5.Text Then
         UserForm2.Show
    Else
If ComboBox2.Text=ComboBox6.Text Then
         UserForm2.Show
    Else
        Worksheets("注文書").Cells(8, 3).Value=ComboBox2.
        TextTextBox4.Value=ComboBox2.Value
    End If
End If
とプログラムしなければならないでしょう。
商品が更に増えると更に追加して行かなければなりません。

2.発注番号の二重計上時の警告表示
次に過去に使用された発注番号を間違えて書き込んだ場合に警告表示を行なわせます。
1)ユーザーフォームを挿入します。(UserForm3)
2)ラベルとコマンドボタンを以下のように貼り付けます。図9
3)コマンドボタン(了解)のプロシージャにユーザーフォーム3を非表示にするプログラムを書き込みます。
図10
4)同一発注番号の検索プログラム作成:
①発注番号書込みのテキストボックス3のExitのプロシージャに発注番号の列(5列目)を検索するプログラムを作成します。
②テキストボックス3で書き込まれた発注番号と同じ番号が検索されればユーザーフォーム3を表示させます。
以上の流れのプログラムは下図のようになります。図1
上記プログラムの説明:
最初の「If Cells(5 + n, 3).Value = "" Then」で3列目(入力日時)で検索させている理由は、入力日時は自動入力されますので、入力忘れの可能性がほぼないため列の途中の行で空白がないと考 えられます。
そのため書き込まれているデータをすべて検索させることができるとの考えでこの列を使用しています。
例えば、発注番号の列で行なった場合、入力忘れがあった場合、その箇所は空白となり検索作業がその時点で中断されるのを防ぐためです。
発注番号の入力忘れがあるのではと書きましたが、発注番号は注文書発行に当たって忘れてはいけない重要な項目だと思われるのであれば、警告用に更にユー ザーフォームを追加挿入して「書込み」ボタンのプロシージャに発注番号(テキストボックス3)が空白ならば警告のユーザーフォームを表示しなさいとプログ ラムを組み込むこともできますが、ここでは省略いたします。
以上で「商品名」、及び「発注番号」の二重計上の警告発令の説明を終えます。
発注を行なえば、当然商品が入荷すれば入荷記録を取りたいですよね。次に入荷の記録方法について説明を行ないます。

次ページへ


サイドバータイトル
inserted by FC2 system