VBA: OSのバージョン表示が変です

このQ&Aのポイント
  • Win10(64bit)でExcel2013(32bit)の環境で、VBAを使ってOSのバージョン確認をするためにコードを実行したら表示が異なる。
  • 正しく表示されるはずのOSのバージョンがExcelのバージョン表示になってしまう問題が発生している。
  • この問題は私のPCのみ起きているのか、他の環境でも発生しているか確認したい。
回答を見る
  • ベストアンサー

VBA: OSのバージョン表示が変です

Win10(64bit) で Excel2013(32bit) の環境です. Excel の VBA で OS のバージョン確認をするために以下のコードを実行しました. Debug.Print Application.OperatingSystem 結果は以下のとおりです. Windows (32-bit) NT :.00 本来なら,以下のように表示されるはずと思い,ネットで調べたところ, Windows (64-bit) NT 10.00 32-bit と表示されるのは,Excel のバージョンが表示されている(バグ?)らしいですが,OSのナンバー表示が .00 になるのは,私のPCの場合だけでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • 486HA
  • ベストアンサー率45% (1013/2247)
回答No.5

:>結果は以下のとおりです. :>Windows (32-bit) NT :.00 Versionが”00”と表示されるのは正常です。

参考URL:
https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.operatingsystem
masnoske
質問者

お礼

お礼を忘れておりました。 申し訳ありません

その他の回答 (4)

  • 486HA
  • ベストアンサー率45% (1013/2247)
回答No.4

使用しているOSのバージョンは ApplicationオブジェクトのOperatingSystemプロパティで取得できますが、 Windows 10より古いExcelのVBAで同様の結果を得る保障はありません。

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.3

後で「Windows (32-bit) NT :.00」を検索したら、以下のQ&Aが見つかりました。(既にご覧になっているかも知れませんが) Excel VBAでのWindowsバージョンの調べ方 https://answers.microsoft.com/ja-jp/msoffice/forum/all/excel/a07a734b-3b7c-4ded-a1d0-3e8b0409b5cb

masnoske
質問者

お礼

回答ありがとうございます。 以前はご指摘の方法を使っていましたが、Application.OperatingSystem ならたった1行で済むので試してみたところ、表示が変だったので質問させていただきました。

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.2

Excel2019だと10.00ですね。 :.00 になるのはバグな気がします。 : というのは文字コード順で9の次です。 0123456789:;<=>?@ABCDEFG・・・・ と並んでいます。 Excel2013でその部分のコードを書いた人は、Windowsのバージョン番号が2桁になることはないと思ったか、もしくはそれまでにOffice2013がサポート切れになると思ったか(いや、おそらくは何も考えてない)。 もしVer11と表示されるWIndowsが出て、Excel2013で実行すると、;.00 になる気がします。

masnoske
質問者

お礼

回答ありがとうございます. なるほど,文字コード順の可能性が高そうですね. この手のバグは,後で勝手に修正されたりすると面倒なことになるんですよね... まぁ,MS社はWin10が最後と言ってますから,.00 の部分が.99になるまでは大丈夫かも知れませんね.

  • kkkkkm
  • ベストアンサー率65% (1620/2459)
回答No.1

> Win10(64bit) で Excel2013(32bit) の環境です 同じ環境です。WIn10は(1903) Windows (32-bit) NT :.00 と同じように表示されます。

masnoske
質問者

お礼

回答ありがとうございます. 私のOSバージョンも同じ WIn10(1903) です. 私のPC固有の問題ではなさそうですね.

関連するQ&A

  • Windows (32-bit) NT 6.02

    win8.1の64ビットを使っているのですが VBAで Debug.Print Application.OperatingSystem を実行すると Windows (32-bit) NT 6.02 が返るのですが、 何故でしょうか?

  • excel2003と他バージョンの違い(VBA)

    エクセルのVBAをこれから学習しようと考えております。 学習の目的は仕事のためなのですが、 職場のバージョンはexcel2003です。 そのためexcel2003のvbaを学習しようと考えて いるのですが・・・。 いづれは職場のexcelのバージョンも2013などの最新に なることも頭の隅にあるため、どのバージョンでVBAを 学ぶべきか悩んでおります。 EXCEL2003でのVBAで覚えたスキルは、 EXCEL2007やEXCEL2013のVBAでもほとんど通用しますか? 宜しくお願い致します。

  • Excel2003VBAからIE64bitを制御

    Excel2003 VBAから、 CreateObject("InternetExplorer.application")でIEを起動できますが、 XP64bitの場合、IE32bitが起動します。 XP64bitには、IEが32bit版と64bit版が入っています。 Excel2003 VBAから、IE64bitを起動できるのでしょうか? Excel2003 VBAのVB6.0は32bitなので、 そもそも64bitソフトを制御できないものなのでしょうか? IE64bitを起動させるだけなら、Shellとフルパスでできますが、 objIEにオブジェクトとして格納できないので、制御ができません。 ヒントでも構いませんので、ご教授いただけると幸いです。

  • VBAを記述したEXCELファイルを他の端末で実行するとエラーが。

    VBAを記述したEXCELファイルを別の端末で開き、入力などの作業を行うとエラーが表示されます。EXCELのバージョン(2000)は同じなのですが。何故でしょうか? 試した端末のOSとバージョンです。 (1)WinNT4.0/Excel2000 (2)Win2000/Excel2000 ※VBAにはセルへの入力制限を行う記述をしました。 よろしくお願いします。

  • デスクトップのバージョン表示を消したい

    Duddlay と申します。 表題の通りです。デスクトップを表示させると画面右下にバージョンとビルドナンバーが表示 されます。これを表示させなくする方法はありますでしょうか。 Windows 7 以前は、レジストリに、    キー: HKEY_CURRENT_USER\Control Panel\Desktop   値:PaintDesktopVersion というのがあり、これを「1」にすることで表示された(逆に「0」にすると表示が消える)のですが、 Windows8.1 にも同じキー/値はありますが、デフォルトで「0」になっております。 特に作業に問題は無いのですが、気持ちの問題で消したいと考えています。 ※OS は Windows 8.1 Pro 64Bit 版です。 もしご存知の方がいらっしゃいましたら、お手数ですが、バージョン表示を消す方法(手順)を ご享受願えませんでしょうか。

  • エクセルVBAがMACで動かない

    WINDOWSで開発したVBAがMAC(マック)で動かない(コンパイルエラーが起こる)という現象が起こっています。 ネットで検索していて「VBAがMACで動かないことがある」ということは認識しているのですが、 ・MACで動かすことは可能か ・動くようにするには、どうすればよいか(コードを変更する、EXCELのバージョンを変える等) の2点について教えていただければと思います。 <バージョン> OS MAC 9.1  EXCEL バージョン 「MAC EXCEL 2001」 <エラーメッセージ> SUBまたはFUNCTIONが定義されていません。 <VBA内容> エクセルシートの文字列をカンマ区切りでテキストファイルに吐き出すだけです。 一部でもお答えいただけると助かります。よろしくお願いします。

  • VBAコードでイミディエイトウィンドウを表示する方

    VBAコードでイミディエイトウィンドウを表示する方法はありますか? 例えば、 Sub test() Debug.Print Now End Sub を実行したときに イミディエイトウィンドウが表示されていなければ結果がわかりませんよね。 Ctrl+Gでイミディエイトウィンドウを表示出来る事は知っていますが サブプロシージャーと実行とともに、 イミディエイトウィンドウをVBAで表示する方法を教えてください。 Sub test() Debug.Print Now イミディエイトウィンドウを表示 End Sub のようにしたいです。 ご回答よろしくお願いします。

  • =INFO("osversion") の戻り値

    Windows 7 Pro SP-1 配下で Excel 2013 を使用しています。 更に、このマシンの Windows XP Mode 配下で Excel 2002 を使用しています。 さて、掲題の 式 =INFO("osversion") の戻り値ですが、 Excel 2002 上では Windows (32-bit) NT 5.01 Excel 2013 上では Windows (32-bit) NT 6.01 を呈します。 「NT 5.01」および「NT 6.01」はそれぞれ何を意味しているのか教えてください。 私は Windows 7 とか Windows XP が返ってくるものと思っていたものですから、戸惑っているのです。

  • エクセルVBA

    エクセルVBAのコードについて質問です。エクセル初心者です。 Windows10で32bit版のエクセル2010を使っています。 1.エクセルのマクロは32bit版でも64bit版にも対応できるようコードを組んでいるのですが、 32bitで動いているのか64bitで動いているのかどのように確かめたらよいでしょうか? あるマクロの途中に #If VBA7 And win64 Then MsgBox ” 64bit ” #Else またはIf VBA7 And win32 MsgBox ”32bit” #End If を組み込むと、If分の終わりには If分の最後に#EndIfが必要です、と表示されて(EndIfを書いているのに) エラーになります。 2.エクセルマクロをIEと連携させて使っています。 IEを操作させている途中でエクセルのメッセージBoxを最前面表示させるには どうしたらよいでしょうか? IEで特定の操作をしたら、エクセルが最前面に出て、OKボタン付きのメッセージBoxが表示され、OKボタンを押すとIEを操作する という動作をコードに書いています。 コードを書いた直後は、IE上での特定の操作のあとメッセージBoxが適切に最前面表示されますが、 一度保存し閉じてファイルを開き直しマクロを実行すると、メッセージBoxは最前面に出てくれません。 検討したコードは 1. SetForegroundWindow 2.VBA AppActivate. Microsoft Excel. Capture 3.AppActivate Microsoft です。いずれのコードを書いた場合も、保存まではうまくメッセージBoxに回答できるが 保存しファイルを開き直してマクロを実行するとメッセージBoxはIEの後ろに隠れたままであり、エクセルを選択しないと最前面表示されません。 しかし一応最前面表示されることもあることから、マクロを一度実行するごとにエクセル内のデータが変わる可能性も考えられす。

  • Excel VBA 自身を非表示にした時の解除方法

    Excel2010でVBAのコードデバッグ中に Excelアプリケーションのウインドウの中に Excelブック(シート)が表示されなくなってしまったため 一度、Excelアプリケーションを終了して 再びデバッグ中のExcelブックを開いたのですが それでも Excelアプリケーションのウインドウだけが表示されて、 開きたいExcelブック(シート)は表示されません。 おそらく、VBAのコードの中の Set wb = Workbooks.Open(fileName:=filePass, ReadOnly:=True) ActiveWindow.Visible = False の ActiveWindow.Visible = False のコードが 自分自身を非表示にしてしまったのではないかと思われます。 イミディエイトウィンドウに ActiveWindow.Visible = True と入力してもウインドウが表示されていないので エラーになります。 どのようにすれば非表示の状態から 表示の状態に戻すことができるのでしょうか。