[[20200923165535]] 『VBA テキストボックス 入力されたものだけの平均』(ポリンキー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBA テキストボックス 入力されたものだけの平均を出す』(ポリンキー)

初めまして。

1,
コンボボックス8〜11と連動したテキストボックス8〜11があります。
 このテキストボックス6〜16のAvre.をテキストボックス17に表示させた
 いです。
2,
テキストボックス5の金額にテキストボックス17を掛けたいです。

3,
現在、テキストボックス17を表示させるためにコマンドボタン3を設置し
以下のコードを記載しております。

Private Sub CommandButton3_Click()

    Dim g0 As Long
    Dim ans As Double
    ans = 0
    For g0 = 6 To 16
       If IsNumeric(Controls("textbox" & g0).Value) Then
          ans = ans + CDbl(Controls("textbox" & g0).Value)
       End If
    Next
    TextBox17.Value = Format(ans, Value) / 11 
End Sub

これだと、Txt Boxがすべて入力されていると11で割れるのでいいのですが、一部しか入力しない場合もあるため、TxtBox6〜16に入力された数値のみの平均をとることは可能でしょうか?

?Aは上記のコマンドボタン3をクリック後、コマンドボタン4をクリックするとTxt Box18にTxt Box5 * Txt Box17の結果を表示させたいです。

Private Sub CommandButton4_Click()

    TextBox18.Value = TextBox5.Value * TextBox17.Value
End Sub

こちらを組んではいますが、やはりすべてが入力されていないと、
うまく機能しない状況です。

やりたいことまとめ
1,TxtBox6〜16の数値の平均をTxtBox17に表示したい
2,その際に一部入力のみでも入力されたBoxのみの平均を表示したい
3,TxtBox5が空白の場合コマンド4を押すと"金額を入力してください"

  とメッセージが出るようにしたい
4,これはもしできればですが、コマンド3と4を一個にして一回ですべてが
 計算できるようになるといいのですができますでしょうか??

初歩的な部分も多いかとは思いますが、
お分かりになる方おられましたらご教示いただけますと幸いです。

宜しくお願い致します。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


空欄の場合は、ans は読み飛ばしてますよね? なら、カウント数用変数を追加し、ans を足し算するのと同じタイミングでカウントアップし、11固定ではなく、カウント数で割れば良いかと。

2つのプロシジャをひとつにするのは、CommandButton4_Click に書いてある1行を、CommandButton3_Click の最後に移動させれば良いだけでは?
(???) 2020/09/23(水) 17:45


どんな計算か、理解したわけではありませんが

非表示でよいので、作業用シートを用意して、
シート上ですべて計算してはどうでしょうか。
テキストボックスとセルを連動させるということです。

(マナ) 2020/09/23(水) 17:47


???さん
11固定ではなく、カウント数で割れば良いかと。 申し訳ありません。
Private Sub CommandButton3_Click()
    Dim g0 As Long
    Dim ans As Double
    ans = 0
    For g0 = 6 To 16
       If IsNumeric(Controls("textbox" & g0).Value) Then
          ans = ans + CDbl(Controls("textbox" & g0).Value)
       End If
    Next
    TextBox17.Value = Format(ans, Value) / 11 
End Sub

この中にどのように入れればいいでしょうか?

2つのプロシジャをひとつにするのは 解決しました。
ありがとうございます。

マナさん
コメントありがとうございます。
それも考えたのですが、何百人かが使ってエビデンスとして都度エクセルにフォーム内容を抽出
するため、できればフォーム内で完結する方がいいのかなと思いました。

(ポリンキー) 2020/09/23(水) 17:58


11って書いてある箇所を、変数に変えましょう。
変数追加するのだから、Dim宣言も追加しましょう。
あとは、ansを足している次の行にでも、変数 = 変数 + 1 としましょう。

難しい事をやるように指示した訳ではありません。 20分もたたないうちに即質問し直すのではなく、もう少し考えたり、試したりしてみましょう。

なので、TxtBox5 の空欄判定は、ご自分で考えてみてください。 CommandButton3_Click が呼ばれ、いろいろ計算するより前に判定すれば良いですよね?
(???) 2020/09/23(水) 18:08


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.