[[20170312124130]] 『ワークシート上のスクロールバーのMIN・MAX設定に』(ちゃんぷる) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ワークシート上のスクロールバーの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


ActiveXだとして
これでは、だめなのでしょうか?

 Private Sub スクロール1_Change()

    スクロール1.Max = Cells(Rows.Count, "V").End(xlUp).Offset(, -1).Value

 End Sub

(マナ) 2017/03/12(日) 14:14


Changeイベントを使いたいなら、ActiveXを使用してください。
https://www.moug.net/tech/exvba/0150071.html

あと、変更しないプロパティは、
デザインモードでプロパティウィンドウを開き
手作業で予め設定しておけばよいです。

(マナ) 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.