ActiveX を使って Excelの任意のセルに画像を挿入することはできますか?
23 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
MathWorks Support Team
il 13 Mar 2018
Modificato: MathWorks Support Team
il 20 Giu 2023
Excel 上に画像を貼りつける処理を ActiveX の機能を使って、MATLAB から操作したいのですが、AddPicture メソッドを使うと、ポイントで位置を指定しなければなりません。
スプレッドシートのセル(例えば、K2)を指定して、貼りつける方法を教えてください。
Risposta accettata
MathWorks Support Team
il 19 Giu 2023
Modificato: MathWorks Support Team
il 20 Giu 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 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su ActiveX in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!