Main Content

Excel をオートメーション サーバーとして使用したスプレッドシート データの書き込み

この例では、MATLAB® 行列を Excel® スプレッドシートに書き込む方法を説明します。MATLAB データを Microsoft® Excel スプレッドシートへエクスポートする代替方法は、スプレッドシートの関数と例を参照してください。

Excel オブジェクトを作成します。

e = actxserver('Excel.Application');

ワークブックを追加します。

eWorkbook = e.Workbooks.Add;
e.Visible = 1;

最初のシートをアクティブにします。

eSheets = e.ActiveWorkbook.Sheets;
eSheet1 = eSheets.get('Item',1);
eSheet1.Activate

MATLAB データをワークシートに入力します。

A = [1 2; 3 4];
eActivesheetRange = get(e.Activesheet,'Range','A1:B2');
eActivesheetRange.Value = A;

データを MATLAB に読み戻します。ここで、B は cell 配列です。

eRange = get(e.Activesheet,'Range','A1:B2');
B = eRange.Value;

データを double の行列に変換します。cell 配列にスカラー値のみが含まれている場合は、次のコマンドを使用してください。

B = reshape([B{:}],size(B));

ワークブックをファイルに保存します。

SaveAs(eWorkbook,'myfile.xlsx')

Excel プログラムによりファイルの保存についてのダイアログ ボックスが表示されたら、適切な応答を選択して続行します。

ファイルを保存した場合は、ワークブックを閉じます。

eWorkbook.Saved = 1;
Close(eWorkbook)

Excel プログラムを終了し、サーバー オブジェクトを削除します。

Quit(e)
delete(e)

メモ

メモリ リークの発生を防ぐため、作成したワークブック オブジェクトを必ず閉じてください。

参考

関連するトピック