2009-07-28 6 views
1

PowerPointスライドにテンプレートを設定すると、必要なすべてのテキストボックスが含まれます。これらのテキストボックスに挿入するテキストを入力するためにVisual Basicを使用しますか?PowerPoint 2003プレゼンテーションを変更するためのVBA - アクティブではない

私はテンプレートを使用するためにこれらのPPTブリーフが含まれている(または格納する必要がある)ので、それは、データの非常に簡単です:

  • 私はそれらのテキストボックスにテキストを入力してくださいどのよう
  • 行う方法特定のテキストボックスのフォント、サイズ、フォントボールドなどを変更しますか?
  • マクロの後にマクロを記録し、テキストボックスを選択する以外に、選択肢からオブジェクト名を取得する以外に、テキストボックス/シェイプ(「テキストボックス52」)の「名前」を決定する方法はありますか?
  • マクロを使用してvbaを判断すると、そのマクロをvbaとして使用できないのはなぜですか?マクロから取得するvbは、何を選択すべきか分からないので、ちょうどvbaプロシージャとして機能しないように見えるactive.selectionを持つようです。私は考えます

私が探しているものは、テンプレートを使用してアクセスからエンドゲームpptを作成することです。私はスライド上のpptテキストボックスに情報を中継する複数のテキストボックスを持っています。

私はアクセスからテンプレート(または新しいプレゼンテーション)を起動する方法、新しい項目(スライド、グラフ、グラフ、テキスト)を追加する方法を知っていますが、既存のテキストボックスを変更する方法はわかりません!!

助けてください....私の仕事は昨日のようにこれを必要としています!

いつものように!

答えて

2

あなたはのように、名前で形にアクセスすることができます。

Dim oSlide As Slide 
Set oSlide = ActivePresentation.Slides(1) 

Dim oShape As Shape 
Set oShape = oSlide.Shapes(strShapeName) 

Dim oTextRange As TextRange 
Set oTextRange = oShape.TextFrame.TextRange 

oTextRange.Text = "this is some text" 

oTextRange.Font.Bold = msoTrue 

を注意あなたがする探しているものは何でも、ちょうどUIを介してそれをやって、あなたのマクロを記録し、それをコピーすること。レコードされたマクロはSelectionオブジェクトを多く使用しますが、これは簡単に修正されています - 適切なShapeオブジェクトへの参照を取得し、生成されたコードでそれを代入してください。

ので、例えば、形状の塗りつぶしの色を変更するための記録マクロはこれである場合:

With ActiveWindow.Selection.ShapeRange 
    .Fill.Visible = msoTrue 
    .Fill.Solid 
    .Fill.ForeColor.RGB = RGB(255, 0, 0) 
    .Fill.Transparency = 0# 
End With 

...と、あなたが既に持っている形状に塗りつぶしの色を適用しますoShapeなどへの言及は、これにコードを変更します。

With oShape 
    .Fill.Visible = msoTrue 
    .Fill.Solid 
    .Fill.ForeColor.RGB = RGB(255, 0, 0) 
    .Fill.Transparency = 0# 
End With 

は、形状の現在の名前を取得するには、VBAエディタで「即時」ウィンドウでこれを入力することができます。

?ActiveWindow.Selection.ShapeRange(1).Name 

あなたは非常に簡単に(シングル)マクロにそれを回すことができる:私は個人的にではなく、デフォルトの名前を使用するよりも意味のあるものに図形の名前を変更することを

Sub ShowMeTheName() 
    MsgBox ActiveWindow.Selection.ShapeRange(1).Name 
End Sub 

注意を。直接ウィンドウでこれを行うだけです:

ActiveWindow.Selection.ShapeRange(1).Name = "MyName" 

...名前を入力するマクロを作成します。

+0

うわー...これはすばらしい答えです。あなたが話していたことをあなたが知っているという事実の他に、あなたは私のようなハックのためにそれを壊しました! 非常に助けてくれてありがとう! – Justin

+0

だから私はこれを使用し、正常に動作しましたが、私はサブプロシージャ内の複数のテキストボックスを変更することはできません。私はで試してみました: 薄暗いoShape1ようにTextRangeのようoTextRange1を暗く 形状、およびなどなど が、それはまだだけ は、私が何か間違ったことをやっている第2の選択された/書かれたテキスト文字列で、最初に選択したテキストボックスを変更しています? – Justin

+0

オオフママ...私は1つを逃した。今すぐ入手!もう一度このおかげで、私は正しい方向に大きな時間を過ごすのに役立ちます!ありがとうございます。 – Justin

0

私はWordやExcel(私が知っているか、またはPowerPointでの使用方法がない)を自動化する必要があるときは、問題のアプリケーションを開き、マクロ記録をオンにして、自動化するタスクを実行します。次に、生成されたコードをアクセスコードの基礎として使用します。これはかなり単純なプロセスですが、コピーと貼り付けのような単純な操作を行い、Accessから使用しているアプリケーションオブジェクトを各行に先行させることがあります。

あなたがしていることをやらなければならないのであれば、対話的に実行されているタスクを記録し、コードのどの部分が必須であるかを試してみることができます。

+0

それは実際に私が最近行ってきたことであり、これまでのところほとんどのことでうまくいっています。私は問題のオブジェクトの名前を調べる方法を知りませんでした。上記のコードはそれを解決しましたので、私はオフになります.... ありがとうございました! – Justin

関連する問題