複数のPowerPointファイルからtxtファイルまたはExcelファイルにテキストを抽出しようとしています。
問題は、特定のテキストタイトルのスライドのみを抽出しようとしていることです。いくつかのPowerPointファイルがあるので、エクスポートもいくつかの個別のファイルとして作成したいと思います。
これができるマクロを実行することは可能だと思いますが、完全にはわかりません。これは実際に可能ですか?もしそうなら、それをコーディングするための最良の方法は何ですか?
理論的には、これは単純な「IF」ステートメントである必要がありますが、私はVBAにあまり詳しくないか、慣れていません。
私は次のコードを使用しています:(コードの2番目のセット) http://www.pptfaq.com/FAQ00274_Export_Text_to_a_text_file-_extract_text_from_PowerPoint_-Mac_or_PC-.htm
このリンクと同様に:(コードの2番目のセットでもあります) VBAのパワーポイントファイルからすべてのテキストを抽出します
最初のリンクはテキストをtxtファイルに抽出しますが、特定のタイトルスライドを含むテキストを抽出することはできません。また、タイトルスライドを識別するコード行が含まれているようです。これは役立つようです。2番目のリンクは複数のtxtファイルをエクスポートできますが、出力txtファイルが空白です。つまり、機能させることができません。
そのようなものは、いくつかのPowerPoint内で大量のデータを並べ替えようとする人にとって役立つと確信しています。
誰かが素晴らしいアイデアを持っているなら!
ファローアップ
以下のコメントでの説明に従って、LIKE関数とワイルドカード( "*")関数を追加して、コードがスライドタイトル"Walkthrough:" +(単語walkthroughの後のすべて)を持つすべてのテキストを返すようにしました。同様の関数を追加しようとすると、.txtファイルにテキストの最初の行のみが表示されます。
ハイパーリンクについて。それらはまだ表示テキストとして表示されます。
Siddharth Rout、これまでのあなたのすべての助けと私に対するあなたの忍耐に感謝します。
フォローアップ(2)
'~~> Change Slide Title here
Const ppSTitle As String = "Walkthrough"
'~~> Change PPT Source Directory Here
Const sDir As String = "C:\Documents and Settings\r126162\Desktop\test\"
Sub Sample()
Dim ppPrsn As Presentation
Dim ppSlide As Slide
Dim filesize As Integer
Dim shp As Shape
Dim vFile
Dim No As Long
vFile = Dir(sDir & "*.ppt*")
No = 1
Do While vFile <> ""
Set ppPrsn = Presentations.Open(FileName:=sDir & vFile)
For Each ppSlide In ppPrsn.Slides
If InStr(1, ppSlide.Shapes.Title.TextFrame.TextRange.Text, ppSTitle, vbTextCompare) Then
'~~> Get a free file handle
filesize = FreeFile()
'~~> Open your file
Open vFile & ".txt" For Output As #filesize
For Each shp In ppSlide.Shapes
If shp.HasTextFrame Then
If shp.TextFrame.HasText Then
'~~> Export Text
Print #filesize, shp.TextFrame.TextRange.Text & " " & shp.TextFrame.TextRange.Characters.ActionSettings(ppMouseClick).Hyperlink.Address
End If
End If
Next
Close #filesize
No = No + 1
Exit For
End If
Next
ppPrsn.Close
vFile = Dir
Loop
Set ppPrsn = Nothing
End Sub