Powerpointのシェイプ属性を再帰的にテキストファイルへ書き出す
単なるメモです。
Powerpointのシェイプ属性をテキストファイルへ書き出すVBAを修正し、いつもどこに置いたのかわからなくなるので、メモします。
PowerPointでオブジェクトを一覧にしてテキストファイルへ出力するで書いたシェイプ属性をテキストファイルとして書き出すソースが汎用性ないので再作成。シェイプをグループ化しても再帰的にグループ内シェイプを書き出すように修正。
Sub ExportShapes() Dim sld As Slide Dim shp As Shape Dim oTextFile As String Dim oRow As String oTextFile = ActivePresentation.Path & "\Shapes.txt" Open oTextFile For Output As #1 Print #1, "スライド番号(階数)" & vbTab; "オブジェクト名" & vbTab & "属性" For Each sld In ActivePresentation.Slides If sld.SlideNumber <> 20 Then Call MainProc(sld, sld.SlideNumber) End If Next sld Close #1 MsgBox "Shapes.txtに書き出しました。" End Sub Sub MainProc(ByVal sld As Slide, SlideNumber As Integer) For Each shp In sld.Shapes Call SubMainProc(shp, SlideNumber) Next shp End Sub Sub SubMainProc(ByVal shp As Shape, SlideNumber As Integer) 'オートシェイプ If shp.Type = msoAutoShape Then oRow = SlideNumber & vbTab & shp.Name & vbTab & shp.TextFrame.TextRange.Text Print #1, oRow End If '線と画像 If shp.Type <> msoGroup And shp.Type = msoLine Or shp.Type = msoPicture Then oRow = SlideNumber & vbTab & shp.Name & vbTab & "" Print #1, oRow End If If shp.Type = msoGroup Then oRow = SlideNumber & vbTab & shp.Name For Each gitem In shp.GroupItems Call SubMainProc(gitem, SlideNumber) Next gitem End If End Sub
コメント
コメントを投稿