0

3 つの列と動的な行数を持つテーブルを生成するマクロがあります。3 番目の列には「トレンド」というラベルが付いており、マクロは上、下、または左を指す矢印を作成しますが、これらの矢印はテーブルにグループ化されていません。

3 番目の列では、マクロはテーブル セルの垂直方向および水平方向の中央に「-」を挿入します。これにより、中央がわかり、マクロの実行後に矢印を再調整する必要があります。

「-」のx、y座標を決定するコード、または3列目の各セルで矢印を中央に配置する行の高さを決定するコードはありますか?? 行の高さは、同じ行の他のセルに含まれるテキストの量に応じて動的に変化します。

4

3 に答える 3

1

「-」は位置決め補助としてのみ使用しているので、必要な形状を直接追加する方が簡単ではないでしょうか?

スライド 1 で表を選択したと仮定した場合の簡単な例:

Dim oSh As Shape
Dim oNewSh As Shape
Set oSh = ActiveWindow.Selection.ShapeRange(1).Table.Cell(1, 2).Shape
Set oNewSh = ActivePresentation.Slides(1).Shapes.AddShape(msoShapeSmileyFace, oSh.Left, oSh.Top, oSh.Width, oSh.Height)

これにより、セルがスマイリーで埋められます。代わりに、oSh (セルの四角形の形状を表す) の座標を操作し、形状をセル内の中央に配置するために必要な計算を行います。

于 2013-03-26T14:45:35.860 に答える
0

スライド '1' に 2x2 セルの寸法を持つテーブル形状が 1 つだけあり、ハイフンがセル (2,2) にあると仮定すると、2 つのパラメーターを追加する必要があります。

Sub test()

Dim A, B
     A = ActivePresentation.Slides(1).Shapes(1).Table.Cell(2,2).Shape.TextFrame.TextRange.Lines(1).BoundTop
     B = ActivePresentation.Slides(1).Shapes(1).Top

Debug.Print A + B


ActivePresentation.Slides(1).Shapes.AddShape msoShapeRectangle, 100, A + B, 20, 20
End Sub

ここで、A+B は約です。あなたが探しているもの。

于 2013-03-26T14:13:49.707 に答える
0

「-」文字をプレースホルダーとして使用してその上に矢印を置く代わりに、Shape単純に特殊文字を使用できます。

tblCellShape としてディメンション化され、特定のセルの に設定されていると仮定すると、次の.Shapeことができます。

tblCell.TextFrame.TextRange.Text = ChrW(&H25B2) 'Up arrow

また:

tblCell.TextFrame.TextRange.Text = ChrW(&H25BC) 'Down arrow

そして、それを整列させる:

tblCell.TextFrame.TextRange.ParagraphFormat.Alignment = ppAlignCenter
于 2013-03-26T15:12:40.843 に答える