エクセルVBA ユーザフォームにて「商品登録」を作成しています。
単価を設定するテキストボックスについて2つ質問させてください。
1.単価が小数点以下の場合の処理
2.小数点なしの単価を小数点ありの単価に修正する方法
1.以下の方法で小数点ありとなしを判断しているのですが、
もっと簡単な方法があれば教えていただきたいです。
Set mytxt = Me.Controls("txt4")
If mytxt.Text <> "" Then
tanka01 = mytxt.Text
tanka02 = Application.WorksheetFunction.RoundDown(tanka01, 0)
If tanka01 = tanka02 Then
mytxt.Text = Format(tanka01, "#,##0")
Else
mytxt.Text = Format(tanka01, "#,##0.0")
End If
End If
2.上記方法で、単価をデータに設定後、変更を行うため、
TextBox内に単価を出力し変更できるようにしているのですが、
1度小数点なしで設定してしまうと、小数点以下が単価のTextBox内に
入力できなくなってしまいます。
小数点が再度入力できる方法は存在するでしょうか?
以上です。
色々と調べてみたのですが、見つからず、質問させていただきました。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
こんにちは。
両方を兼ね揃えているコードは、こんな風にしたら、と思うのですが、質問のコードを見ると、TextBox は、数多くあるようですね。そうすると、サブルーチンすればよいのですが、ちょっと難しくなりそうです。(修正案)
以下の場合は、Enter を入れると、変化します。
Private Sub Txt4_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim buf As Variant
If KeyCode <> 13 Then Exit Sub
If IsNumeric(Txt4.Text) Then
buf = CDbl(Txt4.Text)
If Int(buf) = buf Then
Txt4.Text = Format(buf, "#,##0")
Else
Txt4.Text = Format(buf, "#,##0.0")
End If
End If
End Sub
'----------------
'修正案
Private Sub Txt4_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim buf As Variant
If KeyCode <> 13 Then Exit Sub
SubTest Me.ActiveControl 'こうすれば、共通にできます。
End Sub
'サブルーチン
Sub SubTest(arg As Object)
If IsNumeric(arg.Text) Then
buf = CDbl(arg.Text)
If Int(buf) = buf Then
arg.Text = Format(buf, "#,##0")
Else
arg.Text = Format(buf, "#,##0.0")
End If
End If
End Sub
こんにちは。
回答ありがとうございます。
なるほど、「if int(X) = X」と行えば
すっきりするんですね。
ありがとうございます。
勉強になります。
他にも変更・照会のフォームがたくさんあるので、
上記サブルーチンを参考にさせていただきます。
基本的な質問をしてもよいでしょうか?
サブルーチンは「標準モジュール」に記入してもよいのでしょうか?
すみません。やってみればわかりますよね。
努力してみます。
本当にありがとうございます。
No.5
- 回答日時:
こんにちは。
>今回の質問は以前に出されていたのでしょうか?
似たような質問は、時々みます。私は、Visual Basic 6 のテキストですが、Formの基本問題に出てくるようですね。
>クラスは苦手で。。。勉強します。
こういうことは、教わらないとできないですね。
No.4
- 回答日時:
こんにちは。
UserFormが、複数ある場合や、コードが大きい場合は、「標準モジュール」になりますが、今回のレベルなら、そのまま、UserForm モジュールでよいと思います。
ただ、今回、ちょっと考えたのは、あまり数が多いと、クラスで設定したほうが良いかもしれない、と思いました。
なお、今回の質問は、テキストでやったことがあります。その時に、いっしょに出てくるのは、Val 関数とCDbl や CLng関数ですが、その違いは分かりますか?
本当にありがとうございます。
いくつかのフォームで使うため、「標準モジュール」に設定し、
うまくいきました。
クラスは苦手で。。。勉強します。
今回の質問は以前に出されていたのでしょうか?
すみません。見たつもりだったのですが。。。
CDbl等については全然知りません。
今、インターネットでちらっと見てみました。
勉強いたします。
本当にありがとうございます。
これからもよろしくお願いします。
なんて、言ったらご迷惑ですよね。
ありがとうございます。
No.1
- 回答日時:
小数点”.”がテキストに含まれているかどうかで、判断するというのとは違うのでしょうか?
まず、どのように入力したものをどのように表示したいとか、具体例をあげたほうが
わかりやすいかもです。
”含まれる”というのなら、
InStr関数
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/f …
で返り値が0か1以上かで判断できるかと。
回答ありがとうございます。
わかりにくい質問ですみません。。。
入力 1000 → 出力 1,000
入力 1000.5 → 出力 1,000.5
としたかったです。
n-junさんのやり方で行ったところきちんと出力されました。
ありがとうございます。
ロジックもすっきりしました。
2.の小数点の入力については、
TextBoxのChangeで行っていたところを、
TextBoxのExitでformatしたら、小数点もきれいに
入力できました。
本当にありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- Excel(エクセル) 単価シートから単価をエクセル関数で自動取得する方法 1 2023/07/02 22:00
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Excel(エクセル) Excel 関数 vlookupなどの使い方について質問です。 シート1に品番、商品名、単価、発注条 6 2022/06/15 19:16
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
天井開口費の見積について
-
はじめまして。私、配管業を個...
-
CIF単価→FOB単価の算出の仕方を...
-
公共建築工事(設備)の積算に...
-
一式という言葉の使い方
-
売上、客数、単価から買い上げ...
-
会社で昇級試験があり、提言書...
-
製造業に勤めています。 外注さ...
-
雑貨店さんの1日の売上平均て...
-
外付けHDDって、この先も長く、...
-
1工数1人工
-
事務所ビルの電気料金について...
-
投資信託の積立投資の取得単価
-
接客販売店員の一日の平均売り上げ
-
退去費用内訳の妥当性 3年半住...
-
客単価客昨対昨の算出方法を教...
-
Accessで商品管理をしています
-
内装屋やクロス職人の会社は儲...
-
僕の才能で出来る高収入な仕事...
-
外構見積もりましたが、どうで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
はじめまして。私、配管業を個...
-
一式という言葉の使い方
-
CIF単価→FOB単価の算出の仕方を...
-
製造業に勤めています。 外注さ...
-
天井開口費の見積について
-
エクセル 価格表から単価を呼び...
-
会社で昇級試験があり、提言書...
-
外構見積もりましたが、どうで...
-
2024年 職人不足で単価が上がる...
-
公共建築工事(設備)の積算に...
-
事務所ビルの電気料金について...
-
仕入単価
-
1工数1人工
-
単価の前についている「@」
-
積算 高所作業車 建築
-
●何故? ラーメン店は 開業•閉...
-
外付けHDDって、この先も長く、...
-
接客販売店員の一日の平均売り上げ
-
単価シートから単価をエクセル...
-
売上、客数、単価から買い上げ...
おすすめ情報