Microsoft Access 掲示板

縦スクロールバーをマウスでつかむときに表示される レコード:13/44 の値を取得したい / 8

19 コメント
views
4 フォロー
8
hiroton 2022/02/21 (月) 14:45:35 1122b@f966d

スクロールバーをマウスでつかんだとき出てくるそれをツールチップと呼びますが、ずれとは以下のどのような状態でしょう?

1.「見た目」とツールチップは同じでVBAの結果にずれがある
2.「見た目」とVBAの結果は同じでツールチップにずれがある

(1)の場合コードに不備があるのだと思います(hirotonはリンク先のコードを検証していません)

(2)の場合はスクロールバーが何を基準に数字を出しているのかわからないのでCurrentSectionTopを使った方法では無理なのかもしれません


『「直接」は難しい』についてですが、出来る出来ないで言えば出来ると思います。質問のリンク先で言われているようなことを今の環境に合わせて実装すればいいです。「windows api」「スクロールバー」「ツールチップ」等のキーワードを組み合わせれば情報を得られるでしょう
ただ、キーワードを見てわかるようにほぼACCESSとは関係ない内容になるのでhirotonとしてはこの掲示板でどうこうするつもりはありません

これについて情報が欲しい場合は他の方の回答を待ってください


難しいことに手を出そうとしているようだったのでキーワード(Form.CurrentSectionTop)だけ出せばある程度作れる能力があるのかなと思っていましたが、そうでもなさそうですね

うまくいかないパターンのそれぞれのプロパティの値と実際に見えるレコードの番号、ツールチップの値を提示してください。このような計算において丸め処理(「Int()」や「/」での計算も)は繰り返せば繰り返すほど後々大きな誤差になります

この処理は、理屈を考えれば単純で、「積み上げた積み木を数えるようなもの」なので計算結果で小数点がでるというのが何かちょっと違うなぁと感じます(普通、積み木が3.998個重なっていますとはならない)

リンク先コードでは

    'フォームヘッダー行数を取得
    headerHeight = Int(Me.Section("フォームヘッダー").Height / Me.Section("詳細").Height)

という処理が合って、ここで丸め処理をしているので何か影響してる可能性があります。これが必要な処理なのか考えてみてください。(もしくは上述の通り情報提供してください)

通報 ...