Q46:テーブルをクリックすると、「行インデックスエラー(-1<0)」と出てしまいます。何が原因なのかプログラムを何度も見直してもわかりませんでした。アドバイス等頂ければ幸いです。
A46-1:
お知らせ頂いたエラーメッセージは[テーブル]の行が選択されていない時に発生します。
選択行/列のインデックスは行が選択されていない場合「-1」が返ります。
お送り頂いたファイルでは、行が選択されていない時でも、この「-1」の値を使ってセルの値を取得しようとするため、インデックス「-1」の行は存在せず、エラーが発生します。
以下をご確認下さい。
1.[テーブル]のマウスボタンイベントに繋がっている処理をデータ選択イベントに繋げ直してみてください。
[テーブル]からはマウスボタンイベント、続いてデータ選択イベントが発生するという順になっています。
[テーブル]が選択されないうちにマウスボタンイベントに繋がる処理が実行されている形になります。
マウスボタンイベント、データ選択イベントどちらを使っても差支えはないのですが、今回の場合には、データ選択イベントを使うことでエラーは発生しなくなります。
2.「削除」、[修正」ボタンを押した時も、[テーブル]が選択されていない場合には同じ「行インデックスエラー」が発生します。
これを回避するには、[比較演算]コンポーネント等を使用し、「行のインデックスが0以上=行が選択されている時」だけ、処理を行うようにします。
[比較演算]の処理が判るよう簡単なサンプルファイルを掲載いたしますので、ご参考になれば幸いです。
関連ファイル:テーブル(比較演算).mzax
備考:@は「実現したい処理別」の「Q&A105」にも掲載。