• 締切済み

VBでスプレッドをしようする際にスクロールバーがおかしい

スプレッドを使って、DBからデータを表示しているのですが、 上部の数行を隠し行(RowHeight=0)にすると、 スクロールバーが最下行に移動後、最上行に移動しようとするが スクロールバーが最上行まで移動しない。 (カーソルが上まで行かない、空白がある) どうしてでしょうか? また、どうすれば解決できるでしょうか? 回答願います。m(__)m

みんなの回答

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

>パッチを当てても、直るかどうかわからないという事ですよね? です。 >でも、もしかしたら、直るかもという事ですよね? です。 しかし、それが「バグ」なのか「仕様」なのかさえわかりません。 一度BOCに問い合わせてみてはいかがでしょうか?

tomsoya
質問者

お礼

ありがとうございます。 解決しました。この現象は仕様なのでプログラムで小細工しました。 対応は以下の通りです。 ------------------------ Private Sub SpdMSAB_TopLeftChange(ByVal OldLeft As Long, ByVal OldTop As Long, ByVal NewLeft As Long, ByVal NewTop As Long) '<<<スプレッドスクロールバーが最上部までもどらない件の対応>>> Dim intI As Integer   '表示されている先頭行より上に非表示行がある場合 If pbnM2SpdTop > 1 Then SpdMSAB.ReDraw = False 'スクロールで表示されている先頭に来た時は1行目を一旦表示にするとスクロールバーが上まで戻る。 If SpdMSAB.TopRow = pbnM2SpdTop Then SpdMSAB.RowHeight(1) = 1 SpdMSAB.TopRow = 1 SpdMSAB.RowHeight(1) = 0 End If SpdMSAB.ReDraw = True End If End Sub --------------------------

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

私の使用しているメーリングリストのログを調べてみました。 同様な事で困っている人がいました。 その履歴の結末は「だれかBOCにバグ報告しろ」との事でした。 もしやと思ってBOCのHPに行って、バグ報告を追って見ました。 見つかりませんでした。でもパッチがあたっているかもと思って、とりあえずパッチをDLしてみました。 落としたパッチはfor6Jで、私の環境のスプレッドは3Jでした。。。 ズドーン・・・終了・・・申し訳ない・・・

tomsoya
質問者

お礼

そうですか・・・・やっぱり・・・ ありがとうございましたm(__)m パッチを当てても、直るかどうかわからないという事ですよね? でも、もしかしたら、直るかもという事ですよね?

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

ん? 意味が・・:不明です。。。 そもそも隠し行にするのに、高さを0にするのはどうかと、、、 非表示の命令があったはず。 >スクロールバーが最下行に移動後、最上行に移動しようとするがスクロールバーが最上行まで移動しない。 >(カーソルが上まで行かない、空白がある) の部分に至っては、全くどういう現象なのかを理解できません。 そもそもプログラムでやっていること?手操作でやった場合かもわからず、もう少し、全体を詳しく書いてもらえませんか?

tomsoya
質問者

補足

補足します。 画面を起動して(作成したプログラムを実行)、マウスでスクロールバーを 上下に動かしてみると初期表示表示ではスクロールバーが上限いっぱいまで きているのに対して マウスでスクロール(下へ移動)させて、再度上へ移動すると スクロールバーが上限までいかず、中途半端なところでとまります。 わかりずらいでしょうか?