Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


18450 / 76736 ←次へ | 前へ→

【63728】Re:ユーザーフォームでの計算
発言  kanabun  - 09/12/3(木) 20:09 -

引用なし
パスワード
   ▼やまあらし さん:
こんにちは。

それらのTextBoxをシートのセルとリンクさせて
シート上で計算させたらどうでしょう

隠しシートを使います
(このシートはUserFormを開くとき、存在チェックし、
 まだ無ければ、作成することにします。)

以下は TextBoxが1〜10 の例です。

隠しシートのA列とTextBox を連動させることにします。
  TextBox1に 個数を入力すると、値はただちにシートの[A1]セルに
  反映されます。
  以下同様にして
   TextBox2 ⇔ 隠しシート[A2]
   TextBox3 ⇔ 隠しシート[A3]
    :      :
  という具合です。

隠しシートのB列に単価を書き入れておきます。
また [C2]セルには =SUMPRODUCT式を入力し 合計金額を計算させます
また [C3]セルは おつりを算出する数式 =C1-C2 を入れておきます。

こうしておくと、txt預かり金額をアクティブにすると
txt合計金額に SUMPRODUCTで計算された合計金額が表示されますので
それを参照しながら 預かり金額を入力することができます。

'--------------------------------------
Option Explicit

Private WkSheet As Worksheet

Private Sub UserForm_Initialize()
  Dim i As Long
  On Error Resume Next
   Set WkSheet = Worksheets("Hidden")
  On Error GoTo 0
  If WkSheet Is Nothing Then
    Set WkSheet = Worksheets.Add(After:=Worksheets(Worksheets.Count))
    With WkSheet
      .Name = "Hidden"
      .Visible = False
      .[B1:B10].Value = Application.Transpose( _
        Array(150, 200, 300, 98, 198, 298, 398, 200, 150, 300))
      .[C2].Formula = "=SUMPRODUCT(A1:A10,B1:B10)"
      .[C3].Formula = "=C1-C2"
    End With
  End If
  WkSheet.[A1:A40].ClearContents
  For i = 1 To 10 '40
    Me("TextBox" & i).ControlSource = "Hidden!A" & i
  Next
End Sub

Private Sub txt預かり金額_Enter()
  txt合計金額.Text = Range("Hidden!C2").Value
End Sub

Private Sub txt預かり金額_Change()
  Range("Hidden!C1").Value = Val(txt預かり金額.Text)
End Sub

Private Sub txt預かり金額_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  txt合計金額.Text = Range("Hidden!C2").Value
  txtおつり金額.Text = Range("Hidden!C3").Value
End Sub

0 hits

【63727】ユーザーフォームでの計算 やまあらし 09/12/3(木) 18:50 質問
【63728】Re:ユーザーフォームでの計算 kanabun 09/12/3(木) 20:09 発言
【63729】Re:ユーザーフォームでの計算 kanabun 09/12/3(木) 20:29 発言
【63731】Re:ユーザーフォームでの計算 kanabun 09/12/4(金) 15:38 発言
【63732】Re:ユーザーフォームでの計算 やまあらし 09/12/4(金) 16:43 お礼

18450 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free