: 'String "" から型 'Double' への変換は無効です。' への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 魔界の仮面弁士  (社会人) 投稿日時 2017/12/16 11:19:45
.NET 版の Spread は使ったことがありませんが、
> : 'String "" から型 'Double' への変換は無効です。'
というメッセージからすると  CDbl("")  相当の処理になるのでしょうね。


> Dim minZero As Integer = 0
> If (MyBase.GetSorce()) < minZero.ToString Then

これって要するに、
 If GetSorce() < "0" Then
と同じ意味ですよね。
なので、GetSorce が "" を返してきた場合にも成立し、
SetErrorMsg が呼び出されることになる、と。


> 空白でも同様のエラーメッセージが出てしまいます。
空白時にはどのようになってほしいのでしょうか。
とりあえず、以下のようなパターンが思い当たりますが。

・空白だった場合
・非数値だった場合
・負数だった場合
・0だった場合
・正数だった場合

もしも数値として扱えるかどうかを調べたいのあれば、
Decimal.TryParse や Double.TryParse といったメソッドを利用できます。
投稿者 メレメレのkoko  (社会人) 投稿日時 2017/12/15 17:30:53
プログラミング初心者です。

SPREADの入力エラーチェックの処理で、
入力したセルの文字を取得して
負の値にはエラーメッセージを飛ばす処理作りたいのですが、
負の値だったらエラーメッセージが出るようになったものの
空白でも同様のエラーメッセージが出てしまいます。
修正と解説をよろしくお願いいたします。
GetSouceはセルの文字列を取得するString型のファンクションです。

<ソースコード>
Public Class ZeromimanChk
Inherits ValidateChecked

Public Overrides Function Check() As Boolean
Dim minZero As Integer = 0
If (MyBase.GetSorce()) < minZero.ToString Then
MyBase.SetErrorMsg("0未満はだめ")
Return False
End If
Return True
End Function

End Class