Excel VBA質問箱 IV

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

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


35848 / 76738 ←次へ | 前へ→

【46081】Re:シート上に貼り付けた、テキストボックスの計算
回答  りん@とおりすがり  - 07/1/22(月) 15:53 -

引用なし
パスワード
   きち さん、こんにちわ。

>私の表記違いの箇所がありました<(__)>
>TextBox100+TextBox300(もしくはTextBox301)
>以下、TextBox100-TextBox200(もしくはTextBox201)以上の間違いでした。
>☆通常はT300とT200で処理したいと思いますが、たまにT100+T301以下、T100+T300以上で計算したい時にそのテキストボックスを使用したいと思います。T300とT301に数値が入っている場合は、T200とT201には何も入りません。
>☆その代わり、T100-T200以下、T100-T201以上の場合もあり、その時はT300とT301には何も入りません。

せっかくなので、貼っておきます。

Private Sub CommandButton1_Click()
  Dim II As Integer
  Dim tdt(1 To 3, 0 To 1) As String, a1 As String, a2 As String
  Dim ldt As Variant, hdt As Variant
  'テキストボックスの文字列格納
  With Application.ActiveSheet
   tdt(1, 0) = .OLEObjects("TextBox100").Object.Value
   tdt(2, 0) = .OLEObjects("TextBox200").Object.Value
   tdt(2, 1) = .OLEObjects("TextBox201").Object.Value
   tdt(3, 0) = .OLEObjects("TextBox300").Object.Value
   tdt(3, 1) = .OLEObjects("TextBox301").Object.Value
  End With
  '条件決定
  If Trim(tdt(2, 0) & tdt(2, 1)) = "" Then
   '200,201が空白だったら
   'T100 + T301以下、T100 + T300以上
   hdt = Val(tdt(1, 0)) + Val(tdt(3, 1))
   ldt = Val(tdt(1, 0)) + Val(tdt(3, 0))
  ElseIf Trim(tdt(3, 0) & tdt(3, 1)) = "" Then
   '300,301が空白だったら
   'T100 - T200以下、T100 - T201以上
   hdt = Val(tdt(1, 0)) - Val(tdt(2, 0))
   ldt = Val(tdt(1, 0)) - Val(tdt(2, 1))
  Else
   '上記以外は通常
   'T100 + T300以下、T100 - T200以上
   hdt = Val(tdt(1, 0)) + Val(tdt(3, 0))
   ldt = Val(tdt(1, 0)) - Val(tdt(2, 0))
  End If
  '
  With Application.ActiveSheet
   For II = 1 To 3
     a1 = .OLEObjects("TextBox" & II * 5 - 2).Object.Value
     '分岐
     If a1 = "" Then
      a2 = "---" '何も入ってなかった
     ElseIf IsNumeric(aa) Then
      If Val(aa) >= ldt And Val(aa) <= hdt Then
        a2 = "○"
      Else
        a2 = "×"
      End If
     Else
      a2 = "---" '数値じゃなかった
     End If
     '結果
     .OLEObjects("TextBox" & II * 5).Object = a2
   Next
  End With
  '終了
  Erase tdt
End Sub
こんな感じです。
ただ、シート上にテキストボックスをのせるなくても、セルを使えばいいのでは?と思うのですが。

0 hits

【45964】シート上に貼り付けた、テキストボックスの計算 きち 07/1/19(金) 16:37 質問
【45965】Re:シート上に貼り付けた、テキストボック... りん 07/1/19(金) 17:53 回答
【45969】Re:シート上に貼り付けた、テキストボック... きち 07/1/19(金) 21:15 質問
【45971】Re:シート上に貼り付けた、テキストボック... neptune 07/1/19(金) 22:57 発言
【46011】Re:シート上に貼り付けた、テキストボック... きち 07/1/21(日) 12:46 質問
【46012】Re:ユーザーフォームに変更、テキストボッ... きち 07/1/21(日) 12:54 質問
【46074】Re:ユーザーフォームに変更、テキストボッ... きち 07/1/22(月) 13:56 お礼
【46081】Re:シート上に貼り付けた、テキストボック... りん@とおりすがり 07/1/22(月) 15:53 回答
【46115】Re:シート上に貼り付けた、テキストボック... きち 07/1/23(火) 10:49 質問
【46118】Re:シート上に貼り付けた、テキストボック... りん@とおりすがり 07/1/23(火) 11:09 回答
【46130】Re:シート上に貼り付けた、テキストボック... きち 07/1/23(火) 17:46 質問
【46147】Re:シート上に貼り付けた、テキストボック... りん@とおりすがり 07/1/24(水) 12:56 発言
【46155】Re:シート上に貼り付けた、テキストボック... きち 07/1/24(水) 20:00 お礼

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