PHPスクリプトでは、非画像オブジェクトをすべて.pptxファイルから画像(テキストを除く)に変換する必要があります。私は非常に多くの.pptxファイルを持っているので、私もVBAを使うかもしれないと思っています。VBA Else if奇妙な動作の文
しかし何らかの理由で私のElse Ifが奇妙に動作しています。
Sub nieuwemacro()
Dim oSl As Slide
Dim oSh As Shape
For Each oSl In ActivePresentation.Slides
For Each oSh In oSl.Shapes
' MsgBox (oSh.Type)
' modify the following depending on what you want to
' convert
If oSh.Type = 1 Then
ConvertShapeToPic oSh
Else
End If
Next
Next
End Sub
Sub ConvertShapeToPic(ByRef oSh As Shape)
Dim oNewSh As Shape
Dim oSl As Slide
oSh.Fill.ForeColor.RGB = RGB(0, 0, 0)
Set oSl = oSh.Parent
oSh.Copy
Set oNewSh = oSl.Shapes.PasteSpecial(ppPastePNG)(1)
With oNewSh
.Left = oSh.Left
.Top = oSh.Top
Do
.ZOrder (msoSendBackward)
Loop Until .ZOrderPosition = .ZOrderPosition
End With
oSh.Delete
End Sub
oSh.Fill.ForeColor.RGB = RGB(0、0、0)の部分は何が起こるかを見るためにだけ存在します。そして、これが結果です:
よし...だから、すべてのものは、大きなピンクのボールを除き、適切に変換されます。だから私は他のいくつかのifsを試してみると思った。私の新しいエルスif文:
If oSh.Type = 1 Then
ConvertShapeToPic oSh
ElseIf oSh.Type = 14 Then
ConvertShapeToPic oSh
Else
End If
この中で結果として得られる:コードが今一番上にある緑色のバーを変換doesntの方法
お知らせ? IfElseパーツを追加または削除すると、それができます... なぜこれがこれを行うのかわかりません、誰かが私が間違っていることを教えてくれますか?
ちょうどあなたがテストしたいシナリオを追加したら、あなたのコードにはより適しているように、 'Case oSh.Type'を選択してください。 –
答えShai!しかし、私は前にSelect Caseを使用しましたが、それは私に同じ結果をもたらしました... –
さて、私の2番目のFor Eachで、私は以下のコードのすべてのコードを置き換えます: 'If oSh.Type = 1その後 のMsgBox(oSh.Type) oSh.Fill.ForeColor.RGB = RGB(255、0、0)赤にピンクのボールを変更し 「ConvertShapeToPic OSH エンドIf' 。しかし、ConvertShapeToPic oShの前にある 'を削除すると、ピンクのボールの色が変わるのをやめます...私は本当に今すぐです。 –