0

Office オートメーションの経験を持つ VB 愛好家の皆様、

コンテキスト: Visual Studio 2010 で VB.Net を使用して Office Powerpoint 用のリボン アドインを開発しようとしています。

問題:各スライドのすべての Powerpoint 'オブジェクト' に、動的で透明なテキスト の透かしを追加してから、それらを画像に変換しようとしていますが、テキストを透明にすることはできません。

タスクは単純に見えますが、コンサルティングを検討する前に何度も試しました。

現在の試み: 特定のオブジェクトの上に基本的なテキストベースの透かしを受け取るために、次のようにコーディングするとします。

NewPresentation.Slides(Slide).Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, Left, Top, Width, Height)

With NewPresentation.Slides(Slide).Shapes(NewPresentation.Slides(Slide).Shapes.Count)

    .TextFrame.TextRange.Text = WatermarkText
    .Line.Visible = MsoTriState.msoFalse

    .Width = Math.Sqrt((Object.Width * Object.Width) + (Object.Height) * Object.Height))
    .Rotation = -(Math.Atan(Object.Height) / (Object.Width) * (180 / System.Math.PI)) ' - Angle * Radius->Degree ratio (Atan returns radius)

    .Left = (Object.Left + (Object.Width / 2)) - (.Width / 2)
    .Top = (Object.Top + (Object.Height) / 2)) - (.Height / 2)

    .Name = "Watermark_" & Group

End With

上記は、新しい TextBox の挿入、テキストの設定、行の非表示、幅の設定 (オブジェクトのサイズに基づく)、テキスト ボックスの回転 (オブジェクトの幅と高さの比率に基づく)、左右の位置の設定 (オブジェクトの位置に基づく) を行います。 、および形状に名前を付けます。

あとは、テキスト ボックスとそのオブジェクトを選択し、コピーして削除し、両方を画像として貼り付けて、画像の形状を再配置するだけです。成功です。

このすべてが完全に機能します。

ただし、テキストを透明にしたい場合はどうすればよいでしょうか?

これを達成するための3つの可能な方法を知っています。

1 - TextBox のテキストのテキスト効果をフォーマットして透明にすることができます (手動)。

2 - TextBox をコピーし、新しいシェイプを作成してクリップボードから背景を設定し、塗りつぶしの透明度を (手動で) 変更できます。

3 - TextBox をコピーし、画像として貼り付け、画像を保存し、新しいシェイプを作成してファイルから背景を設定し、塗りつぶしの透明度を (手動で) 変更できます。

透かしテキストは動的である必要があるため、事前に作成された画像を作成できません。

私は 3 つすべてを試しましたが、それぞれの特定の段階で失敗しました

( 1 ) TextBox の Text に Text-Fill Format を設定して透明にする方法がわかりません

( 2 )クリップボードから図形の背景を設定する方法がわかりません

( 3 )形状を画像として保存する方法がわかりません

誰かが上記のいずれかを行う方法を教えてくれますか、またはより適切な提案を提供できますか?

この質問を拡張または再構築するか、リクエストに応じてより多くのコード サンプルを提供させていただきます。

よろしくお願いします

4

1 に答える 1

0

選択したテキストを 50% 透明の緑に設定する例:

Dim oRng As TextRange2
Set oRng = ActiveWindow.Selection.TextRange2

With oRng
    .Font.Fill.ForeColor.RGB = RGB(0, 255, 0)
    .Font.Fill.Transparency = 0.5    
End With

TextRange ではなく TextRange2 を使用することに注意してください (TextRange2 は、2003 年以降のバージョンの PPT で導入されたいくつかの新しいプロパティを公開します。透明度はその 1 つです)。

于 2013-09-30T19:34:58.957 に答える