• ベストアンサー

EXCEL VBA で使用中のバージョンを検知できるか。

Aというマクロファイルがあるとします。 このファイルを実行するのは一人ではなく、バージョンがまちまちです。 バージョンの違いにより、細かな不具合が発生してしまう恐れがある場合、マクロ内で使用中のバージョンを検知し、各バージョンに合わせた処理を行うことは可能でしょうか? よろしくお願いいたします m(= =)mヾ

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

可能ですよ。 Sub test() MsgBox Application.Version End Sub で取得できます。 エクセルのバージョンは以下のとおりです。 Excel 2007 12.0 Excel 2003 11.0 Excel 2002 10.0 Excel 2000 9.0 Excel 97 8.0 Excel 95 7.0 Excel 5.0 5.0 ただ、返り値は文字列ですのでご注意ください。 数値にしたければ Val(Application.Version) です。

sekkii
質問者

お礼

ありがとうございます!!! 助かりました♪

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCEL VBA SaveAsメソッドについて

    お世話になります。 現在、ネットワーク内の2サーバー間でvbsを使用してExcelピボットを更新して別名で保存する処理 を作成しています。この時、Server1からExcelマクロ実行用のvbsをキックしてServer2のExcel マクロ内のSaveAsメソッドを実行してExcelを別名で保存すると、 作成されるべきファイルと拡張子無しの16進数のようなファイル名のファイルが2つ出来上がってしまいます。 Excelのバージョンは2003でServer2のExcelマクロを手動で実行した場合はこのようなことは発生しませんでした。 どなたか原因がわかる方がいればご教示いただきたく存じます。 何卒よろしくお願いいたします。

  • Excel VBA

    マクロ処理で、VBSファイルを実行することは可能でしょうか?

  • VBSとエクセルVBAの連携

    一定の処理を自動化したいと考えております 以下が現在の構成 main.vbs       メインの処理を実行 Master.xls (Macro1) マクロを記述してあるエクセル A.xls マクロを実行したいエクセル 現状はmain.vbsの処理を終了後に手動でアクティブウィンドウをA.xlsにしてMacro1を実行しています。 (エクセルファイルは両方開きっぱなしです) これをmain.vbsの処理の中に組み込み main.vbsの処理終了後に自動的に実行するようにしたいと考えています。 1.既に開いてあるエクセルファイルをアクティブにする処理が分かりません。 2.アクティブなエクセルファイルから別のエクセルファイルのマクロを実行する方法がわかりません。 初心者の質問で理解に苦しむかと思われますがご教授よろしくお願いいたします。

  • エクセルVBA作成時と実行時のエクセルバージョン

    VBAにて工程表の自動作成マクロを作成したのですが、社内で他の方にお試しで利用してもらったところ、途中で処理がエラーとなってしまいました。 予想ですが、エクセルのバージョンに問題があるのではないかと思っています。 ・作成時~エクセル2000 ・エラーが発生したバージョン~エクセル2010 他の2000使用者にも実行してもらったところ、問題なく処理が行われました。 社内には2000と2010が混在しているので、どちらでも使用できるようにしたいのですが、解決方法はありますでしょうか? ちなみに2010で実行したら、カレンダーを作成している最中に「応答なし」が表示され、画面上の処理がフリーズします。 その後に、テキストボックスを指定して、特定のセルに移動させる処理があるのですが、指定したテキストボックスが存在しないというエラーが返ってきて、処理が中断します。(画面のカレンダー作成は正常に終わってました) エラーとなる前にも他のテキストボックスを移動させているのですが、そちらは正常に処理されています。 2010でマクロ実行前に問題となっているテキストボックスを選択して名前を確認しましたが、間違ってはいませんでした。 分かり難い説明で恐縮ですが、何らかの解決方法をご提示していただけると幸いです。

  • Excel VBAの実行時エラーを検知するには?

    夜間、Windowsのタスク機能を利用し、複数のExcelを順次起動して、auto_openにていろいろな集計処理等を行っています。 ときおりエラーが起こるのですが、普段使用しているPCで無いため、エラーに気づかないことがあります。 本来であれば、それぞれのファイルにエラーが起きたらメールを送る、等の処理を組みこんでおけば良かったのですが、それを怠っており、かつそこそこの数があるため、いまさら一つ一つに組みこむのはちょっと面倒な状態です。 それぞれのエクセルは問題無く処理が終われば、エクセルそのものを閉じる(Application.Quit)ようにしているため、タスクの一番最後にエラー検知用のエクセルを実行し、ひらきっぱなしのエクセルがあれば、エラー通知メールを飛ばす、といったことができればと考えています。 ちなみにタスクで実行すると、既にエラーで止まっているエクセルがあっても、別ウインドウで次のエクセルを開くため、Workbooks.Countなどをやっても、エラー検知用エクセル自身の1しか帰ってきません。 なにか良い方法があればご教授願います。

  • Excel VBA ファイルが使用可能になれば 自動実行する仕組み

    Excel のマクロで、読み取り専用から編集状態に入ったときに 自動実行される仕組みは作れないものでしょうか? どんなシチュエーションかというと… ------------------------------------------------------------ 1.Aさんが \\Folder\File1.xls を開く 2.Bさんが \\Folder\File1.xls を開くと、読み取り専用になって開く 3.Aさんがファイルを閉じる 4.Bさんに「使用可能」通知が来る(編集しますか?と聞かれる) 5.Bさん【編集】するをクリックする この、5.Bさんが編集可能になった時点で、自動で実行するマクロを記述したいんです。 エクセルを開くときに自動実行するマクロありますよね。(Auto_Open() や、WorkBook_Open() など) そういう感じで 編集可能になったら走るマクロって可能でしょうか。 理由は、このファイルを開くと同時に上書き保存してるんですが (BuiltinDocumentProperties("Last author") ←の値をとるためです) 今度また別の人が開いたとき、今はBさんが編集しているのに 最終保存者=Aさんの名前で 使用者通知がされてしまうのです。 さらに補足しますと、マクロで制御しないと 「このファイルは Aさんが使ってます。読み取り専用で開く?」が 表示された後 「キャンセル」を選択すると 異常終了してしまうので "Last author"を取得する方法しかないんです。(他にあったりして?) 理想は、  4.Bさんに「使用可能」通知が来る(編集しますか?と聞かれる) の表示をさせずに マクロの制御で 「使用可能になりました。いったん閉じてから再度開き直してください」 という仕組みに出来たら最高です。 長くなりましたがよろしくお願いいたします。

  • Excel VBAについて

    Excel VBAについて ExcelのセルA1に日付データ(yyyy/mm/dd hh:mm)が入っています。 このエクセルファイルを開いている間、セルA1の日付(時分)が更新されたらマクロを実行するようにしたいのですが、どのようにしたらよいのでしょうか。 セルA1の日付データが更新されるタイミングは決まっていません。 セルA1の日付データが更新されたらマクロ実行というのが難しいのであれば、 10秒おきにマクロを実行というようなことができないでしょうか。 ご教授願います。

  • VBAにおいて、""内で変数を使用したい

    VBAにおいて、""内で変数を使用したい 0864_001.xls 0864_002.xls … 0864_009.xls というファイルがあるとき、0864_001.xlsを開く→処理→閉じる→0864_002.xlsを開く→… というように処理をしたいと思い、以下のようなマクロを作成しました。 Sub Test() Dim i As Integer For i = 1 To 9 Workbooks.Open ThisWorkbook.Path & "\0864_00i.xls" 処理 閉じる Next i End Sub 実行しようとしてもファイルを開くことが出来ずに困っています。 ""内で変数を使うことは出来ないのでしょうか? また、どのようにすれば実行できるようになるのか教えてください。

  • XCELのVBAマクロで次のことが実行できますか。

    XCELのVBAマクロで次のことが実行できますか。 (前提)WINDOWSで (1)MYDOCのフォルダAにExcelファイルA1.xlsからA9.xlsまで9個のファイルと、もう一つマクロBBの入ったExcelファイルB.xlsがあります。 (2)各Ai.xlsには、Aisheet(i=1カラ9)と名前のsheetが1つのみあります。 (処理したいこと) A1.xlsを開き、A1sheetを、B.xlsへcopyし、そのシートに対してマクロBBという処理を実行します。 続いて同様にA2.xlsを開き、A1sheetを、B.xlsへcopyし、そのシートに対してマクロBBという処理を実行します。 以下A9まで実行したい。 (質問)Bのマクロに新たにCCというマクロを作り、CCを実行することで、自動的に(処理したいこと)を実行してしまうようなものを作れますか。 また作るとしたらおおよそどんな風に作ればいいでしょうか。 ご回答よろしくお願いします。

  • EXCEL97のバージョンについて

    Windows2000(SP2)上でEXCEL97を利用して帳表を出力するマクロを作成しました。 EXCEL97 SR-2がインストールされた複数のマシンでマクロを実行したところ 特定のマシンのみHPageBreaksのAddでアプリケーションエラーを起こします。 EXCELの「ヘルプ-バージョン情報」で表示させると全てSR-2と表示されますが 「システム情報-ソフトウェアの環境-実行中のタスク」のファイル日付がアプリ ケーションエラーを起こすマシンのみ1997/08/13になっており、他のマシンは 1997/09/23になっています。 SR-2が正しくあたっていないのかと思ったのですが、EXCEL97のバージョンを 細かく調べる方法がわかりません。 EXCEL97のバージョンを細かく調べる方法はありますか?

専門家に質問してみよう