[[20130412113934]] 『VBAでOS検索する方法』(万年太郎) ページの最後に飛ぶ

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

 

『VBAでOS検索する方法』(万年太郎)
久し振りの投稿です。
WinXPとWin7が混在する環境でExcel fileを作成する際、VBAプログラムを組み込んだfileがXp 環境なら、拡張子が.xls,
Win7環境なら拡張子が.xlsm と判別して上書き保存出来るVBAルーチンを考えているのですが、その為の検索方法ってあります?
例えばExcel2003 のメニューではヘルプ→バージョン情報が画面に出てくるのですが、それをVBAで認識する為の方法がわからないのです。
取り合えずCellに2003と記入したfileをベースにして下記のVBAを組んでみました。

 Sub 検索()
 Dim OS as Integer
  OS=cells(1,1).value

  If OS=2003 then 
    Workbooks("2003.xls").Save
    Else
    Workbooks("2003.xls").SaveAs Filename:="2010.xlsm"
   End 
 Win Xp,Win7/ Excel2003,excel2010 

 判断基準は XP か 7 なのですか?
 起動している EXCEL が 2010 か 2003 で判断したほうがよいように思いますけれど。
http://officetanaka.net/excel/vba/tips/tips77.htm

    If Val(Application.Version) < 12 Then
        MsgBox "このEXCELは EXCEL2007 より前のバージョンです。"
    Else
        MsgBox "このEXCELは EXCEL2007 以降のバージョンです。"
    End If

 (Mook)

 素早いレスありがとうございます。
判断基準をどちらかに絞り、一貫した方針を持った方がいいいのですね?

取り敢えず上記のルーチンで試してみます。m(_ _)m
(万年太郎)


 Excelのバージョンについてつたない質問です。
http://officetanaka.net/excel/vba/tips/tips77.htm では2007までしか出ていませんが、
2010は13かな?と思い、ヘルプで見たら14になっていました。つまり、13はパスされているのですか?
(万年太郎) 

 このあたりをご参照に。13 は忌み数としてスキップされたようです。
http://ja.wikipedia.org/wiki/Microsoft_Office
 (Mook)

よーくわかりました。Mookさん、ありがとうございます。v(^^)
 (万年太郎)

コメント返信:

[ 一覧(最新更新順) ]


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