アクティブなPowerpointファイルスライドの文字列をすべてクリップボードにコピーしたい。
https://www.relief.jp/docs/017829.html
のサイトに掲載されている下記のコードを実行したところ、
buf = buf & _
Replace(shp.TextFrame.TextRange.Text, Chr(11), vbCrLf) & vbCrLf
のところで、
指定された値は境界を越えています。
というエラーになりました。さっぱり原因がわかりません。
対処法が判る方、教えてください。
正常に動けば、WinActorのスクリプトに改造して使いたいと考えています。
--<Start of code>-----
Sub アクティブなスライドの文字列を出力する()
'アクティブなスライドの文字列を
'クリップボードとイミディエイトウィンドウに出力する
'Microsoft Forms 2.0 Object Libraryへの参照設定が必要
Dim shp As Shape
Dim buf As String
Dim obj As New DataObject
buf = ""
With ActiveWindow.Selection.SlideRange
For Each shp In .Shapes
'文字列を変数に格納
'垂直タブはvbCrLfに置換
buf = buf & _
Replace(shp.TextFrame.TextRange.Text, Chr(11), vbCrLf) & vbCrLf
Next shp
End With
'クリップボードに出力
With obj
.SetText buf
.PutInClipboard
End With
'イミディエイトウィンドウに出力
Debug.Print buf
End Sub
--<End of code>---