[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ワークシート上のスクロールバーのMIN・MAX設定について』(ちゃんぷる)
お世話になっております。
ワークシート上にスクロールバーを設置して名前を「スクロール_連絡先」として設置し・・・
バーの▲をクリックすることで参照先のセル数値を変化させたものをワークシート関数で参照して個人情報を表示させるようにしております。
別マクロでデーターをU:Vに転記
↓
V列の値の最終行を取得しoffset-1で
↓
U列にナンバリングの番号を参照し
↓
スクロールバーのMax = n2で移動バーの設定
以下が、Changeイベントで、ControlFormat設定するものです
分からないなりに調べて見ましたが、エラーが出て動きませんでした。
「マクロが無効になっている可能性・・・」と表示
質問内容は
データ個数に応じたMAX値を取得する方法についてアドバイスの程よろしくお願いします。
Sub スクロール1_Change()
Dim n As Integer
Dim n2 As Integer
n = Cells(Rows.Count, "V").End(xlUp).Row
n2 = Worksheets("連絡先").Range("V" & n).Offset(, -1).Value
With スクロール_連絡先.ControlFormat .LinkedCell = "W5" .Max = n2 .Min = 0 .LargeChange = 10 .SmallChange = 2 End With End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
回答ではなく確認です。
このコードはどこに書いてありますか? またスクロールバーコントロールは フォームツールですか? ActiveXですか?
>Changeイベントで
と説明がありますので、ActiveXなのかなぁと。で、ここコードはシートモジュールかなぁ? でも、そうすると、
>名前を「スクロール_連絡先」として設置し・
ですから、プロシジャは Private Sub スクロール_連絡先_Change() といったものになるはずです。
じゃぁ、フォームツールで、標準モジュールに書いたマクロをマクロ登録しているのかなぁ? だとすると With スクロール_連絡先.ControlFormat でコンパイルエラーになるはずです。
どちらなんでしょうか?
(β) 2017/03/12(日) 14:09
Private Sub スクロール1_Change()
スクロール1.Max = Cells(Rows.Count, "V").End(xlUp).Offset(, -1).Value
End Sub
(マナ) 2017/03/12(日) 14:14
あと、変更しないプロパティは、
デザインモードでプロパティウィンドウを開き
手作業で予め設定しておけばよいです。
(マナ) 2017/03/12(日) 14:33
ありがとうございました。
参考に調べてみたところ、当方が認識不足でした。
シートに貼り付けるコントロールは2種類ありました。
・フォームコントロール
・ActiveX
そのうちの、フォームコントロールを使用していたようで、マクロがうまく動きませんでした。
ActiveXのスクロールバーに変更して
アドバイス頂いたコードをシートモジュールに貼り付けたところバッチリ動きました。
皆さまお騒がせいたしました。解決です(^^)
(ちゃんぷる) 2017/03/12(日) 16:14
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.