VBA Word 将选定的内联形状添加到 table 单元格

VBA Word Add selected inline shape to a table cell

我在 Word 中选择了一个内联形状对象,我正在尝试使用 VBA 将其粘贴(移动)到 table 单元格中。但是我找不到任何 API 来完成这项工作。我想这样做

// C#
myCell.InlineShapes.Add(selection.InlineShapes[1]);

但是 VBA 或 C# 中没有 API 可以做到这一点。

我找到了 ,但它将图片直接从文件加载到 table 单元格中。

如何将选定的图像放入单元格(Shapes 或 InlineShapes)?谢谢

更新:

我发现 给我一些正确方法的提示。谢谢你,辛迪!!

这段代码终于成功了。我必须通过剪贴板并获取单元格范围才能使用 PasteSpecial 从剪贴板中提取图片。诡异的。但它奏效了。也许有更好的方法。

// C#
sel.CopyAsPicture();
var cell = table.Cell(row, 1);

// Must use cell.PasteSpecial to pull in the image from the clipboard
var range = cell.Range;
range.PasteSpecial(null, null, WdOLEPlacement.wdInLine, false,
    WdPasteDataType.wdPasteShape);

试试这个代码:

Sub MoveShapeToTable()
    Dim ish As InlineShape, tblNew As Table
    
    On Error Resume Next
    Set ish = Selection.InlineShapes(1)
    If Err.Number <> 0 Then
        MsgBox "No InlineShapes selected", vbCritical
        Exit Sub
    End If
    On Error GoTo 0
    
    ish.Range.Cut
    With ActiveDocument
        Set tblNew = .Tables.Add(Range:=.Range.Characters.Last, NumRows:=2, NumColumns:=1, _
                     DefaultTableBehavior:=wdWord9TableBehavior)
        tblNew.Cell(1, 1).Range.Paste
    End With
End Sub