[[20220311092208]] 『Officeバージョン取得』(エルモア) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Officeバージョン取得』(エルモア)

Officeのバージョンをフルで取得しようとしているのですがうまくいきません
どなたか知っている方いませんか?
試したもの
 Sub test()

    Dim wsh As Object: Set wsh = CreateObject("WScript.Shell")
    MsgBox wsh.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\Configuration\VersionToReport")
 End Sub

得られた結果
実行エラー-2147024894 ルートが無効です

なおこの場所には該当キーは存在しており値は「16.0.13801.21106」となっています

< 使用 Excel:Office365、使用 OS:Windows10 >


 参考
 Sub test2()
   MsgBox "OS Version : " & Application.OperatingSystem, vbInformation
 End Sub

(ヘルニア) 2022/03/11(金) 10:32


それはOSのバージョンです
私の知りたいのはOfficeのバージョンです
似たようなものでApplication.Versionがありますがこちらは16.0までしかわかりません
私が知りたいのは累積パッチ分も含めたフルのバージョン情報です
(エルモア) 2022/03/11(金) 10:40

 これはどうですか?
 Sub Sample1()
    Dim Ref, fso
    Set fso = CreateObject("Scripting.FilesystemObject")
    For Each Ref In ActiveWorkbook.VBProject.References
       Debug.Print Ref.Name, fso.GetFileVersion(Ref.fullpath)
    Next Ref
 End Sub
 
 このマクロを実行するためには、セキュリティセンターの設定で、
 VBAプロジェクトオブジェクト・・・の設定が必要です
(´・ω・`) 2022/03/11(金) 10:52

(´・ω・`)さんありがとうございます

4つ出た結果のうち1つに目当てのものがあるのでそれを取得します

    Debug.Print fso.GetFileVersion(ThisWorkbook.VBProject.References("Excel").FullPath)
    Debug.Print fso.GetFileVersion(ThisWorkbook.VBProject.References("Office").FullPath)

ExcelとOfficeでバージョンが近しいけど異なっていたのでこれら2つの違いについてちょっと調べてみます
(エルモア) 2022/03/11(金) 11:06


 Set fso = CreateObject("Scripting.FileSystemObject")
 Debug.Print fso.GetFileVersion(Application.Path & "\" & Dir(Application.Path & "\Excel.Exe"))
 これでもいいかも
(´・ω・`) 2022/03/11(金) 11:11

以下でいいですね
vbsで書き直す予定だったんでわざわざ新規ブック作る必要もないですし
 fso.GetFileVersion(excel.Path & "\Excel.Exe")

(エルモア) 2022/03/11(金) 11:25


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.