Clear Filters
Clear Filters

COM Server - Insert Inline Shapes in table

1 view (last 30 days)
Cory Snyder
Cory Snyder on 2 Aug 2023
Edited: Aditya on 24 Aug 2023
I have two figures which should be inserted into a two column table in word. In the code below, I check to make sure the filenames exist, move the selection to the correct table, and select the first cell in the first column then insert the image there. In the second section, I move the selection to the second column of the same table, which appear to work. However the second image is the inserted into the first column of the table. The selection also appears to move? Why is the second image not inserted in the correct selection?
%
if sum(ind_fv) == 1
actxWord.ActiveDocument.Tables.Item(4).Cell(1,1).Range.Select;
actxWord.Application.Selection.InlineShapes.AddPicture(...
fullfile(images(ind_fv).folder,images(ind_fv).name),0,1);
end
%
if sum(ind_ad) == 1
actxWord.ActiveDocument.Tables.Item(4).Cell(1,2).Range.Select;
actxWord.Application.Selection.InlineShapes.AddPicture(...
fullfile(images(ind_ad).folder,images(ind_ad).name),0,1);
end

Answers (1)

Aditya
Aditya on 24 Aug 2023
Edited: Aditya on 24 Aug 2023
Hello Cory Snyder,
In the context of your code, using Range.Select alone does not move the insertion point to the desired cell for image insertion. It only selects the range without changing the cursor position.
To properly insert an image into a specific cell, you need to directly access the range of the cell and then use the InlineShapes.AddPicture method to insert the image into that range.
In your case you need to update your code like this:
cell1 = actxWord.ActiveDocument.Tables.Item(4).Cell(1,1)
cell1.Range.InlineShapes.AddPicture(image,0,1);
I hope this helps!

Categories

Find more on Environment and Settings in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

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

Start Hunting!