アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2003と2010のマクロの拡張子ですが、
エクセル2003をエクセル2010にしても実効できるような
式に書き直すことは可能でしょうか?
たとえばエクセル2003の
Windows("abc.xls").Activateを
人に渡してエクセル2010で保存して開くとWindows("abc.xls").Activateで実行エラーに
なるのでこの("abc.xls")を自動的に("abc.xlsm")にするような
回避できる式の書き方がありますでしょうか?
またそのほか何か案がありましたら教えてください。
初心者ですので具体的な式などを教えていただけると大変助かります。
どうぞよろしくご教授お願い致します。

A 回答 (1件)

質問には、肝心な部分が抜けているので、やむを得ないのですが、変数を置くしかりませんね。


なお、バージョンチェックは、関係ありませんから、 ディレクティブIF は役に立ちません。

>Windows("abc.xls").Activateを
なお、Windows というものは、一意には成り得ませんので、Windows("abc.xls") そのものは、WorkBooks("abc.xls") ですね。そうでないと、もっと話がややこしくなります。

'//
 Dim wb1 As Workbook
 On Error Resume Next
 Set wb1 = Workbooks("abc.xls")
 If wb1 Is Nothing Then
  Set wb1 = Workbooks("abc.xlsm")
 End If
 If wb1 Is Nothing Then
  MsgBox "abc というブックは見つかりません。", vbExclamation
  Exit Sub
 End If
 On Error GoTo 0
 wb1.Activate
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
お礼が遅くなり誠に申し訳ありません。
頂いた回答を参考にさせて頂きいろいろ試してみます。
本当にありがとうございました。
また何かありましたら是非よろしくお願いいたします。

お礼日時:2010/09/02 14:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!