
No.2ベストアンサー
- 回答日時:
前提として、数値違いの文字や、"."が2個以上記入された場合等は事前にチェックしているものとします。
整数か少数かは、InStrで"."があるかどうかで判断できます。
また、InStrの結果から小数点以降の桁数を算出することができます。
あとは 入力値*(10^桁数) としてあげればよいでしょう。
Dim text As String
text = "12.345"
Dim value As Integer
Dim dec As Integer '小数点の位置
Dim declen As Integer '小数点の桁数
dec = InStr(text, ".")
' 小数点がなければ整数
If dec = 0 Then
value = CInt(text)
' 小数点がある
Else
declen = Len(text) - dec '小数部分の桁数を算出
value = CInt(Val(text) * (10 ^ declen))
End If
MsgBox (value)
もうひとつ、少々乱暴な方法ですがReplaceで"."を取り外してしまうとか
Dim text As String
text = "12.345"
Dim value As Integer
value = CInt(Replace(text, ".", ""))
MsgBox (value)
No.4
- 回答日時:
ユーザーフォームにコマンドぼたんとテキストボックスをはりつけ。
コマンドボタンのクリックイベントに
Private Sub CommandButton1_Click()
a = TextBox1.Text
MsgBox a
If IsNumeric(a) Then
Else
MsgBox "数字で在りません"
Exit Sub
End If
p = InStr(a, ".")
If p = 0 Then
Cells(1, "A") = Val(a)
Else
Cells(1, "A") = Val(a) * 10 ^ (Len(a) - p)
End If
End Sub
セル A1に値を設定。
No.3
- 回答日時:
数値かどうかの判断:IsNumeric
数値化:Val(倍制度実数への変換)、CDec(10進数への変換)
文字列化:CStr
文字位置の検索:InStr
(1)数値かどうかを判断する。非数値ならエラー
(2)数値化してから文字列化する。
(3)"."(ピリオド)の位置を検索する。
(4)ピリオドが存在した場合、文字列長-検索位置→Xとする。
(数値 * 10 ^ X)を文字列化する。
(5)文字列をテキストボックスのValueとする。
※倍制度実数の10進換算精度は15桁、10進数は29桁
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
電子書籍プレゼントキャンペーン!
最大2万円超分当たる!マンガや小説が読める電子書籍サービス『Renta!』で利用できるギフトコードプレゼント実施中!
-
小数か整数かを判定する方法
Visual Basic(VBA)
-
小数点を含む数値かどうか判断の判断方法
Visual Basic(VBA)
-
VBA:小数点以下の数字を取得できる関数は?
Visual Basic(VBA)
-
4
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
5
Excel VBA IF文で
Excel(エクセル)
-
6
VBA 小数点の存在判定
Visual Basic(VBA)
-
7
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
8
エクセル VBA 小数点を含む数字抽出について
Excel(エクセル)
-
9
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
10
数字以外の入力をエラーにするには?
Visual Basic(VBA)
-
11
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
12
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
13
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
14
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
15
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
16
Excel vba ユーザーフォームテキストボックス内の小数点表示
Visual Basic(VBA)
-
17
【VBA】計算結果に小数点第2位までを表示させる方法
Visual Basic(VBA)
-
18
モーダルフォームとモードレスフォーム
Visual Basic(VBA)
-
19
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
20
VBA シートのボタン名を変更したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
subsequentとnextの違いってな...
-
5
VBA public変数はどのようなこ...
-
6
C#のループでtextboxに値を入れ...
-
7
エクセルのVBAでの7×7の魔方陣...
-
8
VBAでcallで呼び出したsubを終...
-
9
BATファイルでstartからcallを...
-
10
演奏記号の・・・・
-
11
他のフォームから別のフォーム...
-
12
エクセル・VBAでテキストボック...
-
13
VS CodeでTEXファイルにPDF形式...
-
14
GetNextWindowがDLLファイルUse...
-
15
VB6でClickイベントを一時的に...
-
16
【VBScript】変数のスコープ
-
17
テキストボックスかラベル上の...
-
18
プロシージャまたは関数の引数...
-
19
ドラゴン曲線を再帰で書く
-
20
ボールが壁に当たって跳ね返る...
おすすめ情報
公式facebook
公式twitter