Office関連

64ビット環境かどうかを判別するVBAマクロ

2年以上前にMicrosoft Community(当時はMicrosoft Answers)で回答したときのコードです。

・ExcelでWin7_32bitOSか64bitOSを判断
http://answers.microsoft.com/thread/951ca707-4eb1-4751-8050-a2968e3cd788

忘れないように記事として残しておくことにします。

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

・結果1:

  1. Windows 7(x64) + Office 2010(x86):64 ビット
  2. Windows Server 2008 R2(x64) + Office 2010(x64):64 ビット
Public Sub Sample2()
  Debug.Print Application.OperatingSystem
End Sub

・結果2:

  1. Windows 7(x64) + Office 2010(x86):Windows (32-bit) NT 6.01
  2. Windows Server 2008 R2(x64) + Office 2010(x64):Windows (64-bit) NT 6.01
Public Sub Sample3()
  Debug.Print CreateObject("WScript.Shell").ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%")
End Sub

・結果3:

  1. Windows 7(x64) + Office 2010(x86):x86
  2. Windows Server 2008 R2(x64) + Office 2010(x64):AMD64
Public Sub Sample4()
  Debug.Print CreateObject("htmlfile").parentWindow.clientInformation.cpuClass
End Sub

・結果4:

  1. Windows 7(x64) + Office 2010(x86):x86
  2. Windows Server 2008 R2(x64) + Office 2010(x64):x64

上記の結果から、WOW64環境下では正しく判別できない場合があるため、OSが64ビット環境であるかどうかはSample1のようにWMIを使うのが良さそうです。

Public Sub Sample()
  If Isx64 Then
    MsgBox "64ビット環境です。"
  Else
    MsgBox "64ビット環境ではありません。"
  End If
End Sub

Public Function Isx64() As Boolean
  Dim colItems As Object
  Dim itm As Object
  Dim ret As Boolean
  
  ret = False '初期化
  Set colItems = CreateObject("WbemScripting.SWbemLocator").ConnectServer.ExecQuery("Select * From Win32_OperatingSystem")
  For Each itm In colItems
    If InStr(itm.OSArchitecture, "64") Then
      ret = True
      Exit For
    End If
  Next
  Isx64 = ret
End Function

関連記事

  1. Office関連

    Office 2019のインストール方法

    下記ニュースサイトにある通り、永続ライセンス版のOffice 2019…

  2. Office関連

    Google スライドで新規プレゼンテーションを作成するVBAマクロ

    ここ数日PowerPointのマクロに加え、Google Apps S…

  3. Office関連

    ランダムな文字列を生成するVBAマクロ

    文字数を指定して0-9,A-Zまでのランダムな文字列を生成するマクロで…

  4. Office関連

    Office 2007のサポートが2017年10月10日に終了します。

    2007年1月にパッケージ版が発売されてから早10年、長らく活躍してき…

  5. Office関連

    アクティブなIEのタブを閉じるVBAマクロ

    「VBA アクティブ IE タブ 閉じる」といったキーワード検索でのア…

  6. Windows 10

    続・Microsoft Edgeを操作するVBAマクロ(DOM編)

    以前VBAからMicrosoft Edgeを操作するマクロについて記事…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP