次の方法で共有

EXCEL-VBA で取得した OS のバージョンについて

Anonymous
2015-09-28T08:44:49+00:00

Excel-VBAにて、「Application.OperatingSystem」でOSのバージョンを取得すると、

Excel2010の場合は、「Windows(64-bit) NT 6.02」

Excel2013の場合は、「Windows(64-bit) NT:.00」という値が返ってきます。

従来 NT 6.02 は Windows8、NT 6.01 は Windows7 でした。

(1) Excel2010と2013で 戻り値が違うというのはおかしいのでは?

(2) Windows10の場合は、Windows8 とは違う値になるのでは?

と思うのですが、ご教示いただきたくお願いいたします。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

2 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2015-09-29T10:00:43+00:00

    (補足です)

    http://www.ka-net.org/blog/?p=3779

    Public Sub Sample1()

      Dim colItems As Object

      Dim itm As Object

      Set colItems = CreateObject("WbemScripting.SWbemLocator"). _

        ConnectServer.ExecQuery("Select * From Win32_OperatingSystem")

      For Each itm In colItems

        Debug.Print itm.OSArchitecture

        Exit For

      Next

    End Sub

    を実行したら

    「64 ビット」

    となりました。

    https://www.moug.net/tech/exvba/0150124.html

    Sub Sample3()

        Dim Locator, Service, OsSet, os, msg As String

        Set Locator = CreateObject("WbemScripting.SWbemLocator")

        Set Service = Locator.ConnectServer

        Set OsSet = Service.ExecQuery("Select * From Win32_OperatingSystem")

        For Each os In OsSet

            msg = msg & os.Caption & vbCrLf

            msg = msg & os.Version

        Next os

        MsgBox msg

        Set Service = Nothing

        Set OsSet = Nothing

        Set Locator = Nothing

    End Sub

    を実行したら

    「Microsoft Windows 8.1

     6.3.9600」

    となりました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2015-09-28T20:36:14+00:00

    私の場合Windows8.1(64ビット)とExcel2013ですが

    msgbox Application.OperatingSystemで

    「Windows (32-bit) NT 6.02」となりました。

    何かおかしいですね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません