ちくのう症(蓄膿症)は「菌」が原因!?

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

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


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

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

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

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

A 回答 (1件)

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



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
    • good
    • 0
この回答へのお礼

NULLの判定をいれてみたり色々ためしたらできました。ありがとうございます。

お礼日時:2005/12/21 06:53

この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の頃は何回かバグとってもらいました。(非公開で最新ファイルくれました)
バグでなくても親切に対応してもらった覚えがあるので一度問い合わせをしたほうが近道かもしれませんね。

Qスプレッドシートのチェックボックスのイベント

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

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

よろしくお願いします。

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

Aベストアンサー

今、手元には SPREAD の 6.0 の環境しかないので、3.0 はどうなのかわからないのですが、Click イベントではなく、ButtonClicked イベントはありませんか?
もし ButtonClicked があれば、それで2回目以降もイベントを取得できると思います。

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

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

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

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

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

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

Aベストアンサー

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

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
'----------------

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

QVB.NETでSPREADの設定方法

VB.NET2005(Express Edition)でSPREAD(SPREAD for .NET 3J Windows Forms Ed.)を使用したいと思ってます。
SPREADのインストール後に参照の追加を行いました。
しかし、ツールボックスにSPREADは追加されておらず、フォームに貼り付けて使うことができません。
インストール後にやることが足りないのだと思いますが、なにが足りないんでしょうか?

Aベストアンサー

ツールボックス上で右クリック→アイテムの選択→
.NetFrameworkコンポーネントタブで、「FpSpread」にチェックをつける。

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

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

Aベストアンサー

SetActiveCell ?

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

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

Aベストアンサー

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

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

QCloseとDisposeの違い

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、タイマーコントロールのイベントに記述していますと、それは実行され続けます。

これを防ぐために、Me.Dispose() を使います。すると、きれいにプロセスは終了し、イベントは発生しない模様です。

そこで、「フォームを閉じる」意味のMe.Close() をすべてMe.Dispose() に変えてしまいました。確実にプロセスを破棄出来ると思ったからです。Webで調べると、違いは「再利用できる、できないの違い」という答えがありましたが、それはきっと、ファイルやオブジェクトのことで、フォームの場合は、再びShowまたはShowDialogで表示させることは可能でしたので、特に問題は感じていませんでした。

ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。Me.Close() に変えるとうまくいきました。

わけわからなくなってきました。。。

ちなみに、その残ったフォームは、スタートアップフォームであり、別のフォームからShowまたはShowDialogメソッドで呼び出したものではありません。

ここで4つの仮説を立ててみました。

1. ShowDialogで呼び出したフォームは、Me.Dispose()、Showで呼び出した、あるいは、スタートアップフォームは、Me.Close() すれば破棄できる

2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

3. 呼び出し方ではなく、別の要因が存在する

4. 併記する必要がある場合がある

Me.Close()
Me.Dispose()

または、

Me.Dispose()
Me.Close()



どれが正しいのでしょうか?どなたがご存じの方がいらっしゃいましたら、ご教授いただけませんでしょうか? どうぞよろしくお願い申し上げます。ありがとうございました。

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、...続きを読む

Aベストアンサー

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。
Me.Close() に変えるとうまくいきました。

通常はどちらでもうまくいきます。

>2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

ShowDialogの場合は、メソッド内部で、ハンドルが破棄されているため、Close()メソッドの際にDispose()メソッドが呼び出されます。

>3. 呼び出し方ではなく、別の要因が存在する

そう思います。

>4. 併記する必要がある場合がある

インスタンスを明示的に破棄したほうがよい場合は多く存在します。
Disposeが使えるメンバはIDisposableをインターフェースとして持っているメンバです。
これらのメンバは、外部とのやり取りを行うものが多くあります。
たとえばSQLClientに含まれるようなメンバです。

外部とのコネクションを確実に破棄を保障してほしいなどという場合がありますよね、このようなときに使用します。

Using構文を使用するのとまったく同じ理由になります。
正確にはUsing構文を使用できるメンバには条件があります、IDisposableをインターフェースとして持っているメンバに限るというものです。

ほかにもガーベージコレクタによるファイナライズを伴うかどうかという違いがあります。
Disposeの場合はファイナライズが同時に行われるため、使用していたメモリ空間を開放することができます。

上記のような理由により、
Me.Close()
Me.Dispose()
は両方書いたほうがよいと思います。

蛇足ですが、
Me.Dispose()
Me.Close()
はエラーになります。
Me.Dispose()により、Me本体(インスタンス)は削除されてしまいます。
存在しないMeに対してCloseメソッドを要求することはできないためです。

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリ...続きを読む

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

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

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

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

Aベストアンサー

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

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

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

QVB.NETのコンボボックスについて

VB6からVB.NETでプログラミングを始めました。
コンボボックスのクリアの仕方や設定の仕方、また
取り出し方等を教えて下さい。

色々とヘルプも見てみたのですが、よく解りません。
宜しくお願い致します。

Aベストアンサー

クリアだけだと思ってました。
追記します。

Itemを操作します


'登録
For i = 1 To 10
  Me.ComboBox1.Items.Add(i.ToString)
Next

'取得
For i = 0 To Me.ComboBox1.Items.Count - 1
  MsgBox(Me.ComboBox1.Items(i).ToString)
Next

'完全クリア
Me.ComboBox1.Items.Clear()

部分クリア
Me.ComboBox1.Items.RemoveAt(Index値)


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング