• 締切済み

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
質問者

補足

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

関連するQ&A

  • スクロール時の行ズレ [ASP.NET/VB.NET]

    VB.NETでWEBの画面を作成しています。 DataListにデータを表示しデータが多い場合にはスクロールバーでデータをスクロールできると思いますが、その際最上行のデータが1行全て表示されずに半分だけ表示される場合があるかと思います。(説明下手ですみません。エクセルのように行単位でスクロールしないということを言いたいのですが、分かってもらえるでしょうか。) 私はWEBはこのようなものだと思うのですが、きれいに1行ずつスクロールさせて最上行がすっきり1行常に表示させることはできるのでしょうか。  

  • エクセルのスクロールバーの移動の設定

    教えてください。 今までエクセルの右側にあるスクロールバーの空白部分は 白で移動も一回おせば次のデータのある行に移ったのですが、 今は黒くなってしまい、移動方法も変わってしまい、困っています。 修正の仕方を教えてください。 お願いします。

  • スクロールバー内の行移動について教えて

    スクロールバーをブログ内に作りました。 中の文書が長いためhref=#aからname=#aまでクリックで移動する、みたいな事をしたのですが、 スクロールバー内の行が移動した時にブログページの行も一緒に移動してしまいます。 解決方法を教えてください

  • スクロールバー

    今週に入ってから急に、パソコンのスクロールバーが勝手に上下したり、カーソルが勝手に移動したりして困っています。 この質問も、もしかしたら以前に誰かしていて、どこかに解決法が載ってるのかもしれませんが、今の私のパソコンの状態では、まともに落ち着いて探せる状況ではないのです。 (今も、書き込みながら上下するスクロールと格闘してます) 解決法ご存知の方いらっしゃれば、教えて下さい。 あと、これは同じ問題で起こってる事かどうかは解りませんが、壁紙を設定しても、次パソコン立ち上げたときに、無地の画面になってるのですが、どうすればいいですか?

  • テーブルにスクロールバーをつける

    テーブルにスクロールバーをつけることは出来るでしょうか。 行数は画面に表示させておくのが5行くらいで、5行以降はスクロールバーで移動させ表示させると言う感じにしたいのです。 HTMLで出来なければ他の方法も教えて下さい。

    • ベストアンサー
    • HTML
  • Excelのスクロールバーのインジゲータ?の大きさ又はEndの位置

    Excel2000を使用しています。 元のデータが1000行ぐらいあったとして、それを加工して100行ぐらいにした場合、スクロールバーの動く部分の幅が小さいままで、最終行を見る時に使いにくくて困ります。Endボタンで移動するときも加工以前のEndの場所に飛んでしまいます。 アクセスに取り込んだ時も余計な空白行がたくさんできてしまいます。 2003だとデータ行を減らしてから保存をかければ、スクロールバーの動く部分がその範囲にちょうどいい大きさになおったと思うのですが、2000で何か方法はありますか? セルの幅調整やページ設定が手間なので、「該当行だけ新規シートにコピー」は無しだとどんな方法があるか教えてください。

  • Excelの垂直スクロールバー

    100行ほどデータが入力してあるシートで作業をしていたところ、誤ってCtrlキーと↓キーを押してしまい、65536行目に文字を入力してしまいました。 すると、スクロールボックス?(スクロールバーの中にある灰色の浮き出た部分)が小さくなってしまい、スクロールバーを使ってスクロールさせるのが非常に困難になってしまいました。 誤って入力してしまった65536行目の文字を消しましたがスクロールバーは元に戻りません。 どうすればよいでしょうか? よろしくお願いします。

  • エクセルのスクロールバー

    3000行程度のエクセルシートを操作していたのですが、 いつもは右にあるスクロールバーが、 3000行の部分を最終行として対応していました。 ところが、1回操作をあやまってしまったようで、 現在は65535行目が最終行になってしまいました。 戻すやり方はありますか? つまり3000行以降の無データの部分に関して 右のスクロールバーを対応させないということです。 わかる方がいましたらお教えください。

  • VB6.0のFleXGridのスクロールバー

    こんばんわ。 お力添えの方を宜しく お願い致します。 現在VB6.0でプログラミングを行っており、 FlexGrid(以下FG)の表示で困っています。 とあるデータがあり、 それを表示するためのFGのある画面があります。 一回に50件の表示を行います。 対象データが50件以上の場合は, <次頁ボタン>を押し、次の50件を表示します。 で、そのFGの表示領域は大体10件程度なので、 表示上はみ出ている部分のデータを見る為に FGにスクロールバーが設けてあります。 そのスクロールバーを、一番下まで動かして (一番下でなくとも、なんらか動かした状態) 次頁ボタンを押下すると、 スクロールバーは動かした状態のまま、 次の50件のデータが表示されます。 次頁ボタンを押下した時に、 スクロールバーを一番上の状態(デイフォルトの状態) に戻したいのですが何か方法は無いでしょうか?。 (例:真中くらいまでスクロールしてから、 次頁ボタンを押下すると、データは次の50件に   なるが、FGの表示領域自体は、真中くらいに   スクロールしたままになっているので、   データの表示が中途半端な感じがする &   解りづらい & 使いづらい ・・との事です) ちなみに、 FGを持っている画面自身を一度アンロードして・・・ 再表示という方法を試し、成功したのですが、 一旦画面が消えるため、そのさいの表示がちらつくというクレームのため、この方法は駄目になりました。 あと、FGをリフレッシュしても駄目ですし、 標準でもっているスクロールバーメソッドには どうやらそのようなコマンドは無いようです。 APIも調べてみたのですが、 僕の力不足なのか該当するようなモノは 発見できず、ほとほと困り果てて 今にいたります。 解りにくい質問で大変恐縮なのですが、 もし、方法をご存知の方がいましたら どうかご教授ください。

  • スプレッドの制御

    VB6.0について質問です。 スプレッドでマウスのカーソルがあたっている行のバックカラーを変えたいのですがうまくいきません。 MouseMoveイベントでやっています。 以下のソースで実行しており通常だと問題なく実行できるのですが 強制的にマウスカーソルが何行目にあるかを計算していますので スプレッドをスクロールするとスクロールした行だけズレが生じてしまいます。 表示されている行だけを認識する方法はないでしょうか? Private Sub spdlist_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Dim actrow With spdlist .Col = -1 actrow = Int(y / 400) .Row = actrow .BackColor = vbred End With End Sub

専門家に質問してみよう