• ベストアンサー

スピンボタンの増減逆

Excel VBA スピンボタンについて教えてください ユーザーフォーム上に 上下のスピンボタンを配置してます 通常 SpinUpで値が増え、SpinDownするなら値が減る これを逆に出来るのでしょうか?  Down時 1…2…3… と増える    (Max=6  Min=1)  UP   …3…2…1 MaxとMinの数値を入れ替えると 確かに Doun時に値は増えるのですが UP時 …3…2…1 と 減り 0を超えて-1…-2…-3となってしまいます どうすれば解決できるか どなたか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 もしかしたら、私は勘違いしているのかもしれませんが、スピンボタンを逆さにするなら、プロパティの SmallChange を、 -1 にするだけでよいのではありませんか?

palsation
質問者

お礼

ご回答ありがとうございました。 SmallChangeとは 増分の事だったのですね 非常に勉強になりました。

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#01です 試したらSmallChangeを-1にする方が確かにスマートですね。 それはさておきUserformのモジュールシートに以下を書いておけば、フォームが開く際にスピンボタンの値を1に設定できます Private Sub UserForm_Initialize() SpinButton1.Value = 1 End Sub

palsation
質問者

お礼

ご回答ありがとうございました。 SmallChangeの値を-1にやる やり方 も試し 今回は 先のアドバイスも含めて 使わせていただきます 非常に勉強になりました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

TextBoxの右にSpinButtonを配置します SpinButtonプロパティでの最小値は1、最大値は6にしておきます Private Sub SpinButton1_Change()  TextBox1.Value = 7 - SpinButton1.Value End Sub なら1~6の範囲で▲で減、▼で増になりますがいかがでしょうか

palsation
質問者

お礼

zap35 さん 有難うございました。 そそ こんな感じです もう一つ教えてもらいたい事が ▼▲で 数値は増減できるのですが、 初期値を 「1」にしたいのです。 ▼ 1…2…3…~6 みないに… コードはどんな風に書けばよろしいのでしょうか?

関連するQ&A

  • VBAのスピンボタンの値の変更について

    VBAを使ってスピンボタンをワークシートに挿入しました。 そこで、皆様にお聞きしたいのですが、スピンボタンに上と下のボタンがありますが、このボタンを押すと値はいくつずつ変わるのでしょうか? 私がスピンボタンを押すと1ずつ変わります。 この1という値はデフォルトなのでしょうか? もしそうだとすれば、この値を2や3に変更することができる(つまりスピンボタンを押すことにより帰ってくる値が2や3ずつ上下できる)のでしょうか? VBAの本を読みましたが、このことについては載っていなかったので、どなたか知っている方がおりましたら、教えて下さい。 よろしくお願い致します。

  • ExcelVBA スピンボタンの値について

    参考書を片手に勉強中のエクセルVBA初心者です。 ぜひアドバイスをお願いします…! Excel2000でユーザーフォームを作成し、スピンボタンを使用して数値を指定できるよう、以下のソースを記述しました。 ----------------------------------------- Private Sub UserForm_Initialize() With SpinButton1 .Min = 20 .Max = 150 .Value = 150 .SmallChange = 5 End With End Sub ----------------------------------------- Private Sub SpinButton1_Change()   TextBox1.Value = SpinButton1.Value / 10 End Sub ----------------------------------------- Private Sub TextBox1_Change()   TextBox1.Text = Format(TextBox1.Text, "0.0") End Sub ----------------------------------------- これを、スピンボタンも使用でき、かつ手入力にも対応するように動作させたいと考えています。 具体的にはテキストボックスに6(ランダムな値)と手入力後、 スピンボタンを使用してで6.0の値から増減させたいのですが、 そのようなことは可能でしょうか? 可能であれば、どのようにすればよいのでしょうか? (テキストボックス内の値は、小数点第1位まで表示させ、2.0~15.0の値しか表示できないようにしたいです) どうかご回答よろしくお願いいたします。

  • Excelのスピンボックスについて

    ユーザフォームではなくワークシート上にスピンボックスを配置した場合の話です。 例えばセルB3に入力されている値をスピンボックスを使って、上矢印をクリックすればB3の値が1づつ上がる。逆に下矢印をクリックすればB3の値が1づつ下がる。というようなものにしたいのですが、以下のように値を増やすコードと値を減らすコードを作成しても右クリック->マクロの登録では1つのマクロしか登録できません。 どうすればそれぞれのボタンにマクロを登録することができるのでしょうか。 Dim up As Integer up = Range("F5").Value up = up + 1 Range("F5") = up Dim down As Integer down = Range("F5").Value down = down - 1 Range("F5") = down

  • エクセルVBAでスピンボタン

    ワークシート上にスピンボタンを配置しました。 Valueは、Max100、Min0 で設定しました。 やりたいのは、スピンボタンでValueを減らしていって、0になるまでは何も言わず、Valueが0の状態でさらに減らそうとした場合、メッセージを出したいのです。 Private Sub SpinButton1_Change() If SpinButton1 <= 0 Then MsgBox "マイナスにはできません!", vbCritical End If End Sub としましたら、0になった瞬間にメッセージがでてしまいます。 If SpinButton1 < 0 Then としたら、マイナスにはならないので当たり前ですが何も出ません。 どうしたらいいでしょうか?

  • エクセルでスピンボタンとスクロールバーについて

    エクセルでスピンボタンとスクロールバーについて エクセル2000です。 フォームのスピンボタンとスクロールバーをワークシート上に配置した場合、両者ともほぼ同じ働きをしてくれます。 ところが、大きな違いが有ります。 スピンボタンは上向き▲で数値が大きくなっていきます。これは感覚的にしっくりきます。 ところが縦向きのスクロールバーは上向き▲で数値が逆に小さくなっていきます。これはちょっと違和感があります。 それなら、スピンボタンを使えばいいだけのことと言われそうですが、スピンボタンにはバーがないのでスライドさせて数値を動かすことができないのでスクロールバーを使いたいのです。 もちろん数式を用いて、セルの表示上でそうなるようにはできますが、それではリンク先セルに直接数値を入力ができなくなり不便です。 スクロールバーで上向き▲で数値が大きくなるような設定にはできないのでしょうか? スクロールバーを縦ではなく横向きに配置すれば右スクロールで数値が増え、数直線と同じでしっくりくるのですが、レイアウトの都合で縦向きに配置したいのです。 わがままな質問ですみません。 よろしくお願いします。 (o。_。)oペコッ. (なお、同じ質問を1時間ほど前に投稿したつもりだったのですが、なぜか反映されていないので再度質問いたしました。もし二重になっていたら申し訳ありません。)

  • エクセルの日付(改;スピンボタン)

    下で、スピンボタンの質問をしたモノです。かなりわかりにくい書き方だったようなので、書き直させていただきます。すいません。 エクセルで、フォームの日付を毎回入力しないですむように、日付が上下するようなボタンを作りたいのです。 (毎回日付を入力するのが面倒なので) 日付を入れるセルは、書式で「日付」を選択し、フォームを使ってボタンを設定しようとするのですが、出だしの日付が、勝手に「1904」年になってしまいます。そのまま2001年まで進められるのかと思ったら「ボタンによる数値の上下は0~30000まで」ということで、2001年までたどり着きません。 ボタンにはこだわらないのですが、入力のための日付を簡単に入れる良い方法はありませんでしょうか。 また、入力した日付が勝手におかしくなるのはなぜなのでしょうか。 教えてください。お願いします。

  • 標準UIにスピンボタンは、ないのでしょうか?

    お世話になります。 Java eclipseで作成しております。 eclipseの標準UIに、スピンボタンは、ないのでしょうか? ※上下の矢印で、数値を変えるボタン もし、簡単に作れる方法がありましたら、 教えて頂ければ助かります。 何卒宜しくお願いします。

    • ベストアンサー
    • Java
  • エクセルVBA「スピンボタン」について

    エクセルVBA「スピンボタン」について スピンボタンとテキストボックスを組み合わせて Private Sub SpinButton1_Change() Me.TextBox1.Value = Me.SpinButton1.Value End Sub Private Sub UserForm_Initialize() With Me.SpinButton1 .Min = 1 .Value = .Min End With Me.TextBox1.Value = Me.SpinButton1.Min End Sub というコードを書きました。 「1、2、3、・・・10、11、・・・」という数の増加を「01、02、03・・・10、11・・・」という風にしたいのですがどのようにコーディングすればよいのでしょうか?お願いします。.

  • VBAとスピンボタンの使い方

    VBAとスピンボタンの使い方 学校勤務で以下の画像のような、生徒名簿を管理しています。 画像上段が、生徒名簿の検索フォームで、シート1です。 画像下段が、生徒名簿のデータベースで、シート2です。 シート2の生徒のデータベースは今は、NO8までですが だいたいNO1000位まで入っています。 検索フォームで一行一行の生徒データを、表示 させているのですが、今、シート1のB3の生徒氏名欄に シート2から生徒名をコピペして、データを表示させているような感じです。 一つ一つコピペするのは時間もかかるので、何か1名でも生徒名を 入力すれば、あとはスピンボタンでスクロール表示する関数またはVBAを スピンボタンに登録したいのですが。 また、できればB列の最後の行になれば、また、最初の行に戻るような コードがいいのですが。 VBA初心者でよくわかりませんでしたので、よろしくお願いします。

  • Excel マクロでスピンボタンの操作

    A1とB1のセルには、それぞれ数値が入力されています。 その下(A2とB2)にはA1とB1の値を使って計算された値があります。 A1とB1の値はスピンボタンを使って1ずつ値が大きくなったり小さくなったりします。 そして、 A2とB2の値の大小を比べて、 ・A2が小さければ、A1の値を1大きくする ・B2が小さければ、B1の値を1大きくする ・等しければ、何もしない ということをしたいです。 マクロを組むしかないと思ったのですが、どのようにやれば良いのでしょうか? Excelはそこそこできますが、マクロはほとんどわかりません。 スピンボタンを使わなくても、同じようなことが自動でできれば構いません。 よろしくお願いしいます。

専門家に質問してみよう