
No.1ベストアンサー
- 回答日時:
こんばんは。
> どのようにコーディングすればいいでしょうか?
ご自分でどこまでできてます?
> VBAでExcelに書き出したいのですが、可能でしょうか?
可能です。適当に書いたものですが下記のような感じとか。
注意点は、Shape のインデックス順の抽出になります。レイアウト通りの
順番で抽出できるとは限りません。レイアウト通りと思えば、非常に
面倒だと思います。(※この点の解決案は後述の参考 URL 参照)
なお、私なら多分外部ツールと組み合わせますよ。
[xdoc2txt] - PDF,WORD,EXCEL,一太郎などからテキストを抽出
http://www31.ocn.ne.jp/~h_ishida/xdoc2txt.html
この関連で Web 検索するとこんな記事がありました。
[パワーポイントからテキストを抽出]
http://www.ctrans.org/gobi/1156579633
ご参考までに。
' // フォルダ内の *.ppt ファイルからテキストを抽出する
Sub OutputText()
Dim ppApp As Object ' // PowerPoint.Application
Dim ppPre As Object ' // PowerPoint.Presentation
Dim ppShp As Object ' // PowerPoint.Shape
Dim ppSld As Object ' // PowerPoint.Slide
Dim sPath As String
Dim sFnam As String
Dim i As Long
Dim sh As Worksheet
' // 処理対象のフォルダパス
sPath = "C:\"
' // 初回ファイル検索
sFnam = Dir$(sPath & "\" & "*.ppt")
If Len(sFnam) = 0 Then
MsgBox "*.ppt が見つかりません", vbInformation
Exit Sub
End If
On Error GoTo Err_
' // PowerPoint起動
Set ppApp = CreateObject("PowerPoint.Application")
ppApp.Visible = True
' // 出力シート作成
Set sh = Workbooks.Add.Sheets(1)
With sh.Range("A1:D1")
.Font.Bold = True
.Value = Array("Filename", "Slide Number", "Shape Name", "Text")
End With
' // リスト開始行番号
i = 2
' // *.ppt が見つからなくなるまでループ
Application.ScreenUpdating = False
While Len(sFnam) > 0
' // Presentation を開き、全ての Slide -その中の全ての Shape について
' // テキストがあればセルに出力する
Set ppPre = ppApp.Presentations.Open(Filename:=sPath & "\" & sFnam, _
ReadOnly:=True)
For Each ppSld In ppPre.Slides
For Each ppShp In ppSld.Shapes
If ppShp.HasTextFrame Then
sh.Cells(i, "A").Value = sFnam
sh.Cells(i, "B").Value = ppSld.SlideNumber
sh.Cells(i, "C").Value = ppShp.Name
sh.Cells(i, "D").Value = Replace$(ppShp.TextFrame.TextRange.Text, _
vbCr, vbLf)
i = i + 1
End If
Next
Next
' // Presentation を閉じ、次のファイルを検索
ppPre.Close
Set ppPre = Nothing
sFnam = Dir$()
Wend
ppApp.Quit
sh.Columns.AutoFit
sh.Rows.AutoFit
Bye_:
Set ppApp = Nothing
Set sh = Nothing
Exit Sub
Err_:
MsgBox Err.Description, vbCritical
Resume Bye_
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELのVBAでフォルダ内のファ...
-
Excel.VBA テキストファイルを...
-
BCPユーティリティの使用法_...
-
VB6側からテキストファイルをク...
-
VBAでPowerPointからExcelにデ...
-
unicode文字列(日本語)のファイ...
-
コマンドプロンプトのエラーに...
-
コマンドプロンプトの「%1」と...
-
エクセルのVBAについて とある...
-
大量のフォルダからひとつのフ...
-
チームズのチャット画面にファ...
-
コマンドプロンプトで作成日時...
-
win10の「フォト」で、「次へ」...
-
Thunderbirdで社内共有フォルダ...
-
「win11-23H2」を「win11-24H2...
-
.txtではなく.logの方が良いの...
-
ftpコマンドを実行すると「425 ...
-
「読み取りと実行」と「読み取...
-
バッチ処理でファイルの中身を...
-
xcopyで特定のファイルのみをコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excelにテキストファイルの指定...
-
Excel.VBA テキストファイルを...
-
特定フォルダ内のテキストファ...
-
テキストファイルを読み込んで...
-
BCPユーティリティの使用法_...
-
VBAで新しい日付順にファイルを...
-
ある文字列を含む行の抽出
-
複数行の文字列を変数として使...
-
VBAでPowerPointからExcelにデ...
-
アンケート結果をcsv出力できる...
-
テキストファイルを直接置換す...
-
VBSを用いてIPアドレスを取得し...
-
VBAでテキストの一部の文字を書...
-
秀丸の正規表現
-
テキストファイルの行頭に文字...
-
unicode文字列(日本語)のファイ...
-
ExcelVBAで以下のマクロを作成...
-
access vbaでCSVファイルを文...
-
VBAで任意のフォルダ内のファイ...
-
VB6側からテキストファイルをク...
おすすめ情報