ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Table のプロパティ

テーブル UI コンポーネントの外観と動作の制御

テーブル UI コンポーネントには、アプリ内のデータの行と列が表示されます。関数 uitable はテーブル UI コンポーネントを作成し、表示される前に必要なプロパティを設定します。プロパティ値を変更することによって、外観および動作の一部の特性を変更できます。ドット表記を使用して、特定のオブジェクトとプロパティを参照します。

uf = uifigure;
t = uitable(uf,'Data',[1 2 3; 4 5 6; 7 8 9]);
t.FontSize = 10;

以下にリストするプロパティは、App Designer 内または関数 uifigure で作成されたアプリ内のテーブルで有効です。GUIDE 内または関数 figure で作成されたアプリ内で使用するテーブルについては、Table のプロパティ を参照してください。

テーブル

すべて展開する

テーブル データ。次のいずれかのタイプの配列として指定します。

  • table 配列 — datetimedurationcategorical などの table 配列でサポートするデータ型の組み合わせを表示します。

  • 数値配列 — doublesingle などの数値を表示します。

  • logical 配列 — チェック ボックスを表示します。true 値はチェックされたボックスを示し、false 値はチェックされていないボックスを示します。

  • cell 配列 — 数値、logical、または char 値の組み合わせを表示します。

  • 文字ベクトルの cell 配列 — 文字およびテキストを表示します。

ユーザーが無効なデータを入力したときに警告または NaN 値が表示されるのを防ぐには、関数 CellEditCallback を記述してデータを適切な型に変換します。ユーザーがセルを編集すると、Data プロパティが更新されます。

table 配列の指定

table 配列を使用すると、テーブル データを変数 MATLAB® として簡単に格納できます。table 配列を作成するのは、関数 table、関数 readtable、および関数 array2table です。一方、関数 uitable は、Table UI コンポーネント (アプリのユーザー インターフェイス コンポーネント) を作成します。

Table UI コンポーネントの Data プロパティを table 配列として指定すると、MATLAB では、次のように table 配列の値に基づいて Table UI コンポーネントの形式が自動的に設定されます。

  • 既定では、アプリに表示される列名は、table 配列の VariableNames プロパティと一致します。Table UI コンポーネントの ColumnName プロパティを変更すると UI が更新されますが、table 配列の変数名は更新されません。

  • 既定では、アプリに表示される行名は、table 配列の RowNames プロパティと一致します。Table UI コンポーネントの RowName プロパティを変更すると UI が更新されますが、table 配列の行名は更新されません。

  • 各 table 配列変数のデータ型は、アプリ内の対応する列の形式を制御します。ColumnFormat プロパティを設定しようとすると、MATLAB は警告を返します。

table 配列データの表示の詳App Designer アプリの table 配列データ型細については、を参照してください。

数値配列、logical 配列、cell 配列、または文字ベクトルの cell 配列の指定

数値配列、logical 配列、cell 配列、または文字ベクトルの cell 配列のデータの形式を指定するには、ColumnFormat プロパティを使用します。データを編集した結果、データのデータ型と ColumnFormat プロパティの値で不一致が生じた場合、MATLAB はデータを変換するか、警告を表示します。詳細については、編集可能な列のデータ表示ColumnFormat プロパティの説明を参照してください。

このプロパティは読み取り専用です。

テーブルの現在の表示データ。table 配列、数値配列、logical 配列、cell 配列、または文字ベクトルの cell 配列として返されます。

このプロパティは、ユーザーによる table データを含むテーブルの並べ替えに応じて可視化を更新する場合に使用します。

DisplayData は、テーブルの列が並べ替えられると更新されます。テーブルで列の並べ替えがサポートされるのは、Data プロパティに table 配列が格納されている場合だけです。ユーザーがテーブルを並べ替えていない場合や Data プロパティに格納された値が table 配列でない場合は、DisplayData の内容は Data プロパティに格納されている値と同じになります。

列の見出し名。次の値のいずれかとして指定します。

  • 'numbered' — 列見出しは 1 から始まる連続する番号です。

  • 文字ベクトルの cell 配列または categorical 配列 — 配列の各要素は列の名前になります。列名は 1 行のテキストに制限されます。1n 列の cell 配列を指定した場合、MATLAB は n1 列の cell 配列として値を格納して返します。mn 列の配列を指定した場合、MATLAB は配列を列ベクトルに変更します。

  • 空の cell 配列 ({}) — テーブルには列見出しがありません。

  • 空行列 ([]) — テーブルには列見出しがありません。

プロパティ配列 Data の列数が配列 ColumnName の要素数と一致しない場合、結果のテーブルの列数は 2 つの値のうちの大きい方になります。

Data プロパティを table 配列として指定すると、既定の列名は table 配列の VariableNames プロパティと一致します。Table UI コンポーネントの ColumnName プロパティを変更すると UI が更新されますが、table 配列の変数名は更新されません。

例: t = uitable(uifigure,'ColumnName',{'Name'; 'Number'},'Data',{'Bob' 5})

例: t = uitable(uifigure,'ColumnName',{'Name'; []},'Data',{'Bob' 5})

テーブル列の幅。'auto' または 1n 列の cell 配列として指定します。

cell 配列内の各列は テーブル内の列に対応します。値はピクセル単位です。'auto' を指定すると、MATLAB は複数の要素を自動的に使用して列の幅を計算します。その 1 つは ColumnName プロパティ値です。

cell 配列で固定の列幅と 'auto' の列幅を組み合わせることも、単一値の 'auto' を指定してすべての列幅を自動にすることもできます。配列の値が列数よりも少ない場合、値が指定されていない列は既定値の 'auto' のままになります。配列の値が列数よりも多い場合、MATLAB は余った値を無視します。

例: t = uitable(uifigure,'ColumnWidth','auto','Data',[1 2 3; 4 5 6])

例: t = uitable(uifigure,'ColumnWidth',{64 60 40},'Data',[1 2 3; 4 5 6])

例: t = uitable(uifigure,'ColumnWidth',{64 'auto' 40},'Data',[1 2 3; 4 5 6])

列セルを編集する機能。以下として指定します。

  • 空の logical 配列 ([]) — 列は編集できません。

  • 1n 列の logical 配列 — この配列はどの列が編集可能かを指定します。n の値はテーブル内の列の数と等しくなります。配列内の各値はテーブルの列に対応します。配列の値が true の場合、その列のセルが編集可能になります。値が false の場合、その列内のセルが編集不可になります。配列の値が列数よりも多い場合、MATLAB は余った値を無視します。配列の値が列数よりも少ない場合、値が指定されていない列は編集不可になります。

  • logical スカラー — テーブル全体が編集可能または編集不可のいずれかになります。

ユーザーがセルを編集すると、Data プロパティが更新されます。

例: t = uitable(uifigure,'Data',rand(10,3),'ColumnEditable',[false true true])

例: t = uitable(uifigure,'Data',rand(10,3),'ColumnEditable',false)

チェック ボックスやポップアップ メニューを含むテーブルの列でユーザーがコントロールを操作できるようにするには、ColumnEditable プロパティを true に設定します。

Data プロパティが table 配列の場合、duration 値、cell 配列内の混在したデータ型、または複数の列を含む変数は、ColumnEditable プロパティが true でも実行中のアプリで編集できません。

列の並べ替えの可否。次のいずれかとして指定します。

  • 空の logical 配列 ([]) — すべての列が並べ替え不可になります。

  • logical スカラー — テーブル全体が並べ替え可能 (true) または並べ替え不可 (false) のどちらかになります。

  • 1n 列の logical 配列 — この配列はどの列が並べ替え可能かを指定します。n の値はテーブル内の列の数と等しくなります。配列内の各値はテーブルの列に対応します。配列の値が true の場合、その列が並べ替え可能になります。値が false の場合、その列が並べ替え不可になります。配列の値が列数よりも多い場合、MATLAB は余った値を無視します。配列の値が列数よりも少ない場合、値が指定されていない列は並べ替え不可になります。

例: uit = uitable(uifigure,'Data',t,'ColumnSortable',true);

例: uit = uitable(uifigure,'Data',t,'ColumnSortable',[true true false]);

列の並べ替えを有効にするには、Data プロパティの値が table 配列でなければなりません。Data プロパティの値のデータ型が数値配列、logical 配列、cell 配列、または文字ベクトルの cell 配列の場合は、ColumnSortable プロパティを true に設定しても効果はありません。

セルの表示形式。空の cell 配列または 1n 列の文字ベクトルの cell 配列として指定します。

Data プロパティに table 配列が含まれる場合、このプロパティは設定しないでください。詳細については、App Designer アプリの table 配列データ型を参照してください。

このプロパティは、数値配列、logical 配列、cell 配列、および文字ベクトルの cell 配列のデータ型の表示形式を設定します。cell 配列の要素は、Data プロパティ配列の列に対応します。特定の列の表示形式を指定しない場合は、その列に [] を指定します。列の形式を指定しない場合、MATLAB はセル内のデータのデータ型によって既定の表示を決定します。

cell 配列の要素は、次の表で説明する値のいずれかでなければなりません。

セル形式の値

説明

'char'

左揃えの値を表示します。プロパティ配列 Data の要素が論理値である場合、true または false がテーブルに表示されます。

セルを編集するには、テキストを入力して既存の値を置き換えます。

'logical'

チェック ボックスを表示します。対応する Data 値が true の場合、チェック ボックスは最初はオンになっています。プロパティ配列 Data の対応する値は、データが必ずテーブルで正しく表示されるようにするため、logical 型でなければなりません。

セルを編集するには、チェック ボックスをオンまたはオフにします。その後、MATLAB は対応する Data 値を true または false に設定します。ユーザーがチェック ボックスをオンまたはオフにできるように、ColumnEditable プロパティ値は true にしなければなりません。

'numeric'

数値データのコマンド ウィンドウの表示と等しい右揃えの値を表示します。プロパティ配列 Data の要素が論理値である場合、1 または 0 がテーブルに表示されます。プロパティ配列 Data の要素が数値でも論理値でもない場合、NaN がテーブルに表示されます。

セルを編集するには、テキストを入力します。

ユーザーが pi などの定数を表すテキストを入力した場合に値を同等の数値に変換するように、関数 CellEditCallback をコード化することができます。この場合、MATLAB はユーザーが入力したテキストを数値に変換し、Data プロパティに保存しようとします。その後、関数 CellEditCallback が実行されます。例については CellEditCallback の説明を参照してください。

1n 列の文字ベクトルの cell 配列。{'one' 'two' 'three'} など。

編集可能な列でポップアップ メニューを表示します。ColumnEditable プロパティが false に設定されている場合は、値がそのまま表示されます。

セルを編集するには、ポップアップ メニューから項目を選択するか、テキストを入力して新しい項目を作成します。MATLAB は選択されたメニュー項目に対応するプロパティ配列 Data の値を設定します。ColumnEditable プロパティ値は、ユーザーがポップアップ メニューの項目を選択できるように、true にしなければなりません。

関数 format が受け入れる形式名。'short''long' など。

指定された形式を使用して、Data プロパティ値を表示します。

ポップアップ メニューの ColumnFormat の効果と各種データ型

ColumnFormat 値がポップアップ メニューを定義している場合、初期の Data 値はそのメニュー内のオプションのいずれかである必要はありません。ユーザーが異なる選択を行うまで、初期の Data 値が表示されます。

たとえば、特定の列のすべての行で Data プロパティの値が 'Choose' であり、ColumnFormat の値で 'group 1' および 'group 2' の選択肢をもつポップアップ メニューを指定するとします。MATLAB がテーブルを作成すると、これらのテーブル セルはユーザーがポップアップ メニューの項目を選択するまで 'Choose' を表示します。

f = uifigure;
myData = {'Andrew' 31 'Male' 'Choose'; ...
          'Bob' 41 'Male' 'Choose';  ...
          'Anne' 20 'Female' 'Choose';};
t = uitable('Parent', f,...
            'Position', [100 100 334 78],...            
            'ColumnFormat',({[] [] [] {'group 1' 'group 2'}}),... 
            'ColumnEditable', true,...
            'Data', myData);

編集可能な列のデータ表示

次の表で、各種データ型が特定の ColumnFormat 値でどのように表示されるかを説明します。

 ColumnFormat
'numeric''char''logical'
データ配列値のデータ型任意の数値型テーブルは数値をそのまま表示します。MATLAB は値をテキストに変換し、テーブルに左揃えで表示します。MATLAB が値を変換できない場合は、NaN が表示されます。推奨されません。MATLAB は、関数 CellEditCallback を定義しない限り、ユーザーがセルを編集するときに警告を返します。
charテーブルには、値が数値であるかのように、右揃えで表示されます。テーブルは、値をそのまま表示します。推奨されません。MATLAB は、関数 CellEditCallback を定義しない限り、ユーザーがセルを編集するときに警告を返します。
logicalテーブルは論理値を数値として表示します。MATLAB は、関数 CellEditCallback を定義しない限り、ユーザーがセルを編集するときに警告を返します。テーブルは論理値を左揃えの 'true' または 'false' として表示します。MATLAB は、関数 CellEditCallback を定義しない限り、ユーザーがセルを編集するときに警告を返します。テーブルはチェック ボックスとして論理値を表示します。

行の名前。次の値のいずれかとして指定します。

  • 'numbered' — 行の見出しは 1 から始まる連続する番号です。

  • 文字ベクトルの cell 配列または categorical 配列 — 配列の各要素は行の名前になります。行名は 1 行のテキストに制限されます。1n 列の cell 配列を指定した場合、MATLAB は n1 列の cell 配列として値を格納して返します。mn 列の配列を指定した場合、MATLAB は配列を列ベクトルに変更します。

  • 空の cell 配列 ({}) — テーブルには行見出しがありません。

  • 空行列 ([]) — テーブルには行見出しがありません。

プロパティ配列 Data の行数が配列 RowName の要素数と一致しない場合、結果のテーブルの行数は Data プロパティの行数になります。

Data プロパティを table 配列として指定すると、既定の行名は table 配列の RowNames プロパティと一致します。Table UI コンポーネントの RowName プロパティを変更すると UI が更新されますが、table 配列の行名は更新されません。

例: t = uitable(uifigure,'RowName',{'Name';'Number'},'Data',{'Bob';5})

例: t = uitable(uifigure,'RowName',{'Name';[]},'Data',{'Bob';5})

フォント

すべて展開する

フォント名。システムでサポートされているフォント名として指定します。既定のフォントは、特定のオペレーティング システムとロケールによって異なります。

指定したフォントが利用できない場合、MATLAB は、アプリが実行中のシステムで利用可能なフォントから最もよく一致するフォントを使用します。

例: 'Arial'

フォント サイズ。正の数値として指定します。測定単位はピクセルです。既定のフォント サイズは、特定のオペレーティング システムとロケールによって異なります。

例: 14

フォントの太さ。次のいずれかの値として指定します。

  • 'normal' — 各フォントで定義されている既定の太さ

  • 'bold''normal' よりも太い文字

すべてのフォントに太字フォントがあるとは限りません。そのため、太字フォントを指定しても標準フォントの太さと変わらない場合があります。

フォントの角度。'normal' または 'italic' として指定します。このプロパティを italic に設定すると、アプリ ユーザーのシステムで利用できる場合にイタリック フォントが選択されます。

フォント サイズの単位。'pixels' として指定します。

対話機能

すべて展開する

テーブルの可視性。'on' または 'off' として指定します。Visible'off' のとき、テーブルは表示されませんが、そのプロパティに対するクエリと設定は行うことができます。

アプリの起動を高速化するには、起動時に表示されないすべてのコンポーネントの Visible プロパティを 'off' に設定します。

テーブルの操作可能状態。'on' または 'off' として指定します。Enable プロパティは、テーブルがユーザーの操作に対応するかどうかを制御します。以下の 2 つのうちいずれかの値をとります。

  • 'on' – テーブルは操作可能です。

  • 'off' – テーブルは、グレー表示され、ユーザーの操作には対応しません。

ツールヒント。文字ベクトル、文字ベクトルの cell 配列、string 配列、または 1 次元の categorical 配列として指定します。このプロパティを使用して、実行時にユーザーがポインターをコンポーネントに合わせるとメッセージが表示されるようにします。コンポーネントが無効になっている場合でも、ツールヒントは表示されます。複数行のテキストを表示するには、文字ベクトルの cell 配列または string 配列を指定します。配列の各要素は、テキストの各行になります。このプロパティを categorical 配列として指定した場合、MATLAB はカテゴリの完全なセットではなく、配列内の値を使用します。

色とスタイル

すべて展開する

セル テキストの色。RGB 3 成分、16 進数カラー コード、または表にリストされた色オプションのいずれかとして指定します。

RGB 3 成分および 16 進数カラー コードは、カスタム色を指定するのに役立ちます。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。これらの値では大文字小文字は区別されません。したがって、カラー コード '#FF8800''#ff8800''#F80'、および '#f80' は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

MATLAB の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

テーブルの背景色。RGB 3 成分または RGB 3 成分の m3 列の行列として指定します。RGB 3 成分は、色の赤、緑、青成分の強度を指定する行ベクトルです。強度値は [0,1] の範囲でなければなりません。色の名前が無効です。

テーブルの行の網掛けに m 色の反復パターンを使用する場合、m3 列の行列を指定します。この行列の各行は RGB 3 成分でなければなりません。MATLAB は、RowStriping プロパティが 'on' の場合に行列の行を使用します。テーブルの背景は、RowStriping'on' で、さらに BackgroundColorm3 列の行列である場合を除き、縞模様になりません。

例: t = uitable(uifigure,'Data',rand(10,3),'BackgroundColor',[0.85 0.85 1])

例: t = uitable(uifigure,'Data',rand(10,3),'BackgroundColor',[1 1 1 ;0.85 0.85 1])

次の表に、特定の色の RGB 3 成分を示します。

RGB 3 成分
[1 1 0]
マゼンタ[1 0 1]
シアン[0 1 1]
[1 0 0]
[0 1 0]
[0 0 1]
[1 1 1]
[0 0 0]

1 行おきの網掛け。'on' または 'off' として指定します。このプロパティはテーブルの行の網掛けパターンを制御します。

RowStriping 値が 'on' に設定されている場合、BackgroundColor 行列は反復パターンとして表示される行の色を指定します。BackgroundColor 行列に 1 行しかない場合は、網掛けはすべてのテーブル行で同じになります。

RowStriping'off' に設定されている場合、BackgroundColor 行列の最初の色はテーブルのすべての行の網掛けを定義します。

位置

すべて展開する

テーブルの位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。次の表で、ベクトルの各要素について説明します。

要素説明
left親コンテナーの内側左端からテーブルの外側左端までの距離
bottom親コンテナーの内側下端からテーブルの外側下端までの距離
widthテーブルの外側の右端と左端の間の距離
heightテーブルの外側の上端と下端の間の距離

すべての測定値は、Units プロパティで指定した単位で表されます。

Position の値の基準は、親コンテナーの "描画可能領域" です。描画可能領域は、コンテナーの境界線の内側にある領域で、メニュー バーやタイトルなどの装飾が占める領域は含まれません。

テーブルの位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。すべての測定値は、Units プロパティで指定した単位で表されます。

このプロパティ値は、Position プロパティ値および OuterPosition プロパティ値と同一です。

テーブルの位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。すべての測定値は、Units プロパティで指定した単位で表されます。

このプロパティ値は、Position プロパティ値および InnerPosition プロパティ値と同一です。

測定の単位。'pixels' として指定します。MATLAB ではすべての単位を親オブジェクトの左下隅から測定します。

レイアウト オプション。GridLayoutOptions オブジェクトとして指定します。このプロパティは、グリッド レイアウト コンテナーの子であるコンポーネントのオプションを指定します。コンポーネントがグリッド レイアウト コンテナーの子ではない場合 (たとえば、Figure またはパネルの子である場合) は、このプロパティは空で、効果はありません。しかし、コンポーネントがグリッド レイアウト コンテナーの子である場合は、GridLayoutOptions オブジェクトの Row プロパティおよび Column プロパティを設定して、グリッドの目的の行と列にコンポーネントを配置することができます。

たとえば、次のコードは table UI コンポーネントを親グリッドの 3 行目の 2 列目に配置します。

g = uigridlayout([4 3]);
t = uitable(g,'Data',rand(10,3));
t.Layout.Row = 3;
t.Layout.Column = 2;

テーブルが複数の行または列にまたがるようにするには、Row プロパティまたは Column プロパティを 2 要素ベクトルとして指定します。たとえば、次のテーブルは列 2 と列 3 にまたがっています。

t.Layout.Column = [2 3];

コールバック

すべて展開する

セル編集コールバック関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

このコールバック関数を使用して、アプリ ユーザーがテーブル セルのコンテンツを変更したときの計算や入力の検証を実行できます。

このコールバック関数は、ユーザーのセルの操作に関する特定の情報 (セルのインデックスなど) にアクセスできます。MATLAB は、この情報を CellEditData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.Indices は選択されたセルのインデックスを返します。CellEditData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。

次の表に、CellEditData オブジェクトのプロパティを示します。

プロパティ

説明

Indices

これはユーザーが編集したセルの行および列のインデックスを含む 1 行 2 列の配列です。編集された値が table 配列の変数 multicolumn 内の項目である場合、列インデックスは列全体における位置を表します。列が並べ替えられている場合、Indices は並べ替え前の元の 1 行 2 列のセルの配列を返し、DisplayIndices は並べ替え後のテーブルにおける編集されたセルの新しい表示位置を返します。

DisplayIndices

これは並べ替え後のテーブルにおける編集されたセルの表示位置に対応する行および列のインデックスを含む 1 行 2 列の配列です。列の並べ替えがサポートされるのは、Data プロパティに table 配列が格納されているテーブルだけです。ユーザーがテーブルを並べ替えていない場合や Data プロパティに格納された値が table 配列でない場合は、DisplayIndices の内容は Indices プロパティと同じになります。

PreviousData

これは前のセル データです。既定の設定は、空行列 [] です。編集された値が、table 配列の変数 multicolumn 内の項目である場合、PreviousData には列のすべての値が含まれます。

EditData

これはユーザーが入力した値です。編集された値が table 配列の変数 multicolumn 内の項目である場合、EditData には列内で編集された値が含まれます。

NewData

これは、MATLAB がプロパティ配列 Data に書き込んだ値です。編集された値が、table 配列の変数 multicolumn 内の項目である場合、NewData には列のすべての値が含まれます。

MATLAB がユーザー入力データでエラーを検出した場合、NewData プロパティは空です。

Error

これは、MATLAB がユーザー入力データでエラーを検出した場合に返されるエラー メッセージです。

MATLAB が Data プロパティに値を正常に書き込んだ場合、Error プロパティは空です。

Error プロパティが空でない場合、CellEditCallback はメッセージを表示するか、問題の修正を試行することができます。

Source

コールバックを実行するコンポーネント。

EventName

'CellEdit'

ユーザーがテーブルのセルを編集すると、MATLAB は以下の手順を実行します。

  1. 新しい値をテーブルの Data プロパティに保存しようとします。

  2. 関数 CellEditCallback (存在する場合) を呼び出します。

値が結果としてエラーになり、関数 CellEditCallback が存在しない場合、セル データは以前の値に戻され、エラーは表示されません。

コールバックの記述の詳細については、App Designer でコールバックを記述するを参照してください。

セル選択コールバック関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

このコールバック関数は、ユーザーがセルを選択したときに実行されます。単一のデータ セル (行または列の見出しではない) を選択するには、そのセルをクリックするか矢印キーでそのセルに移動します。複数のセルを選択するには、次の表に示すいずれかの操作を使用します。複数のセルを選択するときに使用する操作は、連続しているセルか連続していないセルかによって異なります。

連続している場合の選択オプション
セルをクリックしてドラッグします。
いずれかのセルをクリックしてから、Shift を押しながら別のセルをクリックすると、間にあるすべてのセルが選択されます。
いずれかのセルをクリックしてから、Shift を押しながら矢印キーを押すと、連続するセルが追加されます。
行または列の見出しをクリックすると、行全体または列全体が選択されます。
セルをクリックしてから、Ctrl を押しながらスペース バーを押すと、その列のすべてのセルが選択されます (表示されていないセルもすべて含まれます)。
セルをクリックしてから、Shift を押しながらスペース バーを押すと、その行のすべてのセルが選択されます (表示されていないセルもすべて含まれます)。
行または列を選択します。その後、Shift を押しながら別の行または列の見出しを選択すると、間にあるすべての行または列が選択されます。
いずれかのセルをクリックしてから、Shift+PageUp または Shift+PageDown を押すと、そのセルの上または下に表示されているすべてのセルが選択されます。
Ctrl+A を押すと、テーブル内のすべてのセルが選択されます。

連続していない場合の選択オプション
クリックとドラッグでセルの連続するグループを選択します (または単一のセルを選択します)。その後、Ctrl を押しながら別のセルをクリックしてフォーカスし、最後に Shift を押しながらフォーカスされたセルを選択するか、Shift を押しながらクリックとドラッグで別のセルの範囲を選択します (Shift を押しながら矢印キーを押して複数のセルを選択することもできます)。
Ctrl を押しながら行または列の見出しをクリックして行全体または列全体を選択します。その後、同じ操作を繰り返して、隣接していない別の行または列を選択します。

Ctrl を押しながらクリックしてセルをフォーカスした場合は、セルの外枠が青色になります ()。セルをクリックするか Shift を押しながらクリックして選択した場合は、セルの塗りつぶし色が青色に変わります ()。

このコールバック関数は、ユーザーのセルの操作に関する特定の情報 (セルのインデックスなど) にアクセスできます。MATLAB は、この情報を CellSelectionChangeData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.Indices は選択されたセルのインデックスを返します。CellSelectionChangeData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。

次の表に、CellSelectionChangeData オブジェクトのプロパティを示します。

プロパティ

説明

Indices

これは、ユーザーが選択したセルの行および列のインデックスを含む n 行 2 列の配列です。table 配列内の変数 multicolumn では、列インデックスが列全体を参照します。列が並べ替えられている場合、Indices は並べ替え前の元の 1 行 2 列のセルの配列を返し、DisplayIndices は並べ替え後のテーブルにおける選択されたセルの新しい表示位置を返します。

DisplayIndices

これは、並べ替え後のテーブルにおける選択されたセルの表示位置に対応する行および列のインデックスを含む n 行 2 列の配列です。列の並べ替えがサポートされるのは、Data プロパティに table 配列が格納されているテーブルだけです。ユーザーがテーブルを並べ替えていない場合や Data プロパティに格納された値が table 配列でない場合は、DisplayIndices の内容は Indices プロパティと同じになります。

Source

コールバックを実行するコンポーネント。

EventName

'CellSelection'

コールバックの記述の詳細については、App Designer でコールバックを記述するを参照してください。

表示データが変わったときのコールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

このコールバックは、ユーザーによるセルの編集やテーブルの列の並べ替えによって DisplayData が変わったときに実行されます。列の並べ替えがサポートされるのは、Data プロパティに table 配列が格納されているテーブルだけです。

このコールバック関数は、テーブルの列が並べ替えられているかどうかに関する特定の情報にアクセスできます。MATLAB は、この情報を DisplayDataChangedData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.InteractionColumn は、Data で操作された列のインデックスを返します。DisplayDataChangedData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。

プロパティ説明
DisplayRowName並べ替え後の表示における RowName プロパティの値の cell 配列。DisplayRowName は、常に元の RowName プロパティの順列またはサブセットになります。
DisplayColumnName並べ替え後の表示における ColumnName プロパティの値の cell 配列。DisplayColumnName は、常に元の ColumnName プロパティの順列またはサブセットになります。
Interaction'sort'
InteractionColumn変更された列の Data に対するインデックス。
InteractionDisplayColumn変更された列の DisplayData に対するインデックス。
InteractionVariable変更された列の table 配列データの VariableNames プロパティ。Data が数値配列または cell 配列の場合、InteractionVariable は空の文字配列を返します。
Sourceコールバックを実行するコンポーネント。
EventName

'DisplayDataChanged'

コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer でコールバックを記述するを参照してください。

オブジェクト作成関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer でコールバックを記述するを参照してください。

このプロパティは、MATLAB がオブジェクトを作成するときに実行されるコールバック関数を指定します。MATLAB は CreateFcn コールバックを実行する前に、すべてのプロパティ値を初期化します。CreateFcn プロパティを指定しない場合、MATLAB は既定の作成関数を実行します。

既存のコンポーネントに CreateFcn プロパティを設定しても効果はありません。

このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、作成中のオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo を使用してオブジェクトにアクセスします。

オブジェクト削除関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer でコールバックを記述するを参照してください。

このプロパティは、MATLAB がオブジェクトを削除するときに実行されるコールバック関数を指定します。MATLAB は、オブジェクトのプロパティを破棄する前に DeleteFcn コールバックを実行します。DeleteFcn プロパティを指定しない場合、MATLAB は既定の削除関数を実行します。

このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、削除されるオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo を使用してオブジェクトにアクセスします。

コールバック実行制御

すべて展開する

コールバックの割り込み。'on' または 'off' として指定します。Interruptible プロパティは実行中のコールバックが割り込み可能かどうかを決定します。

次の 2 つのコールバックの状態について考慮する必要があります。

  • "実行中" コールバックは、現在実行しているコールバックです。

  • "割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。

MATLAB がコールバックを呼び出すたびに、そのコールバックは実行中のコールバック (がある場合) に割り込もうとします。実行中のコールバックを所有するオブジェクトの Interruptible プロパティが、割り込み可能かどうかを決定します。Interruptible プロパティは次の 2 つの値をとることができます。

  • 'on' — 他のコールバックがオブジェクトのコールバックに割り込むことを許可します。割り込みは、drawnowfigureuifiguregetframewaitforpause コマンドなどの、MATLAB が次にキューを処理するポイントで発生します。

    • 実行中のコールバックにこれらのいずれかのコマンドが含まれている場合、MATLAB はそのポイントでコールバックの実行を停止し、割り込みコールバックを実行します。割り込みコールバックが完了すると、MATLAB は実行中だったコールバックの実行を再開します。

    • 実行中のコールバックにこれらのコマンドが含まれていない場合、MATLAB はそのコールバックの実行を割り込みなしで完了します。

  • 'off' — 割り込みの試行をすべてブロックします。割り込みコールバックを所有するオブジェクトの BusyAction プロパティが、その割り込みコールバックを破棄するかキューに入れるかを決定します。

メモ

コールバックの割り込みと実行は、以下の状況では動作が異なります。

  • 割り込みコールバックが DeleteFcnCloseRequestFcn または SizeChangedFcn の各コールバックの場合、Interruptible プロパティの値にかかわらず割り込みが発生します。

  • 実行中のコールバックが関数 waitfor を現在実行している場合、Interruptible プロパティの値にかかわらず割り込みが発生します。

  • Timer オブジェクトは、Interruptible プロパティ値にかかわらず、スケジュールに従って実行されます。

MATLAB は、割り込みが発生したときにプロパティの状態や表示を保存しません。たとえば、gca コマンドや gcf コマンドから返されたオブジェクトは、別のコールバックを実行するときに変更されている可能性があります。

コールバック キューイング。'queue' または 'cancel' として指定します。BusyAction プロパティは MATLAB による割り込みコールバックの実行の処理方法を決定します。次の 2 つのコールバックの状態について考慮する必要があります。

  • "実行中" コールバックは、現在実行しているコールバックです。

  • "割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。

MATLAB がコールバックを呼び出すたびに、そのコールバックは実行中のコールバックに割り込もうとします。実行中のコールバックを所有するオブジェクトの Interruptible プロパティが、割り込みを許可するかどうかを決定します。割り込みが許可されない場合は、割り込みコールバックを所有するオブジェクトの BusyAction プロパティが、そのコールバックを破棄するかキューに入れるかを決定します。BusyAction プロパティは次の値を取ることができます。

  • 'queue' — 割り込みコールバックをキューに入れ、実行中のコールバックが終了した後に処理されるようにします。

  • 'cancel' — 割り込みコールバックを実行しません。

このプロパティは読み取り専用です。

削除状態。'off' または 'on' として返されます。MATLAB は、DeleteFcn コールバックが実行を開始すると、BeingDeleted プロパティを 'on' に設定します。コンポーネント オブジェクトが存在しなくなるまで BeingDeleted プロパティは 'on' に設定されたままです。

クエリや変更の前にオブジェクトが削除されようとしていないか確認するために BeingDeleted プロパティの値をチェックします。

親/子

すべて展開する

親コンテナー。関数 uifigure を使用して作成された Figure オブジェクト、またはその子コンテナー (TabPanelButtonGroup または GridLayout) のいずれかとして指定します。コンテナーが指定されていない場合、MATLAB は関数 uifigure を呼び出し、親コンテナーとして使用される新しい Figure オブジェクトを作成します。

テーブルの子。空の配列として返されます。Table オブジェクトには子がないため、このプロパティを設定しても効果はありません。

オブジェクト ハンドルの可視性。'on''callback' または 'off' として指定します。

このプロパティは、オブジェクトの親がもつ子のリストにおけるそのオブジェクトの可視性を制御します。オブジェクトがその親オブジェクトのリストで、子として可視できない場合、オブジェクト階層の検索またはプロパティのクエリによってオブジェクトを取得する関数は、そのオブジェクトを返しません。これらの関数には、getfindobjclf および close が含まれます。オブジェクトは参照できない場合も有効です。オブジェクトにアクセスできる場合は、そのプロパティを設定および取得して、それをオブジェクトに作用する任意の関数に渡すことができます。

HandleVisibility の値説明
'on' オブジェクトは常に参照できます。
'callback'オブジェクトはコールバック内から、あるいはコールバックにより呼び出される関数から参照できます。しかし、コマンド ラインから呼び出される関数からは参照できません。このオプションを使用すると、コマンド ラインからのオブジェクトへのアクセスがブロックされますが、コールバック関数からのアクセスは許可されます。
'off'オブジェクトは常に参照できません。このオプションは、他の関数による UI の意図しない変更を防止するために役立ちます。HandleVisibility'off' に設定すると、その関数の実行中にオブジェクトが一時的に非表示になります。

識別子

すべて展開する

このプロパティは読み取り専用です。

グラフィックス オブジェクトのタイプ。'uitable' として返されます。

オブジェクト識別子。文字ベクトルまたは string スカラーとして指定します。オブジェクトの識別子として機能する一意の Tag 値を指定できます。コードの他の部分からオブジェクトにアクセスする必要がある場合、関数 findobj を使用して Tag 値に基づいてオブジェクトを検索できます。

ユーザー データ。任意の MATLAB 配列として指定します。たとえば、スカラー、ベクトル、行列、cell 配列、文字配列、table、または構造体を指定できます。このプロパティを使用して、任意のデータをオブジェクトに保存します。

App Designer を使用している場合は、UserData プロパティを使用する代わりに、アプリでパブリック プロパティまたはプライベート プロパティを作成してデータを共有します。詳細については、App Designer アプリ内でのデータの共有を参照してください。

R2016b で導入