プロが教える店舗&オフィスのセキュリティ対策術

エクセルでスピンボタンを使って数値を上下させたときに
イベントマクロを発生させたいです

セルC1の入力規則のリストから氏名を選択するとグラフが表示されるのですが
いちいちリストから選択するのが面倒なので
スピンボタンでリストの上から順番に見ていけるようにもしたいのです

スピンボタン(セルA1にリンク)を操作
A1…スピンボタンにリンクして数字が変わる
B1…INDEX関数でA1の数字とリストから氏名が選択される
B1の値をC1に貼り付ける←ここをマクロにしたい

イベントマクロで
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
Range("B1").Copy
Range("C1").Select
ActiveSheet.Paste
End Sub

としてもうまくいきません
スピンボタンにリンクしたセルの値が変わったと時は
Worksheet_Changeだと無理なので、どうしたらいいでしょう

わかりにくい説明で申し訳ありません

A 回答 (2件)

スピンボタンの値が変わった時のイベントではどうでしょう?


また、クリップボード経由でなくても設定できると思います。

Private Sub SpinButton1_Change()
Range("C1") = Range("B1")
End Sub
    • good
    • 1
この回答へのお礼

Sub スピン1_Change()
Range("C1") = Range("B1")
End Sub
で、簡単にできました
スピンボタンに直接マクロを登録すればよかったんですね

お礼日時:2008/01/25 10:41

こんばんは。



SpinButton でダイレクトに出してしまえばよいのではありませんか?

SpinButton は、



と、矢印は上下にするものとします。

コントロールツールの SpinButton のプロパティは、
Max -1
Min -20 (もし、20項目あれば)

'シートモジュール
Index の範囲は、A10:B30 とした場合(項目は、20個)

Private Sub SpinButton1_SpinDown()
Dim i As Integer
  i = Abs(SpinButton1.Value)
  Range("C1").Value = WorksheetFunction.Index(Range("A10:B30"), i, 2)
  Range("D1").Value = i
End Sub

Private Sub SpinButton1_SpinUp()
Dim i As Integer
  i = Abs(SpinButton1.Value)
  Range("C1").Value = WorksheetFunction.Index(Range("A10:B30"), i, 2)
  Range("D1").Value = i
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!