- ベストアンサー
Excel VBAでスピンボタンの値をジャンプさせる方法
- Excel VBAを使用して、スピンボタンの値を変化させる方法についてアドバイスをお願いします。
- スピンボタンの値を手入力したセルと連動させるためのVBAコードについて教えてください。
- スピンボタンで選択した値に応じて、手入力したセルの値を自動的に変化させる方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
手順: 1.現在の「スピンボタンのコード」を消して白紙に戻します 2.デザインモードでスピンボタンを右クリックしてプロパティを表示します LinkedCellに Sheet1!C4 と記入 Minに 1 を記入 3.デザインモードを解除して使います スピンボタンをアップダウンすれば,C4の値が変化します C4に任意の値を記入すれば,その値からまたアップダウンします。 #何かの理由でどうしてコードで制御したいなら,プロパティでLinkedcellは設定せず,changeイベントはヤメにして Private Sub SpinButton1_SpinDown() Range("C4") = Application.Max(1, Range("C4") - 1) End Sub Private Sub SpinButton1_SpinUp() Range("C4") = Range("C4") + 1 End Sub などのようにしておくような方法もあります。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17070)
C4の変化を捉えるのは Private Sub Worksheet_Change(ByVal Target As Range) End Sub と思うが、スピンBの▼などクリックでもC4(とLinkedCellにしていると)が変わるので、やりにくい。 仕組みに無理があるのでは。 ーー しかしMinをWorksheets("Sheet1").SpinButton1.Min を決めるセルをC4とは別のセルに設定するのもわずらわしいよね。 テキストボックスを1つ貼り付けるか。 Private Sub TextBox1_LostFocus() Worksheets("Sheet1").SpinButton1.Min = Val(Worksheets("Sheet1").TextBox1.Text) Worksheets("Sheet1").Range("C4") = Val(Worksheets("Sheet1").TextBox1.Text) End Sub C4(値入力を考えているセル)が普通は変化していくのではないのかな。
お礼
回答ありがとうございます。まだご提案頂いた内容について、試しておりませんが、無理があるという事が分かって良かったです。 これならば、初めから、スピンボタンを使わずにC4セルの数値を変える▲▼のコマンドボタンを考えればいいのかな。とも思いました。 どんなコードを作ればいいのか、イメージ出来ませんが、、、
お礼
回答が遅くなりません。 回答者様のアドバイスを試したところ、完全に期待通りの結果でした。 またコードでの方法まで、教えていただき、本当にありがたいです。 こんなに理想どおりのアドバイスを頂けて、幸せです。 本当にありがとうございました。