No. | 質問・回答 | おれい |
|
[114626] Excel VBAでコントロールボックスのスピンボタンの値の範囲指定がわからない |
|
|
使用しているOS: Windows XP
使用しているPCのメーカー/機種/型番:自作
関係するアプリケーション名/バージョン:EXCEL2000
関係する機器の機種名/型番:
はじめまして。お願いします。
連休を利用してExcelを少しでも使いたいと思い、練習中ですが
フォームコントロールのコンボボックスとスピンボタンを組み合わせ
作成したのですが、スピンボタンで下げるにするとコンボボックスの
表示では上がってしまいます。そこでコントロールボックスのスピン
ボタンで出来ないかホームページを検索しましたが、指定するセルの
最小値、最大値の設定が、どうもうまくいきません。"1<A1<13"
以下のVBAに何を書き加えればいいのか、教えて頂けないかと。
Private Sub SpinButton1_SpinUp()
On Error Resume Next
Me.Range("A1").Value = Me.Range("A1").Value - 1
End Sub
Private Sub SpinButton1_SpinDown()
On Error Resume Next
Me.Range("A1").Value = Me.Range("A1").Value + 1
End Sub
50の手習い (未登録) 2009年5月5日02:19
|
|
|
|
[114627] |
こんなかんじでしょうか。if文でもできますけど
Private Sub SpinButton1_SpinUp()
Dim i As Integer
On Error Resume Next
i = Range("A1").Value
Select Case i
Case 2 To 13
Range("A1").Value = i - 1
End Select
End Sub
Private Sub SpinButton1_SpinDown()
Dim i As Integer
On Error Resume Next
i = Range("A1").Value
Select Case i
Case 1 To 12
Range("A1").Value = i + 1
End Select
End Sub
mit56 (340) 2009年5月5日08:22
|
|
|
|
[114628] |
1点確認。
>"1<A1<13"
数値の範囲ですが、上記の書き方だと1より上で13未満の値をA1セルに設定したいように見えますが、本当は、"1≦A1≦13"で、1以上13以下の値をA1セルに設定したいと解釈で良いですか?
手元にExcel2000がないのでうろ覚えですが。
ちなみにExcel2007だと、以下のコードを付け加えなくても、フォームコントロールのプロパティで、最小値(MIN)と最大値(MAX)を設定するだけで、値範囲を設定できました。
Private Sub SpinButton1_SpinUp()
On Error Resume Next
If Me.Range("A1").Value > 1 Then
Me.Range("A1").Value = Me.Range("A1").Value - 1
End If
End Sub
Private Sub SpinButton1_SpinDown()
On Error Resume Next
If Me.Range("A1").Value < 13 Then
Me.Range("A1").Value = Me.Range("A1").Value + 1
End If
End Sub
うにゅ (607) 2009年5月5日08:25
|
|
|
|
[114630] |
おはようございます。
mit56様、うにゅ様、さっそくの回答大変有難うございます。
mit56様、うにゅ様、どちらの方法も出来ました。
ちなみにコンボボックスの表示"1"は、"氏名を選択"
"2"〜"12"は"氏名"、スピンボタンでは氏名(2〜12)だけ変更
だったもので。
超初心者の質問に、お答えいただき本当に感謝しております。
有難うございました。
50の手習い (未登録) 2009年5月5日08:51
|
|
|
|
( 参照数:1750 日平均:0.3 ) |
|
〜 回答の受付を終了しました 〜 |