tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル3枚のスプレッドシートの連動スクロール
記事No14832
投稿日: 2010/07/29(Thu) 18:59
投稿者さよ
 3枚のスプレッドシートの連動スクロール方法で
教えて下さい。

  OS:XP Pro SP1 と Win7 Pro 32bit
 VB:6.0 Enterprise ツール
  SPREAD:Ver.2.5J (32ビット)


Private Sub SprEquipment_TopLeftChange(ByVal OldLeft As Long, ByVal OldTop As Long, ByVal NewLeft As Long, ByVal NewTop As Long)

'3枚のスプレッドシートの連動スクロール
SprHasei.TopRow = SprEquipment.TopRow
SprEquipmentList.LeftCol = SprEquipment.LeftCol

End Sub

 上記構文で、XPでは問題なく動作するのですが、Win7では全く動きません。
どこをどうすれば良いのか、ネットでも検索してみたのですが、
ヒットしませんでした。

 どうか教えて下さいます様、よろしくお願い致します。

[ツリー表示へ]
タイトルRe: 3枚のスプレッドシートの連動スクロール
記事No14833
投稿日: 2010/07/29(Thu) 22:15
投稿者よねKEN
> Private Sub SprEquipment_TopLeftChange(ByVal OldLeft As Long, ByVal OldTop As Long, ByVal NewLeft As Long, ByVal NewTop As Long)
>
> '3枚のスプレッドシートの連動スクロール
> SprHasei.TopRow = SprEquipment.TopRow
> SprEquipmentList.LeftCol = SprEquipment.LeftCol
>
> End Sub
>
>  上記構文で、XPでは問題なく動作するのですが、Win7では全く動きません。

「3枚のスプレッドシートを連動スクロールするだけ」のプロジェクトを新規に作成し、
WinXPで問題なく動作することを確認した上で、そのプロジェクトでWin7環境で
動作確認した場合はどうでしょうか?それでも動作しないのでしょうか?(※)

>   OS:XP Pro SP1 と Win7 Pro 32bit
>  VB:6.0 Enterprise ツール
>   SPREAD:Ver.2.5J (32ビット)

このSPREADはGrape City社の以下の製品のことでよいのですよね?
http://www.grapecity.com/japan/support/database/p1_295_download.htm#productpatches

Ver2.5Jの対応は以下のように書いてあります。

Windows95J   +   Visual Basic Ver 4.0J(32Bit)/5.0J
WindowsNT3.51J + Visual Basic Ver 4.0J(32Bit)
WindowsNT4.0J  + Visual Basic Ver 5.0J

> どこをどうすれば良いのか、ネットでも検索してみたのですが、
> ヒットしませんでした。

(※)で書いたように最小構成でやってダメだとしたら、
何をやってもダメかもしれません。ダメ元で販売元に問い合わせしてみては?

私の場合、同様の環境がないので試しようもないので、これくらいしか言えないですね。

[ツリー表示へ]
タイトルRe^2: 3枚のスプレッドシートの連動スクロール
記事No14834
投稿日: 2010/07/30(Fri) 00:24
投稿者さよ
 よねKENさん、アドバイスありがとうございます。
最小構成で、一度試してみたいと思います。


> このSPREADはGrape City社の以下の製品のことでよいのですよね?

 はい。そうです。
元々は、Win98でこのシステムを使用していて、XPに乗せ換え、
Win7でも使用出来るかを検証しています。

 システムを作成した人が居なくなって、パソコンの知識が少しあるからと言う事で
管理を引継ぎ、Win7での動作検証をしているのですが、
VBの知識がなく困っていました。


> Ver2.5Jの対応は以下のように書いてあります。

 Win7では対応していない事は、理解しております。
ただ、XPも非対応ですが動いていたので、
どうしたらWin7で動く様になるか聞きたくて書き込みさせて頂きました。


> 私の場合、同様の環境がないので試しようもないので、これくらいしか言えないですね。

ありがとうございます。周りにVBが分かる人が居なくて誰にも相談出来ず
構文が悪いのか、どうしたらいいのか分からなかったので
アドバイス貰えて嬉しかったです。

[ツリー表示へ]
タイトルRe^3: 3枚のスプレッドシートの連動スクロール
記事No14835
投稿日: 2010/07/30(Fri) 09:41
投稿者花ちゃん
> ただ、XPも非対応ですが動いていたので、

Vista 以降(Win 7 含む)には、Windows XP 互換モード というのがあるのですが、
互換モード で実行しても動作しないという事でしょうか?
(エラーメッセージとかは出ていないのでしょうか? ファイルのパス等が影響しているとかの?)

[ツリー表示へ]
タイトルRe^4: 3枚のスプレッドシートの連動スクロール
記事No14836
投稿日: 2010/07/30(Fri) 10:48
投稿者さよ
 花ちゃんさん、アドバイスありがとうございます。

> Vista 以降(Win 7 含む)には、Windows XP 互換モード

 XP互換モードでシステムを起動させても動作しません。
エラーメッセージも出なくて、マウススクロールさせても無反応です。

 この現象は、構文が悪いのか、バージョン対応していないのか
その判断も付かない状態です。

[ツリー表示へ]
タイトルRe^5: 3枚のスプレッドシートの連動スクロール
記事No14837
投稿日: 2010/07/30(Fri) 10:52
投稿者魔界の仮面弁士
> エラーメッセージも出なくて、
「管理者モードで実行」するかどうかで、結果が変わる部分はありますか?

> マウススクロールさせても無反応です。
それはホイールでのスクロールという事でしょうか。
スクロールバーを操作した場合はどうですか?

> この現象は、構文が悪いのか、バージョン対応していないのか
対応はしていないでしょうね。少なくとも公式には。

[ツリー表示へ]
タイトルRe^6: 3枚のスプレッドシートの連動スクロール
記事No14838
投稿日: 2010/07/30(Fri) 11:23
投稿者さよ
魔界の仮面弁士さん、アドバイスありがとうございます。


> 「管理者モードで実行」するかどうかで、結果が変わる部分はありますか?

 ありません。

> それはホイールでのスクロールという事でしょうか。
> スクロールバーを操作した場合はどうですか?

 そうです。ホイールでのスクロールです。
スクロールバーで動かすと、画面は上下します。

> 対応はしていないでしょうね。少なくとも公式には。

 十分理解しております・・・。
新しいバージョンを買ったら、ちゃんとスクロール出来るのかも不明ですし、
金額も高額な為、確信がないと手が出せません。

[ツリー表示へ]
タイトルRe^7: 3枚のスプレッドシートの連動スクロール
記事No14839
投稿日: 2010/07/30(Fri) 12:20
投稿者さよ
 ややこしい文面ですが、少し変化がありました。
 
 別のWin7端末に、下記バージョンで検証しています。

 <端末-B>
 VB:6.0 Enterprise ツール
  SPREAD:Ver.3.0J (32ビット)

 1枚のスプレッドシートがあり、ホイールスクロールさせるとスクロール出来ます。
しかし、3枚のスプレッドシートはホイールスクロール出来ません。

 <端末-A(先程までの検証端末)>
 VB:6.0 Enterprise ツール
  SPREAD:Ver.2.5J (32ビット)

  1枚のスプレッドシートも、3枚のスプレッドシートもスクロール出来ません。
また、端末Bでコンパイルしたexeファイルを開くと、
「実行時エラー'339' コンポーネント SPR32X30.ocx またはその依存関係のひとつが
適切に登録されていません。ファイルが存在しないか、あるいは不正です」と出ます。

 1枚のスプレッドシートが、ホイールされるか、されないかは
SPR32X30.ocxが関係しているのでしょうか?

[ツリー表示へ]
タイトルRe^8: 3枚のスプレッドシートの連動スクロール
記事No14841
投稿日: 2010/07/30(Fri) 14:02
投稿者魔界の仮面弁士
> > それはホイールでのスクロールという事でしょうか。
> > スクロールバーを操作した場合はどうですか?
>  そうです。ホイールでのスクロールです。
> スクロールバーで動かすと、画面は上下します。

ホイール操作というのは微妙ですね。今でこそ当たり前の機能ですが、
あの当時は、ホイール対応のソフトウェアは非常に少なかったので、
当時の文化オリエント社(現GrapeCity)の製品が、ホイール操作に
未対応という可能性があるかと思います。
少なくとも、VB6 のエディタはホイール未対応ですね(KB837910 で対応)。


>  1枚のスプレッドシートが、ホイールされるか、されないかは
> SPR32X30.ocxが関係しているのでしょうか?

2.5J は 1998年頃、3.0J は 2000 年頃でしたっけ?

ソフトウェア側のホイール対応が進んでいなかった頃は、
マウスドライバあるいは常駐ユーティリティ側で、ホイール操作を
スクロール操作に変換することで疑似対応させていました。

こうしたユーティリティとしては、"どこでもホイール" や "ほい〜ルン!" などが有名です。
マウスドライバ側では、Microsoft 製マウスでは、IntelliPoint ソフトウェア Ver.2.2以降に
搭載されていました。これは『ユニバーサル スクロール』と呼ばれる機能です。
# 現在は各ソフトウェア側の対応が進んだことにより、動作競合を防ぐため、
# ユニバーサル スクロール機能は IntelliPoint 4.9 以降には搭載されなくなっています。

とはいえソフトウェア側がネイティブ対応していない場合には、そうした疑似機能を
用いても、スクロールがうまくいかないケースもあったようです。
(特に OS 標準の機能を使わず、独自にスクロール機能を実装しているような製品など)


> 新しいバージョンを買ったら、ちゃんとスクロール出来るのかも不明ですし、
新バージョンの動作について、メーカーに問い合わせていないのでしょうか?

> 金額も高額な為、確信がないと手が出せません。
トライアル版で検証するという手もありますよね。

[ツリー表示へ]
タイトルRe^7: 3枚のスプレッドシートの連動スクロール
記事No14840
投稿日: 2010/07/30(Fri) 13:26
投稿者よねKEN
WinXP環境のマウスとWin7環境のマウスは同じ機種ですか?
ドライバ等は最新ですか?

> > それはホイールでのスクロールという事でしょうか。
> > スクロールバーを操作した場合はどうですか?
>
>  そうです。ホイールでのスクロールです。
> スクロールバーで動かすと、画面は上下します。

スクロールバーで動かすと3枚とも連動して動く、ということですよね?(※1)
ホイールでのスクロールは3枚の連動はダメということですが、
1枚はスクロールするのでしょうか?しないのでしょうか?(※2)

(※1)からわかることは、スクロールバー操作では、
TopLeftChangeイベントは発生し、その中のコードも期待通りに動いている、ということです。

(※2)で
・1枚はスクロールする場合
   →ホイールに対して、対象のスプレッドは反応しているが、
     ホイール操作に対しては、TopLeftChangeイベントは発生しない、と予想されます。
・1枚もスクロールしない場合
  →そもそもホイールに対して、スプレッドは反応しない、と予想されます。

といった切り分けを進めれば、ある程度、発生の原因がわかるかもしれません。
が、原因がわかたっとして対処方法があるかは別問題です。

> 新しいバージョンを買ったら、ちゃんとスクロール出来るのかも不明ですし、

最新版はSPREAD 7.0J(Version 7.0.0.52)のようですが、
以下のURLによればWindows7(32bit)も実行環境の対応OSに含まれているようです。
http://www.grapecity.com/japan/support/os/win7/default.htm

SPREAD 7.0Jのトライアル版を試用できるようですので、実際に試してみるという手もあるかと思います。
#今回の件に関して、うまく動作したとしても、他の部分に問題が出る可能性もありますので、
#十分な検証は必要になりますが。

[ツリー表示へ]
タイトルRe^8: 3枚のスプレッドシートの連動スクロール
記事No14842
投稿日: 2010/07/30(Fri) 14:34
投稿者さよ
> WinXP環境のマウスとWin7環境のマウスは同じ機種ですか?
> ドライバ等は最新ですか?

 同じ機種ではありませんが、ドライバは最新です。

> スクロールバーで動かすと3枚とも連動して動く、ということですよね?(※1)

 そうです。動きます。

> 1枚はスクロールするのでしょうか?しないのでしょうか?(※2)

 3枚あるうちの1枚と言う事でしょうか?
  →この事ならば、1枚もホイールスクロールしません。
   3枚ともホイールスクロールしても無反応です。


 少し分かった事がありまして、

・SPREAD:Ver.2.5J (32ビット)では、
 ホイールスクロールでスプレッドシート3枚連動も、
 スプレッドシート1枚のみも動かない。
 スクロールバーでは、どちらも動く。

・SPREAD:Ver.3.0J (32ビット)では、
 ホイールスクロールでスプレッドシート3枚連動は動かないが、
 スプレッドシート1枚のみは動く。
 スクロールバーでは、どちらも動く。


 と言うのが分かりました。

 SPREAD:Ver.3.0J (32ビット)で、どうしてホイールスクロールでの
3枚連動は動かないのに、1枚のみの場合は動くのでしょうか?

[ツリー表示へ]
タイトルRe^9: 3枚のスプレッドシートの連動スクロール
記事No14843
投稿日: 2010/07/30(Fri) 17:40
投稿者よねKEN
>  SPREAD:Ver.3.0J (32ビット)で、どうしてホイールスクロールでの
> 3枚連動は動かないのに、1枚のみの場合は動くのでしょうか?

現象からの判断ですが、
ver3.0JのSPREADはホイールスクロールには反応する。
ただし、ホイールスクロールの場合には、
TopLeftChangeイベントは発生しない、
と考えられます。

あくまで現象からの判断であって、SPREAD ver3.0Jの仕様がそういう仕様なのかどうかは、
販売元に聞かないとわからないと思います。

[ツリー表示へ]
タイトルRe^10: 3枚のスプレッドシートの連動スクロール
記事No14844
投稿日: 2010/08/02(Mon) 13:48
投稿者さよ
よねKENさん、花ちゃんさん、魔界の仮面弁士さん
アドバイスありがとうございました。

 7月30日で、情報システム部より借りていた
検証用のWin7端末の借用期限となっており、
端末が手元からなくなってしまいました。

 VBの事もよく分かっていない私に、
沢山のアドバイスありがとうございました。

 結局「スクロール問題」が解決されず、
中途半端で終わってしまった事が心残りで、
Win7を購入し、自宅で検証を続けようと思っています。

 その時には、またこの掲示板に
お邪魔するかもしれませんので、
アドバイスよろしくお願いします。

 本当にありがとうございました。

[ツリー表示へ]