
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も見ています
-
小数か整数かを判定する方法
Visual Basic(VBA)
-
VBA:小数点以下の数字を取得できる関数は?
Visual Basic(VBA)
-
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
-
4
エクセル VBA 小数点を含む数字抽出について
Excel(エクセル)
-
5
VBA(自然数)
Visual Basic(VBA)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
10
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
11
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
12
小数点を含む数値かどうか判断の判断方法
Visual Basic(VBA)
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
15
VBA 小数点の存在判定
Visual Basic(VBA)
-
16
VBA:結合されたセルに対する「Target」について
Access(アクセス)
-
17
テーブルの最後(最新)のレコードを抽出したい
MySQL
-
18
指定のWORKBOOKを前面表示する方法(エクセル:VBA)
Excel(エクセル)
-
19
改行について
Visual Basic(VBA)
-
20
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
visual basic初心者です。 visu...
-
VBAで入力数値について
-
コンボボックスからテキストボ...
-
VBSのプログラム
-
アクセスできない保護レベルエ...
-
GetNextWindowがDLLファイルUse...
-
VBAでcallで呼び出したsubを終...
-
他のフォームから別のフォーム...
-
SavePictureで保存できない
-
VBA public変数はどのようなこ...
-
VB2010からPROCEDUREを実行でエ...
-
レコードセットにnullの場合
-
VB2010 シリアル通信の文字列...
-
【VBS】クリップボード操作につ...
-
リストビューの列ヘッダーの幅...
-
[VB6] SQLの作成について
-
sublimit textっていうエディタ...
-
subsequentとnextの違いってな...
-
PL/SQLのプロシージャ間でカー...
-
三項でたとえば交換って
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでテキストボッ...
-
VBAで入力数値について
-
アクセスできない保護レベルエ...
-
【VB.NET】テキストボックスに...
-
ユーザーフォームへのデータ入...
-
visual basic初心者です。 visu...
-
VBAのユーザーフォームで、テキ...
-
visual studio 2008 C# で、値...
-
コンボボックスからテキストボ...
-
VBAのフォーム カーソル移動
-
テキストボックスに大文字を
-
VB2005テキストボックスへのコ...
-
整数かどうかチェックする
-
TextBoxの内容を右寄せ
-
VB2010 TextBoxの数字の表示...
-
テキストボックスを空白にする方法
-
Vba 電卓のテキストボックスに...
-
VBSのプログラム
-
ACCESS 除算での小数点切上げ方法
-
Excel ユーザーフォームで計算 ...
おすすめ情報