[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/06/13(Tue) 11:10
投稿者名:VB白帯
Eメール:
URL :
タイトル:
スプレッドのチェックボックス操作
スプレッドでリストを表示させています。
各行には選択可能なチェックボックスを設けました。
例えばスプレッドの最大行は20行で、5件が実データ
として表示されているなかで、データのない行
(ここでは6〜20まで)のチェックボックスをクリック
させないためにはどのような処理をするとよいでしょうか。

EnabledプロパティをFALSEにしちゃうと当然ながら
スプレッド自体が触れなくなっちゃいます。。。

投稿時間:2006/06/13(Tue) 12:16
投稿者名:matsu
Eメール:
URL :
タイトル:
Re: スプレッドのチェックボックス操作
> スプレッドでリストを表示させています。
> 各行には選択可能なチェックボックスを設けました。
> 例えばスプレッドの最大行は20行で、5件が実データ
> として表示されているなかで、データのない行
> (ここでは6〜20まで)のチェックボックスをクリック
> させないためにはどのような処理をするとよいでしょうか。
>
> EnabledプロパティをFALSEにしちゃうと当然ながら
> スプレッド自体が触れなくなっちゃいます。。。

グレープシティ社のSPREADの事でしょうか?
その場合は、Lockプロパティで設定できます。

投稿時間:2006/06/13(Tue) 12:20
投稿者名:VB白帯
Eメール:
URL :
タイトル:
Re^2: スプレッドのチェックボックス操作
> グレープシティ社のSPREADの事でしょうか?
> その場合は、Lockプロパティで設定できます。

ご返信ありがとうございます。
さようでございます。LockプロパティをTrueにしてみたのですが、
状況変わらずという感じなんです。。。
処理としては、チェックボックス部分にフォーカスが当たった
時に、「TypeCheckText=""⇒チェック処理を無効」といった
ような感じにしたいのです。

投稿時間:2006/06/13(Tue) 12:44
投稿者名:DO
Eメール:
URL :
タイトル:
Re^3: スプレッドのチェックボックス操作
はじめまして。
どのスプレッドかは忘れてしまいましたが、
Protect プロパティと Lock プロパティ両方設定しないとだめだったものが
あった記憶があります。
関係なかったらすみません。

投稿時間:2006/06/13(Tue) 14:02
投稿者名:VB白帯
Eメール:
URL :
タイトル:
Re^4: スプレッドのチェックボックス操作
> あった記憶があります。
> 関係なかったらすみません。

どうもお世話様です。
トライしてみたのですが、変わらないですねぇ。
ちょっと色々試してみますね。

投稿時間:2006/06/13(Tue) 14:41
投稿者名:matsu
Eメール:
URL :
タイトル:
Re: スプレッドのチェックボックス操作
> トライしてみたのですが、変わらないですねぇ。
> ちょっと色々試してみますね。

具体的なコードを提示してもらえると回答しやすいかもです。
あと、環境もです。

投稿時間:2006/06/13(Tue) 15:37
投稿者名:VB白帯
Eメール:
URL :
タイトル:
Re^2: スプレッドのチェックボックス操作
> 具体的なコードを提示してもらえると回答しやすいかもです。
> あと、環境もです。

VB6.0 SpreadはGrapeCityのSpread Ver3.0J

こんな書き方してます。

[form_loadイベント]
※スプレッドのColは1列しかありません※

'***** スプレッド初期化(スプレッドの各行をロック状態にしたつもり)
with spread1
    for i = 1 to .maxrows
        .col = 1
        .row = i
        .TypeCheckText =""
        .Protect = True
        .Lock = True
    next i
end with

[スプレッドに取得したデータを表示させる処理(例:5件該当データ取得)]
with spread1
    for i = 0 to ubound(ArrayData)
        if ArrayData(i) <>"" then
            .col = 1
            .row = i + 1
            .Lock = false    ←ロックを解除してチェックボックスを
                                                操作できる形にした(つもり)
            .protect = False
            .TypeCheckText = arraydata(i)
            .value = "1"    '***** チェックボックスをチェック状態にする
        end if
    next i
end with

上記のようにすれば、データのない行についてはチェックが入らないと
想像していたのですが、現状まったく効力を発揮しておりません。

お粗末なコーディングかと思われるかもしれませんがご指導お願い
申し上げます。

投稿時間:2006/06/13(Tue) 15:58
投稿者名:matsu
Eメール:
URL :
タイトル:
Re: スプレッドのチェックボックス操作
>[スプレッドに取得したデータを表示させる処理(例:5件該当データ取得)]
> .protect = False
>
> 上記のようにすれば、データのない行についてはチェックが入らないと
> 想像していたのですが、現状まったく効力を発揮しておりません。
>
> お粗末なコーディングかと思われるかもしれませんがご指導お願い
> 申し上げます。

.protect = False
この行を削除してみてください。

Protectプロパティは常にTrueにしておかないとLockプロパティが機能しません。

投稿時間:2006/06/14(Wed) 19:27
投稿者名:VB白帯
Eメール:
URL :
タイトル:
Re^2: スプレッドのチェックボックス操作
> .protect = False
> この行を削除してみてください。
>
> Protectプロパティは常にTrueにしておかないとLockプロパティが機能しません。

ご指示頂きましたとおり、改修してみましたが、現象変わらずという状況です。

ただし、コンパイルして実行するとロック状態になっていたりする時もあるし、
なっていなかったりする時もあるんです。

投稿時間:2006/06/15(Thu) 17:57
投稿者名:matsu
Eメール:
URL :
タイトル:
Re:スプレッドのチェック...
> ご指示頂きましたとおり、改修してみましたが、現象変わらずという状況です。
>
> ただし、コンパイルして実行するとロック状態になっていたりする時もあるし、
> なっていなかったりする時もあるんです。

Lockプロパティの設定はどのタイミングで行っていますか?

投稿時間:2006/06/16(Fri) 13:43
投稿者名:VB白帯
Eメール:
URL :
タイトル:
スプレッドのチェック..
> Lockプロパティの設定はどのタイミングで行っていますか?

matsuさん、お世話になっております。

Lockプロパティの設定ですが、スプレッドにデータを表示させる前に一度、
すべての行を空行にして、チェックをオフ状態にし、そしてLock=Trueと
しております。

そして実際のデータをスプレッド上に表示させるループ処理にてLock=False
としております。
以前のこちらで記載させて頂きましたコードのままの流れです。

投稿時間:2006/06/19(Mon) 17:37
投稿者名:matsu
Eメール:
URL :
タイトル:
Re: スプレッドのチェックボックス操作
> Lockプロパティの設定ですが、スプレッドにデータを表示させる前に一度、
> すべての行を空行にして、チェックをオフ状態にし、そしてLock=Trueと
> しております。
>
> そして実際のデータをスプレッド上に表示させるループ処理にてLock=False
> としております。
> 以前のこちらで記載させて頂きましたコードのままの流れです。

コードには問題なさそうですので、ロックの設定を行う条件の部分を
チェックするくらいしか思い浮かびません。
ホームページにはチェックボックス関連のバグ報告はありませんでしたので。

また、GODさんの案も検討されてみては?

投稿時間:2006/06/27(Tue) 19:10
投稿者名:VB白帯
Eメール:
URL :
タイトル:
Re^2: スプレッドのチェックボックス操作
お返事おそくなりまして申し訳ありませんでした。
しばらく体調崩してまして見ることができませんでした。
おかげさまでイメージしたとおりの動きを実現できました。
多大なるご協力感謝しております。

投稿時間:2006/06/16(Fri) 17:00
投稿者名:GOD
Eメール:
URL :
タイトル:
Re: スプレッドのチェックボックス操作
> スプレッドでリストを表示させています。
> 各行には選択可能なチェックボックスを設けました。
> 例えばスプレッドの最大行は20行で、5件が実データ
> として表示されているなかで、データのない行
> (ここでは6〜20まで)のチェックボックスをクリック
> させないためにはどのような処理をするとよいでしょうか。
>
「必要件数分しかチェックボックスを表示させないようにする。」というのも一つの解決案ですね。
あとは、ButtonClicked イベントで選択禁止行の時は、Value を 0 に戻すとか。