ActiveX を使って Excelの任意のセルに画像を挿入することはできますか?
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 13 Mär. 2018
Bearbeitet: MathWorks Support Team
am 20 Jun. 2023
Excel 上に画像を貼りつける処理を ActiveX の機能を使って、MATLAB から操作したいのですが、AddPicture メソッドを使うと、ポイントで位置を指定しなければなりません。
スプレッドシートのセル(例えば、K2)を指定して、貼りつける方法を教えてください。
Akzeptierte Antwort
MathWorks Support Team
am 19 Jun. 2023
Bearbeitet: MathWorks Support Team
am 20 Jun. 2023
以下の 2 つの方法があります。
1. Range プロパティからセルの位置を取得し、AddPicture で張り付ける方法
2. Pictures オブジェクトの Insert メソッドを使用する方法
下記に例を示します。
file_name=[pwd,'\Book1.xlsx']; % Excel ファイルパス
im_name = [pwd, '\pic1.jpg']; % 画像ファイルパス
% Excel COM Server のハンドル取得と Workbook の追加
Excel = actxserver('Excel.Application');
set(Excel, 'Visible', 1);
Workbooks = Excel.Workbooks;
Workbook = invoke(Workbooks,'Open',file_name);
% Sheet のハンドルを取得し、Sheet を選択
Activesheet = Excel.Activesheet;
Sheets = Excel.ActiveWorkBook.Sheets;
Sheet1 = get(Sheets, 'Item', 1);
Sheet1.Activate;
% 画像の貼りつけ
% -- 方法 1 : BEGIN --
Shapes = Sheet1.Shapes;
Top = Sheet1.Range('K2', 'K2').Top; % セル K2 の高さの位置
Left = Sheet1.Range('K2', 'K2').Left; % セル K2 の左端の位置
Y=Shapes.AddPicture(im_name ,0,1,Left,Top,300,300); % 画像貼り付け% -- 方法 1 : END --
% -- 方法 2 : BEGIN --
Sheet1.Range('A2', 'A2').Select % セル A2 を選択する
Sheet1.invoke('Pictures').Insert(im_name) % 画像の挿入
% -- 方法 2 : END --
なお、方法 2 の場合、図がリンク オブジェクトとして挿入されるようです。
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu ActiveX finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!