Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
ドキュメントプロパティの一括更新(PPT/EXCEL)
投稿日時: 18/06/20 12:32:23
投稿者: toichi11

フォルダ内にあるファイルのドキュメントプロパティを一括で更新したく思っています。
AuthorやCompanyなど更新したい項目、値は決まっています。パワーポイントとエクセルのファイルがフォルダ内に混在していて、一括で全ファイルのドキュメントプロパティを更新したく思っています。
VBAからPPTファイルを開いたり保存したり、というところでつまづいて、いるのですが、どのようなソースを書けばよいか、ご教授いただける方がいらっしゃれば、よろしくお願い致します。

回答
投稿日時: 18/06/20 15:18:56
投稿者: mattuwan44

http://officetanaka.net/excel/vba/tips/tips122.htm
 
↑やってみてないけど参考になりそうです。

回答
投稿日時: 18/06/22 07:06:17
投稿者: simple

"ExcelVBA PowerPoint 操作"などでネット検索してみましょう。
例えば
https://tonari-it.com/excel-vba-powerpoint-presentation-open/
といった参考になりそう記事が見つかります。
 
PowerPoint.Presentation の BuiltinDocumentPropertiesを操作することで、
プロパティにアクセスできると思います。
取得なら

    MsgBox ppPrs.BuiltinDocumentProperties("Author")
設定なら
    ppPrs.BuiltinDocumentProperties("Author") = "○○○"
でしょう。
 
ExcelとPPTを同時に処理しなくても、
Excelファイルたちを処理し、次にPPTファイルたちを処理すればよいと思う。

回答
投稿日時: 18/06/23 23:04:15
投稿者: simple

PowerPointに限定したものを書いてみました。
以下のような感じでしょうか。
Excelについても同じようにしてください。
 

Sub test()
    '■Microsoft PowerPoint XX.X Object Liraryの参照設定が必要
    Dim ppApp As PowerPoint.Application
    Dim ppPrs As PowerPoint.Presentation
    
    'http://www.moug.net/tech/exvba/0060088.html  が参考になります。
    Dim fName As String
    Const myPath As String = "D:\MyDocuments\201806"  '■カスタマイズが必要
    
    Set ppApp = New PowerPoint.Application
    ppApp.Visible = True
    
    fName = Dir(myPath & "\*.ppt")
    Do While fName <> ""
        Set ppPrs = ppApp.Presentations.Open(myPath & "\" & fName)
        Debug.Print ppPrs.BuiltinDocumentProperties("Author")
        'ppPrs.BuiltinDocumentProperties("Author") = "○○○"
        'ppPrs.save
        ppPrs.Close
        fName = Dir()
    Loop
End Sub

即効テクニックにExcelブックについて、好適な記事がありますね。
[ブックの「作成者」プロパティを一括変更する]
http://www.moug.net/tech/exvba/0060091.html
こちらも参考にして下さい。
 
# 忙しいかも知れないが、ご自分が建てたスレッドですから、
# 挨拶くらいするのがマナーですよね。

投稿日時: 18/06/25 16:57:57
投稿者: toichi11

ご教授、ありがとうございました。
ご教授いただいたソースコードをいじりながらトライ&エラー中ですが、いけそうです。
ありがとうございました。