ActiveX を使って Excelの任意のセルに画像を挿入することはできますか?
23 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2018 年 3 月 13 日
編集済み: MathWorks Support Team
2023 年 6 月 20 日
Excel 上に画像を貼りつける処理を ActiveX の機能を使って、MATLAB から操作したいのですが、AddPicture メソッドを使うと、ポイントで位置を指定しなければなりません。
スプレッドシートのセル(例えば、K2)を指定して、貼りつける方法を教えてください。
採用された回答
MathWorks Support Team
2023 年 6 月 19 日
編集済み: MathWorks Support Team
2023 年 6 月 20 日
以下の 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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で ActiveX についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!