- 締切済み
PowerPointVBAについて確認させてくださ
PowerPointVBAについて確認させてください。 PowerPointのテキストボックスにあるテキストをC:\DebugPrint.Logに出力するプログラムを作成しようとしています。 下記のコードを実行したところ、下記の8行目の「Debug.Print shape.TextFrame.TextRange.Text」の箇所で「指定された値は境界を超えています。」とエラーメッセージが出ます。 解決方法を御教授いただければと思います。 Const g_strLogFile = "C:\DebugPrint.Log" Sub TextBoxToDebugPrint() Dim slide For Each slide In ActiveWindow.Parent.Slides Dim shape For Each shape In slide.Shapes Debug.Print shape.TextFrame.TextRange.Text Next Next End Sub ' デバッグ文字列の出力 Function DebugPrint(ByVal strData As String) ' Debug.Print strData Open g_strLogFile For Append As #1 Print #1, strData Close #1 End Function
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mt2015
- ベストアンサー率49% (258/524)
ところで、DebugPrintではなく、Debug.Print になっているのは良いの? このままだとログファイルではなく、イミディエイトウィンドウにしか出力しませんよ。
- mt2015
- ベストアンサー率49% (258/524)
ソースをみると全てのシェイプからテキストを取り出そうとしていますが、テキストボックス以外のシェイプがあるのでは? 例えば画像とか。 シェイプがテキストボックスの時だけ取り出すようにすればよいと思います。 Debug.Print shape.TextFrame.TextRange.Text ↓ If shape.Type = msoTextBox Then Debug.Print shape.TextFrame.TextRange.Text End If