依頼日という名の変数があります。
標準モジュールに
Public Sub ChkNull(hikisuu As Variant)
Select Case hikisuu
Case 0, Null, Nothing, ""
Dim Msg As Integer
Msg = MsgBox(hikisuu & "が空欄になっていますよ。注意してください。" _, vbOKOnly, "告知")
End Select
End Sub
とし、
Sheetのプロシージャ内で
ChkNull 依頼日
として、各変数が0等の場合は、
「○○○○が空欄になっていますよ。注意してください。」と
告知のメッセージボックスが出てくるようにしています。
現在、○○○○には変数「依頼日」の値が表示されていますが、
これを「依頼日」と変数名そのものが表示できるようにするには、
hikisuuの部分をどう記述すればよいのでしょうか?
仕事の都合でVBAを使わざるを得なくなった程度の初心者ですが、
なんとか、教えていただけますようお願い申し上げます。
う~ん・・・・関数化するという事は当然仮引数となるわけで・・・・。
しょうがないので、引数をひとつ増やして、
Public Sub ChkNull(hikisuu As Variant, disp As String)
Select Case hikisuu
Case 0, Null, Nothing, ""
Dim Msg As Integer
Msg = MsgBox(disp & "が空欄になっていますよ。" _, vbOKOnly, "告知")
End Select
End Sub
として、実際このチェック関数を呼び出す時に、一々表示させたい名前を「文字列で」入れるしか無いのでは。
#2です。チェック項目名(文字列)を(仮)引数として増やすことです。
Public Sub ChkNull(hikisuu As Variant, dsp As String)
Select Case hikisuu
Case 0, Null, ""
Dim Msg
Msg = MsgBox(dsp & "が空欄になっていますよ。" _
, vbOKOnly, "告知")
End Select
End Sub
Sub test01()
Dim b As String
Dim a As Variant
a = ""
b = "住所"
ChkNull a, b
End Sub
で動きました。Nothingを入れると、値でないせいか、エラーになったので省きました。dispは名前がVBのステートメント等に無いかと避けました。
お礼
回答ありがとうございました。 引数を2つ使うことで、うまくいきました。
補足
引数を渡すときに ChkNull 依頼日,"依頼日" のように記述すればよろしいのでしょうか?