• ベストアンサー

エクセル スクロールバー Min/Max値

ちょっとズレていたら申し訳ありません。教えてください。 エクセル「コントロールツールボックス」の「スクロールバー」にあるMinとMaxを 特定のセルにリンクさせたいのですが、どのようにすればよいでしょうか? 現在、下記でMinの値とリンクセルを試していますが、なかなか動きません。 Private Sub Worksheet_Calculate() ScrollBar1.LinkedCell = Range("A1") ScrollBar1.Min.Value = Range("A2") End Sub 教えてください。お願いします。

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

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

Private Sub Worksheet_Change() でも、 Private Sub Worksheet_Calculate() でも、いいけれども、後者は、計算された時に発生するものですから、不確実だと思いますし、Min/Maxは、そう多く変動するものではありませんから、通常、プロパティから設定するものだと思います。 LinkedCell プロパティは、マクロではなく、ワークシートで、編集モードから、コントロールツールを選択し、右クリックして、プロパティから、設定してください。 面倒なら、それらはボタンを設置してもよいと思いますが、ワークシートのCalculateイベントとはなじまないと思います。 なお、Value プロパティは入らないのでは? >ScrollBar1.Min.Value = Range("A2") ScrollBar1.Min = Range("A2").Value p.s. 前回のご質問のこちらの書き込みは分かりましたか? 「エクセル マクロ 表示ボックス?」 締め後に、回答を入れました。当然、質問者さん側も、締め後に書き込み可能です。難しいので、分からないのなら、特にコメントは求めませんが、こちらは、問題は出ていません。

paci12451
質問者

お礼

ありがとうございます。うまく機能きました。丁寧な説明ありがとうございます。

paci12451
質問者

補足

前回の回答ありがとうございます。うまく実現できました。

その他の回答 (3)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

>ScrollBar1.Min.Value = Range("A2")が、うまく動かないので、MinまたはMax値を特定のセルにリンクさせたいです。 以下のように変更してください。 ScrollBar1.Min = Range("A2") ところでWorksheet_Calculateを使っている理由ですが、A2セルなどに最小値を計算する数式が入っているということですね(手入力した場合はF9キーで再計算する必要がある)。 そうでない場合は、再計算時にマクロを走らせるのではなく、セルの変更時のイベントマクロにしたほうが良いと思います。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

ご質問のマクロの書きぶりでは… >Private Sub Worksheet_Calculate() シート上で「計算が走らないと」機能しません。 たとえばスクロールバーをリンクするセルがただ有るだけじゃダメで,そのセルを =B1 みたいにして参照してるセルがあると,そのマクロでも機能します。 たとえばスクロールバーのMin/Maxを記入したセルがただ有るだけじゃだめで,それらのセルを参照する「数式」を入れたセルが別にあると,そのマクロでも機能します。 Worksheet_changeイベントに変更し,A1やA2のMin/Maxにしたいセルの値を書き換えたり,リンクするセルの値が変わったなどでご質問のマクロを機能させても出来ます。

paci12451
質問者

お礼

ありがとうございます。助かりました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

リンクするセルをA1にするなら以下のようにしてみてください。 ScrollBar1.LinkedCell = "A1"

paci12451
質問者

お礼

返信ありがとうございます。 ScrollBar1.Min.Value = Range("A2")が、うまく動かないので、MinまたはMax値を特定のセルにリンクさせたいです。

関連するQ&A