• 締切済み

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

みんなの回答

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.2

ところで、DebugPrintではなく、Debug.Print になっているのは良いの? このままだとログファイルではなく、イミディエイトウィンドウにしか出力しませんよ。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.1

ソースをみると全てのシェイプからテキストを取り出そうとしていますが、テキストボックス以外のシェイプがあるのでは? 例えば画像とか。 シェイプがテキストボックスの時だけ取り出すようにすればよいと思います。 Debug.Print shape.TextFrame.TextRange.Text ↓ If shape.Type = msoTextBox Then   Debug.Print shape.TextFrame.TextRange.Text End If

関連するQ&A