MATLABからEx​celファイルを開く​。ただし、ファイルが​開かれている時は2重​で開かない。

26 ビュー (過去 30 日間)
Mamoru Mabuchi
Mamoru Mabuchi 2022 年 3 月 12 日
回答済み: Jiro Doke 2022 年 3 月 16 日
MATLABからExcelファイルを開きたいです。
ただし、該当のファイルが開いている時に、二重で開かないようにしたいです。
どのように記述すればよいでしょうか
下記は、ファイルを開く時のコマンドです。Test.xlsxが予め開いている時には、Openを実行しないようにしたいです。
excelapp = actxserver('Excel.Application');
excelapp.Visible = 1;
wkbk = excelapp.Workbooks;
wdata = Open(wkbk,'C:\Test.xlsx');

回答 (1 件)

Jiro Doke
Jiro Doke 2022 年 3 月 16 日
こんな感じで出来ると思います.
filename = 'C:\Test.xlsx';
try % 既存のExcelへ接続
excelapp = actxGetRunningServer('Excel.Application');
catch % Excelが起動していない場合は新規に起動
excelapp = actxserver('Excel.Application');
excelapp.Visible = true;
end
wkbk = excelapp.Workbooks;
% 開いているファイルの数
nFiles = excelapp.Workbooks.Count;
isOpen = false;
for id = 1:nFiles
if isequal(wkbk.Item(id).Fullname,filename)
% 既にファイルが開いている
isOpen = true;
wdata = excelapp.Workbooks.Item(id);
break
end
end
if ~isOpen
wdata = Open(wkbk,filename);
end

タグ

製品


リリース

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!