お世話になります。初心者ですみません。。
ユーザーフォームに数量・金額のテキストボックスがあります。
数量のテキストボックスの小計は出すことが出来たのですが、
金額の小計を出すことが出来ません。。
色々なHPで見たところ金額のテキストボックスにあらかじめ
TextBox金額1.Value = Format(TextBox金額1.Value, "##,##0")
と入れているからなのかな?と思うのですが、
この表示形式を崩さずに最下段の黒太字にある小計欄に金額小計を出したいです。
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
変更1.
Private Sub TextBox金額1_AfterUpdate()
Private Sub TextBox金額2_AfterUpdate()
Private Sub TextBox金額3_AfterUpdate()
を以下のように変えてください。
Private Sub TextBox金額1_AfterUpdate()
Call set_shokei
End Sub
Private Sub TextBox金額2_AfterUpdate()
Call set_shokei
End Sub
Private Sub TextBox金額3_AfterUpdate()
Call set_shokei
End Sub
変更2.
そして、いかのプロシージャを追加してください。
Private Sub set_shokei()
Dim total As Long: total = 0
If IsNumeric(TextBox金額1.Value) Then total = total + CLng(TextBox金額1.Value)
If IsNumeric(TextBox金額2.Value) Then total = total + CLng(TextBox金額2.Value)
If IsNumeric(TextBox金額3.Value) Then total = total + CLng(TextBox金額3.Value)
Label金額計 = total
End Sub
本当に何度もお世話になりました!
もっと自身でも勉強していきたいと思います!
またお世話になることもあるかもしれませんが、
その際はどうぞよろしくお願いいたします。
No.4
- 回答日時:
横から失礼します
TextBox?金額が数値に出来ない文字または空白の場合
CLngはエラーになります。
1つまたは複数の TextBox?で空白や文字を無視する場合、
条件により一旦変数に値を代入して最後にラベルに出力するのが容易です
ちなみにコントロールオブジェクトを扱う時は面倒でもプロパティの省略は避けた方が良いですね
Dim i As Long, subtotal As Long
For i = 1 To 3
If IsNumeric(Me.Controls("TextBox金額" & i).Value) Then
subtotal = subtotal + CLng(Me.Controls("TextBox金額" & i).Value)
End If
Next
If subtotal <> 0 Then
label金額計.Caption = Format(subtotal, "##,##0")
Else
label金額計.Caption = ""
End If
End Sub
回答投稿時に確認しましたら、該当部分についてすでに回答されていましたが、参考コードを書いたので投稿します
BAはいりません
No.3
- 回答日時:
>黄色いエラーが出てしまいました。
数値以外の値を入力すると、「型が一致しません (エラー 13)」
のエラーが発生します。(a,b,c等)
数値のみ入力する前提での回答でしたので、
数字以外が入力されるなら、まず、入力データのフォーマットチェックが必要になります。
If IsNumeric(TextBox金額1.Value) = False Then
MsgBox ("金額が不正")
Exit Sub
End If
のチェックを入れる必要があります。(金額2,3も同様)
No.2
- 回答日時:
Val(TextBox金額1.Value) ではなく
CLng(TextBox金額1.Value)
を使ってください。
Valはカンマがあるとギブアップします。
CLngはカンマをスキップして処理します。
No.1
- 回答日時:
こんにちは
ご質問のタイトルには「ラベル」となっていて、本文は「テキストボックス」となっていますが、どちらなんでしょうね?
添付図の見た目からすると、ラベルっぽいですけれど・・
いずれにしろ、「小計」は計算できているものとして、対象のコントロールにフォーマット指定のテキストを表示するようにすれば宜しいかと。
例えば、表示対象がラベルなら、
対象のラベル.Caption = Format(小計値, "#,##0")
といった要領です。
テキストボックスなら、
対象のテキストボックス.Text = Format(小計値, "#,##0")
といった感じ。
ご回答ありがとうございました。
初めての投稿だったので回答がつくか不安でしたが
早々とご回答いただけて嬉しかったです。
また何かありましたらよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA ユーザーフォーム内のラベルにテキストボックスの計算結果を出す方法 5 2022/08/18 11:20
- Excel(エクセル) 隣り合っていないセルを まとめて税込表示したい 8 2022/09/25 14:32
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- 財務・会計・経理 【仕訳】集計されて引かれる販売手数料について 5 2023/04/26 15:32
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- Excel(エクセル) SUBTOTAL SUMIF?? 2 2023/03/16 11:25
- スーパー・コンビニ 近所のスーパーでの精算時の話です 14 2023/01/03 10:28
- 相続税・贈与税 集金方法について 3 2023/01/14 19:04
- Excel(エクセル) Excel2016 行間を詰めたい&同じカテゴリなら上位2つだけを表示したい 5 2022/06/03 12:19
- 所得税 確定申告の収入金額欄、源泉徴収額の記入方法について 1 2023/03/12 23:03
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
これが怖いの自分だけ?というものありますか?
人によって怖いもの(恐怖症)ありませんか? 怖いものには、怖くなったきっかけやエピソードがあって聞いてみるとそんな感覚もあるのかと新しい発見があって面白いです。
-
集合写真、どこに映る?
あなたが集合写真を撮られるとき、画角のどのあたりにいることが多いですか? 私は振り返ってみると右の端にいることが多い気がします。
-
【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
【お題】 ・西暦2100年の「小学生のなりたい職業ランキング」で1位になった職業は何か教えてください
-
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
Excel VBA ユーザーフォーム内のラベルにテキストボックスの計算結果を出す方法
Visual Basic(VBA)
-
-
4
Excel VBAのフォーム_ラベルの縦位置
その他(パソコン・スマホ・電化製品)
-
5
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
6
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
7
VBA テキストボックスに3桁カンマ表示させたい
その他(Microsoft Office)
-
8
Excel vbaで複数のテキストボックスの足し算
Visual Basic(VBA)
-
9
エクセルVBA ユーザーフォームのtextboxの書式設定って?
Excel(エクセル)
-
10
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
11
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
12
UserForm1.Showでエラーになります。
工学
-
13
userFormに貼り付けたLabelを変数に
Visual Basic(VBA)
-
14
エクセル VBA テキストボックス 掛け算 例)5 × -5 ができない
Excel(エクセル)
-
15
Vba テキストボックス文字を右端から配置していく方法
Visual Basic(VBA)
-
16
ユーザーフォームのラベルに日付を表示させる方法があればお願いします。出来ればコード書いていただけると
Visual Basic(VBA)
-
17
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
18
VBAのフォームでTextBoxがいっぱいある時
Access(アクセス)
-
19
上下の位置揃えについて
Visual Basic(VBA)
-
20
ユーザーフォームで数字にカンマを付けたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・遅刻の「言い訳」選手権
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba テキストボックス文字を右...
-
ウォッチ式の文字数制限について
-
eclipseのデバッグ中に変数の値...
-
VisualStudioのプロパティが表...
-
エクセル 画像のプロパティで縦...
-
Excel VBA ユーザーフォーム内...
-
Labelのプロパティが変更できな...
-
三菱タッチパネル小数点以下表...
-
0での割り算
-
ラベルを表示したり非表示にし...
-
ラベル内の文字列にHTMLリンク...
-
ExcelVBA EnableプロパティがF...
-
ラベル内の文字(Caption)を縦...
-
オートシェイブをIncrementLeft...
-
ラベルの文字列の長さが変わっ...
-
VBで横倍角/縦倍角を表示したい...
-
ラベルのスクロール(VB)
-
VB.NET(2005) コンソールアプリ...
-
MATLABのグラフで軸目盛りのフ...
-
リッチテキストの折り返しを無...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ウォッチ式の文字数制限について
-
eclipseのデバッグ中に変数の値...
-
Vba テキストボックス文字を右...
-
VisualStudioのプロパティが表...
-
ExcelVBA EnableプロパティがF...
-
ラベルを表示したり非表示にし...
-
ラベルの文字列の長さが変わっ...
-
ラベル内の文字(Caption)を縦...
-
ラベルのスクロール(VB)
-
三菱タッチパネル小数点以下表...
-
MATLABのグラフで軸目盛りのフ...
-
VB.NETでラベルの大きさってど...
-
エクセル 画像のプロパティで縦...
-
ACCESSのラベル内データに下線...
-
Excel VBA ユーザーフォーム内...
-
スプレッドシートの列名変更の...
-
Notepad++のコメントの色を変え...
-
VBSのMsgBoxで文字に色をつけたい
-
複数のコンボボックスの項目の...
-
C#初心者です。チェックボック...
おすすめ情報
ご回答ありがとうございます。
大変失礼しました。
数量・金額それぞれ縦3つのテキストボックスの小計をラベルに出したいです。
Private Sub TextBox金額1_AfterUpdate()
label金額計 = Val(TextBox金額1.Value) + Val(TextBox金額2.Value) + Val(TextBox金額3.Value)
End Sub
Private Sub TextBox金額2_AfterUpdate()
・
・
・
としていたのですが、カンマ前までしか計算されていないようでした。。
教えていただいた方法でやってみます!
ご回答ありがとうございます。
Private Sub TextBox金額1_AfterUpdate()
label金額計 = CLng(TextBox金額1.Value) + CLng(TextBox金額2.Value) + CLng(TextBox金額3.Value)
End Sub
としてみたのですが、黄色いエラーが出てしまいました。。
型が一致しません (エラー 13)と出たため、ヘルプを見てみたのですがどうしたら良いでしょうか?
身の丈に合わないことをやろうとしていること自体が申し訳なくなってきました。。
すみませんが、もう少しおつきあいいただけると嬉しいです。
よろしくお願いします。
本当に何度もお手間をおかけして申し訳ないです。。
色々なHPを見て理解もせずコピペしたためご迷惑をおかけしています。。
Private Sub TextBox金額1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not Chr(KeyAscii) Like "[0-9]" Then
KeyAscii = 0
End If
End Sub
Private Sub TextBox金額1_Change()
TextBox金額1.Value = Format(TextBox金額1.Value, "##,##0")
End Sub
の2つが入っています。
数字のみ、3桁区切りの表示、label金額1にTextBox1~3が可能なコードを最初からご教示いただけますでしょうか。。本当にすみません。