A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
どもども 田吾作7です。
なぜDoLoopがいいのかな?DoLoopよりもっと便利な方法がありますよ。
一応3パターンありますので、好きなのを使ってください。
'DO_LOOPにより整数部分を求める
Function func_DoLoop(inSrNumber As String) As Long
Dim wkCount As Long
Dim wkLength As Long
'全体の長さを求める
wkLength = Len(inSrNumber)
'とりあえず一文字目を指定
wkCount = 1
'最後の桁までいったら終了
Do Until wkCount > wkLength
'もしピリオドだったら抜ける
If Mid$(inSrNumber, wkCount, 1) = "." Then
func_DoLoop = wkCount - 1
Exit Do
End If
wkCount = wkCount + 1
Loop
End Function
'InStrにより整数部分を求める
Function func_InStr(inSrNumber As String) As Long
Dim wkString As String
wkString = Left(inSrNumber, InStr(inSrNumber, ".") - 1)
func_InStr = Len(wkString)
End Function
'Valにより整数部分を求める
Function func_Val(inSrNumber As String) As Long
Dim wkString As String
wkString = Val(CLng(inSrNumber))
func_Val = Len(wkString)
End Function
でわでわ
No.2
- 回答日時:
終了条件は 入力値をすべてチェックしたとき、もしくは途中で数値以外の入力値があった場合だとおもいます。
整数部分の桁数ということなので Fix もしくは Int 関数を使用
符号の桁数カウント防止のため Abs関数(絶対値)を使用
しました。
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim lCnt As Long 'カウント
Dim lMaxCnt As Long '最大カウント
Dim lDspCnt As Long '表示用カウント
'ENTERキー
If KeyCode = vbKeyReturn Then
'最大文字数取得
lMaxCnt = Len(Trim$(Text1.Text))
lCnt = lMaxCnt
Label1.Caption = "" 'レベルクリア
lDspCnt = 0 '表示用カウントクリア
Do Until lCnt = 0
'数値チェック
If IsNumeric(Mid$(Trim$(Text1.Text), lCnt)) = True Then
lDspCnt = Format$(Fix(Mid$(Trim$(Text1.Text), lCnt)), "#0") '少数点を切り捨て
lDspCnt = Abs(lDspCnt) '絶対値を求める
lDspCnt = Len(CStr(lDspCnt)) '整数部分の文字数
Else
'数値以外
Exit Do
End If
lCnt = lCnt - 1
Loop
Label1.Caption = lDspCnt & "桁"
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby VBA 2 2023/01/14 14:14
- Visual Basic(VBA) vba GetAsyncKeyState関数について 1 2023/08/24 12:08
- Ruby プログラミング 3 2023/06/09 14:30
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Excel(エクセル) エクセルのマクロ作成について教えてください 5 2023/02/20 00:39
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HPビルダーで、アクセスカウ...
-
キリ番つきカウンター探してます。
-
三菱シーケンス
-
カウンターが重い
-
バーコードのカウンター探して...
-
携帯のアンテナ基地の設置料の...
-
レジストリの設定をすぐに反映...
-
VB.NETでVBスクリプトを作るに...
-
HPのページないしリンクにパス...
-
花台の位置は向かってどっちで...
-
パソコン用語「ツリー」って、...
-
会員制掲示板で、ハンドルを変...
-
洗面所の突っ張り棒は錆びるで...
-
「基礎からのMySQL 第3版 Kindl...
-
(フリーの)ツリー掲示版CGI、...
-
鍵付のツリー式掲示板を探して...
-
どっちのコメントアウトが正しい?
-
HTML 訪問カウンターを自作したい
-
外国人と知り合える掲示板など
-
ネットで買った洗濯機は誰が設...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
自動人数カウンターってありま...
-
シェルのSTEP数について教えて...
-
HPで「あなたは何人目です」...
-
クリック数を1日ごとにカウン...
-
アクセスカウンターの作り方
-
アクセスカウンターを他のファ...
-
分周回路について
-
カレンダーを3ヶ月先まで表示...
-
アクセスカウンターとキリ番
-
JAVAアプレットでホームページ...
-
カウンタの数字が減る??
-
カウントを1日毎に0にする方法...
-
カウンターが重い
-
アクセスカウンタ、途中からカ...
-
杜甫々さんのgifcat.plをカンマ...
-
ホームページのカウントについて
-
アクセスカウンターを付けたい...
-
初心者の私に教えてください!
-
非同期カウンタの設計
-
HP作成、アクセスカウンターに...
おすすめ情報