ExcelのVBAで質問致します。


今、あるExcelのファイルがあり、Excel2007を使ってファイルを開いたときとそれ以外のバージョンで
開いたときで、異なる処理をさせたいと思っています。

単純に以下のように考えているのですが、★★★の部分をどのように記述すべきか
わからず質問致します。どうぞよろしくお願い致します。

If ★★★ then
処理1
Else
処理2
End If

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2010/12/27 15:56:20
  • 終了:2010/12/27 16:18:52

回答(2件)

id:frkw2004 No.1

ふるるP回答回数192ベストアンサー獲得回数212010/12/27 16:09:44

ポイント1pt

Applicationオブジェクトに、Versionプロパティがあります。

私は2007を持っていないのですが、2003ではVersion = 11.0 です。

2007ではVersion = 12.0 ではないかと思われます。

If Application.Verion = "12.0" Then

Else

End If

でどうでしょうか。

id:miku1973

2003で開いても2007でも開いても

実行時エラー438

になりました。

引き続き回答おまちします。

2010/12/27 16:14:46
id:windofjuly No.2

うぃんど回答回数2625ベストアンサー獲得回数11492010/12/27 16:12:44

ポイント69pt
If Val(Application.Version) = 12 Then
    2007
Else
    2007以外
End If

http://msdn.microsoft.com/ja-jp/library/microsoft.office.infopat...(office.11).aspx

2010 は 14.0

2003 は 11.0

2002 は 10.0

2000 は 9.0

id:miku1973

完璧です!ありがとうございます!!

2010/12/27 16:18:30
  • id:miku1973
    【補足】
    Excel2007で開いたとき・・・
    というかVBAを実行する時点でいずれかのバージョンのExcelで開かれているので、
    VBAを実行する時点で、現状で使用されているバージョンを判断し、
    処理を分岐させたいという主旨になります。

    どうぞよろしくお願い致します。
  • id:windofjuly
    うぃんど 2010/12/27 16:27:48
    人力検索の仕様でリンクが変になっていますが正しくは下記です
    http://msdn.microsoft.com/ja-jp/library/microsoft.office.infopath.application.version(office.11).aspx
     
    実行時エラー438の原因は s が抜けるというタイプミスですね
    sが抜けていなければ遅れての投稿となった私の回答を開く必要すらなかった訳なので、なんだか申し訳ないです
  • id:ootatmt
    1. が正解なのにかわいそう。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません