Q65:テーブル全体から、選択行のみテーブルに表示する方法
Q65-1:
エクセルシートにやりたい事を書きましたので、教えて下さい。
関連ファイル:テーブル操作.xlsx
A65-1:
お問い合わせの件についてですが、元となる全体データのテーブルと、選択行のみを表示するテーブルが同じテーブルコンポーネントかそうでないかで考え方が異なります。2つの異なるテーブルコンポーネントを使う場合には、「全体データのテーブルで選択した行データを、もう1つのテーブルに設定する」ということになります。
サンプルとして"テーブル操作_0.mzax"を用意しましたので、どうぞご覧ください。ボタンをクリックすると、左側のテーブルで選択した行のみが右側のテーブルに表示されます。
次に、全体テーブルと選択行のみのテーブルが同一のテーブルコンポーネントの場合についてですが、基本的な考え方は「選択されていない行をすべて削除する」ということになるかと存じます。具体的には、選択されている行の前後で、行を削除するためのFORループを実行することになります。
こちらもサンプル"テーブル操作_1.mzax"を用意しましたので、どうぞご覧ください。行を順次削除する場合には、最終行から削除していかないと行インデックスがずれて動作不正が生じてしまうことにご注意ください。
さて、"テーブル操作_1.mzax"では、選択されていない行はすべて削除されてしまいますので、それらのデータは失われてしまうことになります。元となる全体データを戻したい場合には、削除処理を実行する前に全体データをどこかに保持しておく必要があります。
サンプル"テーブル操作2.mzax"は、削除を行う前にテーブル格納変数に全体データを設定し、元に戻すための処理を追加したものです。[テーブルを元に戻す]ボタンをクリックすると、全体データが表示されます。
関連ファイル:テーブル操作_0.mzax、テーブル操作_1.mzax、テーブル操作_2.mzax