[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『InputBoxについて(数値認識)?』(たかし)
InputBoxについて質問お願いします。
入力欄に、 10 20 30 40 という値を入力すると
化けて i の値が
10のとき 11.57
20のとき 244
30のとき 320
といった具合です 1 2 3 12 15 18 などの X0丁度だけ駄目なようなんですが
お解りになり方ご教授お願いします。
Sub 番号()
Dim i As Variant
i = Application.InputBox( _ Title:="累計", _ Prompt:="一覧表のコード番号を入力してください。" & String(2, vbCr) & _ "《 例:99とか製品番号 》", _ Default:="99", _ Left:=50, _ Top:=150, _ Type:=1) If IsNumeric(i) = vbBoolean Then Exit Sub End If If i = "False" Then Exit Sub MsgBox Format(WorksheetFunction.SumIf(Range("D28:D500"), i, Range("H28:H500")), "合計「製品番号" & i & "」は " & "\\#,##0" & " 現在まで支払。") & vbLf & vbLf & _ 支払回数は、 & WorksheetFunction.CountIf(Range("D28:D500"), i) & " 回支払です。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
(γ) 2020/03/18(水) 08:38
>おかしな所が他にもあります(指摘は省略)が
問題ありですか?
(たかし) 2020/03/18(水) 13:10
数値かどうかの判定がおかしい。型と比較するなら分かるが。
Msgboxの中のダブルクォーテーション漏れ。
投稿ミスなんだろう。
(γ) 2020/03/18(水) 14:09
>Msgboxの中のダブルクォーテーション漏れ。
こちらは、納得しました。
(たかし) 2020/03/18(水) 15:33
If IsNumeric(i) = vbBoolean Then Exit Sub End If このコードの意味を説明してもらえますか? そして具体的にどんな時に、Exit Subが実行されますか?説明ください。
(γ) 2020/03/18(水) 16:37
(たかし) 2020/03/18(水) 18:46
それはあなたが決めることです。
数値以外のものが入ってきたら抜けるというなら、 If Not IsNumeric(i) then 数値を入力してください、と警告 抜ける End IF みたいなことは、ありうるかなと思いますが、 そうでもないですか? 私のことじゃないので、決めるのはあなたです。
あなたが提示されたコードなので、その意図はどんなことだったのか 知りたかったのです。 (IsNumericって、TrueかFalseを返すので、 vbBoolean( = 11 )には一致しないですよね。)
(γ) 2020/03/18(水) 18:58
Type:=1 だから、数字か空白、キャンセルしかないのでは。 (数字以外だとメッセージボックス側で拒否される) 全角も勝手に半角に修正されるみたいだし。
(BJ) 2020/03/18(水) 19:14
(γ) 2020/03/18(水) 19:22
(たかし) 2020/03/18(水) 19:44
>If i = "False" Then Exit Sub ↓ If i = False Then Exit Sub
か
>If IsNumeric(i) = vbBoolean Then ↓ If VarType(i) = vbBoolean Then
(マナ) 2020/03/18(水) 20:11
?@ If i = False Then Exit Sub
?A If i = "False" Then Exit Sub
↑どちらでも同じ結果は得られましたが
やはり、指摘の書き方が正解なんでしょうね
勉強します
(たかし) 2020/03/19(木) 01:55
(γ) 2020/03/19(木) 19:52
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.