教えて!goo限定 1000名様に電子コミック1000円分が当たる!!

スプレッドシートのチェックボックで
クリックされた時のイベントを取得したいのですが、
同じセルで連続でクリックした場合
ClickイベントやMouseDownイベントで
イベント処理をしようとしても、
最初の1回目だけで、2回目はイベントが取得できません。

どうやれば、2回目以降もイベントを取得できるか
ご存知の方がいましたら教えて下さい。

よろしくお願いします。

環境は、VB6.0+SPREAD 3.0です。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

今、手元には SPREAD の 6.0 の環境しかないので、3.0 はどうなのかわからないのですが、Click イベントではなく、ButtonClicked イベントはありませんか?


もし ButtonClicked があれば、それで2回目以降もイベントを取得できると思います。
    • good
    • 0
この回答へのお礼

返事遅くなって申し訳ありません。
早速実験してみたところ、うまくいきました!!
自分は、msgboxでイベントチェックを行っていたため、
このButtonClickedイベントをうまく実験できていませんでした。
どうもありがとうございました。

お礼日時:2003/11/17 16:05

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QSPREAD(GrapeCity)のセルにフォーカスを設定するにはどうしたらいいのでしょうか?

VB.netで作成しています。
SPREAD(GrapeCity)の下記のイベントでSPREADのセルに入力された値をチェックしてエラーが無ければデータベースに登録、または更新をして入力エラーがあった場合、セルにフォーカスを設定するように記述していますがうまくフォーカスを設定する事ができません。

・SPREADのChangeイベント
・SPREADのKeyUpイベント
・SPREADのLeaveイベント
・SPREADのCellLeaveイベント

フォーカスを当てたいセルの行番号とカラム番号をSetActiveCellで指定していますが・・・
フォーカスを設定するにはどうしたらいいのでしょうか?
ご存知の方がいましたらアドバイス宜しくお願いします。
では、失礼します。

Aベストアンサー

サポートページを見ただけなので参考程度にお願いします。
http://file.grapecity.com/patches/SPREADNET25Win_ReleaseNote_2510122002.htm

上記ページの「制限事項と注意点」→「【イベント/メソッド】 」の中に「シート上に表示されていないセルに対してSetActiveCellメソッド呼び出し(またはActiveRowIndex/ActiveColumnIndexプロパティの設定)を行った場合、シートは自動的にスクロールされません。表示させる場合にはFpSpreadクラスのShowActiveCellメソッドを併用してください。 」とあります。
一度試してみては?
また、GrapeCityさんは意外とサポートが優秀ですよ。
以前、SPREADver3.0の頃は何回かバグとってもらいました。(非公開で最新ファイルくれました)
バグでなくても親切に対応してもらった覚えがあるので一度問い合わせをしたほうが近道かもしれませんね。

QVB.NET SPRED(チェックボックスの処理)

.net初心者です。スプレッドを扱うのも始めてで調べてもわからないので教えて頂けないでしょうか?

(行いたい処理)
スプレッド上のチェックボックスにチェックを入れたものの行データを取得。


下のような感じでテストプログラムを作りました。

spd_LIST.SaveChanges()
For I = 0 to 5
If spd_LIST.Seet(0).Cell(I,0).Value = 1 Then
  (行データ取得処理)
Else
(処理なし)
End if
Next

チェックボックスにチェックが入っていればデータを取得できますがチェック無しの行の処理に入った場合エラーで落ちてしまいます。
他の方法が思いつかないため、やり方に間違いがあるようでしたら教えていただきたいです。宜しくお願いします。

Aベストアンサー

エラー内容がわからないので予想回答

nullの値を参照するとコケるので
ベタに以下のように書いてみてどーでしょうか。
(余力あれば、nullを考慮したメソッドにしても)

nothingの判定はいらないかも。
ま、いろいろ調整してみてください。

---------------------------------------
spd_LIST.SaveChanges()
For I = 0 to 5

If Not spd_LIST.Seet(0).Cell(I,0).Value is Nothing andalso _
Not spd_LIST.Seet(0).Cell(I,0).Value Is DBNull.Value andalso _
spd_LIST.Seet(0).Cell(I,0).Value = 1 Then
  (行データ取得処理)
Else
(処理なし)
End if
Next

QSPREADでカーソルの位置を1行目に戻したいなぁ

VB6とSPREADver7.0を使っています。
SPREADのOperationModeプロパティは2(行モード)です。
初期状態で、SPREADカーソルの位置は1行目にあります。
SPREADの2行目以下の行を選択し、ボタン押下で
SPREADカーソルの位置を1行目に戻す処理を知りたいのです(泣
RowcountやRecordCountを使うやり方があると聞いたのですが・・・ 
どなたかわかる方よろしくお願いします。

Aベストアンサー

SetActiveCell ?

QSpreadの選択行の取得について

いつもお世話になっております。

VB6、Spread3.0の環境でコーディングしています。

Spreadを単一行モードにして、1行だけ選択された
状態で選択された行の行番号を取得したいのです。

Me.vaSpread1.Row = Me.vaSpread1.SelModeIndex
Me.vaSpread1.Col = 1

で取得しようとしても、うまくいきません。
どのようにすれば、行番号を取得できるのでしょう?
ご存知のかたがおられましたら、よろしくお願い
します。

Aベストアンサー

SpreadのクリックイベントでRowに渡されているので
それを使えばいいと思います。

QスプレットシートのGetTextについて。

 今、VBでスプレットシートを使っています。
 スプレットシートに入っている値を配列に入れたいと思ってます。
 そのとき使う関数はスプレットシート名.GetTextですよね?
 そのGetTextの引数が行と列までは分かりますが、第3引数のVarの
 意味が分かりません。
 ヘルプを読んでも理解できなくて、ネットでも調べてみましたが、
 スプレットシートに関するページがなかなか見つからなくて
 今も分からない状態です。

 どなたかスプレットについて載っているページをご存知の方が
 いましたら、紹介してください。
 また、この場で教えてくださってもかまいません。

 すみませんが、よろしくお願いします。

Aベストアンサー

VarにGetTextされた内容が入ります。

例えばですが
fspreed1.GetText ColCnt, RowCnt, Var
と記述すると、スプレッドシートの横方向はColCntで指定しますね。
スプレッドシートの縦方向はRowCntで指定しますね。

で、Varにそのセルの内容が設定されます。

Qスプレッドのチェックボックスについて

VB初心者です。
質問(1)
単純にチェックボックスがチェックされたの判断はどうすればいいのでしょうか?

オブジェクト名:sprService
______________________
|checkBox1 | 001 | AAAA |  a   | 
|----------|-----|------|----------|   
|checkBox2 | 002 | BBBB |  b   |
|----------|-----|------|----------|
|checkBox3 | 003 | CCCC |  c   |
|----------|-----|------|----------|

質問(2)
既存の機能ではある動作でsprService全体でロックがかかってしまいます。
checkBox2だけロック解除はできますか?

この問題で1日費やしてしまいました。。
ヒントでもよいのでお願いいたします。

Aベストアンサー

質問(1) sprService_ButtonClickedで
判断をつければよいと思います。
質問(2)
'チェックボックス
.Col = 1
.Row = -1
.CellType = CellTypeCheckBox
.TypeHAlign = TypeHAligncenter
.Lock = false
'----------------
'コード
.Col = 1
.Row = -1
.CellType = CellTypeStaticText
.TypeHAlign = TypeHAligncenter
.Lock = True
'----------------

こんな感じで個別に設定してはどうですか?

Qスプレットシートでフォーカスをあてない方法

スプレットシートで入力させたくない、ボックスとかを、フォーカスをあてない方法はあるのでしょうか?
スプレットシートのプロパティーとかで設定が
できたらいいのですが、教えてください。

Aベストアンサー

ロックを掛けて尚且つ、常時入力モードにするのは駄目でしょうか?

スプレッドデザイナの
スプレッド動作環境の[全般]タブの一番左上のチェックボックスなんですが、これだとロックされているセルを選択しないはずです。ただ、セルの複数選択は出来なくなりますが…。

Qスプレッドシートのタブ移動の件について

度々申し訳ありません。またスプレッドシートで質問があります。

現在VB6.0+スプレッド7.0で開発を行っております。

あるボタンを押下したら、スプレッドシートの入力モードを常にON状態にするかOFF状態にするかという処理があるのですが、
fpSpread.EditModePermanent = False
にすると入力モードがOFFになり、逆に
fpSpread.EditModePermanent = True
にすると入力モードがONになります。

そこで問題なのが入力モードがOFFになるとキーボードのTABキーを押下した時、セル移動ができなくなることです。尚、キーボードの矢印キーだと正常にセル移動ができ、また、入力モードがONの場合、TABキー、矢印キー、共に正常にセル移動ができました。

入力モードがOFF時にTABキーでセル移動ができる方法をご存知の方がいましたらご教授を宜しくお願い致します。

Aベストアンサー

[TAB]キーでセル間の移動をする設定をONにします。
fpSpread.ProcessTab = True
これで出来ると思いますよ。

QVisual Basicから Spreadのスクロールを制御する方法

VB.6 とSPREAD v6.0J で開発しております。
特定のラベルもしくはボタンをクリックすることでスクロールの操作ができるようにしたいのですが…
具体的には、一行下へ、一行上へ、画面一枚分下へスクロール、画面一枚分上へスクロール、最上段へ移動といったラベルもしくはボタンをそれぞれ作りたいと思います。
Spread のヘルプなどを参照したのですが、どのように記述したらよいのかが分かりません。
あるいは、スクロールバーの幅を広く表示させることはできるでしょうか。
(TabletPCで動作させるソフトウェアで、全体的に見た目を大きくする必要があるのです。)
ヒントをご教示いただければ幸いです。

Aベストアンサー

以前私が作成した記憶では、Spreadの
縦スクロール・・・TopRowプロパティ に表示開始行番号を設定。
横スクロール・・・LeftColプロパティ に表示開始列番号を設定。
を行っていたと思います。
今回やりたいことはボタン押下時に縦スクロールしたいとのこと
なので、TopRowプロパティの設定値を各ボタン毎に指定する感じでは。

QDataTableから条件を満たした行を別のDatatableへコピーしたい

VC#2005とSQLServer2005ExpressEditionでWindowsアプリケーションを作成しています。

データベースの中から1つのマスタテーブルのデータを呼び出すのにTableAdapterを使ってDataTableにデータをバインドしました。
そこから条件を満たしている行をすべて抽出して同じ型のDataTableにデータをコピーしたいのです。

ですから、DataTableは2つ用意しています。1つは上記の通りデータをバインドしていますが、もう1つは宣言しただけなのでまだ空っぽの状態です。
DataTableにはカラムが3列あり、その中の1列をグループIDとしています。
条件としてはグループIDが同じであるということです。
やりたいことは条件を満たしている行をすべて抽出して空のデータテーブルにコピーすることです。

どなたかご存知の方いらっしゃれば教えてください。
よろしくお願いします。

Aベストアンサー

C#だったんですね … さほど変わりないと思いますが

お使いのコードが提示されていないのでこちらで適当な変数をでっち上げております
現在お使いのコードを支障の無い範囲で提示しましょう

//元のデータテーブルがdtSourceとすると
// テーブル構造をコピー
DataTable dt = dtSource.Clone();
DataRow r = null;
foreach( DataRow dtRow in dtSource.Select("選択するための文字列"))
{
  r = dt.NewRow();
  for( int n = 0; n < dtRow.ItemArray.Length; n++ )
  {
    r[n] = dtRow[n];
  }
  dt.Rows.Add( r );
}
といった具合になると思います

# 前回の投稿中のstSorceはdtSourceの単なるミスです


人気Q&Aランキング