0

アプリケーションに Powerpoint 2010 および MS Visual Basic を使用する場合:

特定の形状を引数として渡そうとしています...別の構文または方法を試してみましたが、運が悪く、関数間でoShape変数を使用するとブロックされているようです。

関数 ClickBtn1() は、変更する形状の名前に oShape 変数を設定し、変更関数 Incre() を呼び出します。

Incre() は数値を 12 に設定し、テキスト範囲を図形からそれに更新し、前景色を 10、10、10 に変更してから、スライドを再描画します...

私が持っているものは次のようになります:

Dim oShape As Shape
Dim x As Long

Sub ClickBtn1()
MsgBox "Inside ClickBtn1"
oShape = ActivePresentation.Slides(7).Shapes("ParaIcon")
Incre
End Sub

Sub Incre()
MsgBox "inside Incre"
x = 12
oShape.TextFrame.TextRange.Text = x
oShape.Fill.ForeColor.RGB = RGB(10, 10, 10)
SlideShowWindows(7).View.GotoSlide (SlideShowWindows(7).View.Slide.SlideIndex)
End Sub

Powerpoint ドキュメントのスライド 7 に、アクションが「マクロ ClickButton1 を実行する」に設定された矢印の形と「ParaIcon」と呼ばれる四角形があります...

助言がありますか?

ありがとう!

4

1 に答える 1

2

代わりにそのようにします。グローバル変数を避け、SET を使用してオブジェクト参照を変数に割り当てます。

Sub ClickBtn1()
    Dim oShape as Shape
    MsgBox "Inside ClickBtn1"
    SET oShape = ActivePresentation.Slides(7).Shapes("ParaIcon")
    Incre oShape    
End Sub

Sub Incre(oShape as Shape)
    Dim x as Long
    MsgBox "inside Incre"
    x = 12

    ' Convert numbers to string before assigning text
    oShape.TextFrame.TextRange.Text = Cstr(x)

    oShape.Fill.ForeColor.RGB = RGB(10, 10, 10)
    SlideShowWindows(7).View.GotoSlide (SlideShowWindows(7).View.Slide.SlideIndex)    
End Sub
于 2012-08-24T02:06:21.437 に答える