Excel VBA質問箱 IV

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

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


24555 / 76732 ←次へ | 前へ→

【57525】Re:エクセルVBAでスピンボタンのループ機能を使うには
回答  りん E-MAIL  - 08/8/29(金) 2:48 -

引用なし
パスワード
   BB さん、こんばんわ。
>エクセルVBAのユーザーフォーム上にテキストボックスとスピンボタンを設置し、値のループをさせるべく奮闘しているのですが上手くいきません。
>どなたか教えてくださいませm(__)m
>
>
>最小値:1
>最大値:3000
>
>これを、スピンボタンを押すたびに
>1→2→(中略)→2999→3000→1→2・・・
>となるようにしたいのです。

SpinUp/SpinDownイベントで、SpinButtonの値とTextBoxの値を比較しながら、ループするように変化させます。

'UserFormに全て記述/////////////////////////////////////
'パラメータの設定はここで。
Private Sub UserForm_Initialize()
  TextBox1.TextAlign = fmTextAlignRight
  '
  With SpinButton1
   .Max = 3000
   .Min = 1
   TextBox1.Value = .Value
  End With
End Sub
'TextBox1に直接値を入れる場合に対応
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  Dim a As Integer
  'TextBox1に直接値を入れる場合
  With SpinButton1
   If IsNumeric(TextBox1.Value) Then
     Select Case TextBox1.Value
      Case Is <= .Min: TextBox1.Value = .Min
      Case Is >= .Max: TextBox1.Value = .Max
     End Select
   Else
     TextBox1.Value = .Value '元の値
   End If
   .Value = TextBox1.Value
  End With
End Sub
'▲をクリック
Private Sub SpinButton1_SpinUp()
  'TextBoxの値が既に上限に達していたら下限に
  With SpinButton1
   If TextBox1.Value = .Max Then .Value = .Min
   TextBox1.Value = .Value
  End With
End Sub
'▼をクリック
Private Sub SpinButton1_SpinDown()
  'TextBoxの値が既に下限に(略
  With SpinButton1
   If TextBox1.Value = .Min Then .Value = .Max
   TextBox1.Value = .Value
  End With
End Sub

こんな感じです。
3 hits

【57524】エクセルVBAでスピンボタンのループ機能を使うには BB 08/8/29(金) 0:41 質問
【57525】Re:エクセルVBAでスピンボタンのループ機能... りん 08/8/29(金) 2:48 回答
【57559】Re:エクセルVBAでスピンボタンのループ機能... BB 08/9/2(火) 20:18 お礼

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