
No.2ベストアンサー
- 回答日時:
No.4
- 回答日時:
[.xls]ブックでも、新しいバージョンの方で互換性を意識した動作となるよう、マクロ自体の改変が必要になるケース。
Excel2003以前のバージョンで作成したマクロを、Excel2007以降のバージョンで実行する場合の注意点 「マクロから新しいブックを作成すると、作成したブックが正常に開けない」
加藤 (2011年5月20日 18:00)
http://www.ilovex.co.jp/blog/system/projectandsy …
<<以下、抜粋>>
まず、マクロを実行しているExcelのバージョンを判定します。
その結果により、Excel2007以降のバージョンでマクロが実行されていた場合は、Excel97-2003形式で新しいブックを保存するようにしました。
そうすることにより、Excel2003以前のバージョンでも、Excel2007以降のバージョンでも正常に新しいブックを作成することが出来るようになります。
実装例を以下に記載しておきます。
view plaincopy to clipboardprint?
01.Dim loCreateWorkbook As Workbook
02.
03.'// 新たなブックを作成する
04.Set loCreateWorkbook = Workbooks.Add
05.
06.'// Excel2007以上の場合、Excel97 - 2003形式でBookを保存する
07.If Application.Version > 11 Then '// (1)
08.
09. loCreateWorkbook.SaveAs Filename:="C:\test\hoge.xls" _
10. , FileFormat:=56 '// (2)
11.
12.Else
13. loCreateWorkbook.SaveAs Filename:="C:\test\hoge.xls"
14.End If
以下、上記のコードの解説です。
(1)「Application.Version」で、マクロを実行しているExcelの
バージョンを取得することができます。
ちなみに、「11」は、Excel2003を表す数値です。
(2)マクロを実行しているExcelのバージョンを判定した結果、
Excel2007以降のバージョンだった場合、
Excel97-2003形式を指定してブックを保存しています。
ちなみに、「56」は、Excel97-2003形式を表す数値です。
Excel2007以降のバージョンでは、「xlExcel8」という
システム定数を利用することができますが、
今回の場合は、Excel2003以前のバージョンでも動作を保証するので、
システム定数を利用せずに値を設定しています。
Excel2003以前のバージョンで作成したマクロで、新しいブックを作成する処理を実装していた場合、ユーザの環境がExcel2007以降のバージョンに変更になった際には、上記の問題が必ず発生します。
これは、
「新しいブックを作成する」というマクロについての話のようですね…。
ですが、参考になりました。
ご回答、どうもありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- Excel(エクセル) エクセルのマクロの有効について 4 2023/08/03 11:40
- Excel(エクセル) 記録マクロのみでできますか? 7 2022/08/07 20:38
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) エクセルで保存時に全部のシートの最終行をコピーして数値で貼り付けたい 3 2023/08/14 15:49
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロ ファイル名が変わ...
-
【マクロ】宣言は、何のために...
-
Word用のマクロが急に働かなく...
-
個人用マクロブックについて
-
アクセスでファイルを開いたと...
-
EXCELページ閲覧時のカウントア...
-
エクセルマクロが海外PCで開けない
-
セキュリティの警告
-
Wordファイルから別Wordファイ...
-
VBA マクロ実行時エラー’1004Ra...
-
新旧エクセル、マクロは互換不可?
-
エクセルファイルを自身のファ...
-
excelのマクロ実行でブロックさ...
-
EXCELの動きが遅い
-
openofficeのエラー
-
アクセス→エクセル エクスポート
-
【Word2007】ヘッダーを参照す...
-
If wsh5.Cells(i, "A") <> "" Then
-
エクセル2003 マクロのセキュ...
-
マクロが使えるExcelViewer
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAを一度起動するとずっと出て...
-
コピーしたファイルのマクロを...
-
エクセル終了時の保存確認メッ...
-
昨日まで動いていたエクセルの...
-
VBA マクロ実行時エラー’1004Ra...
-
excelファイルに使われているVB...
-
Excelが勝手にシート移動してし...
-
別のパソコンでエクセルのマク...
-
【マクロ】エラーが発生⇒実行時...
-
EXCEL マクロ クリップボードク...
-
マクロを消すマクロは不可能?
-
Excelマクロ ファイル名が変わ...
-
excelが別プロセスで起動してし...
-
アクセスでファイルを開いたと...
-
エクセル2013vbaで、見えない名...
-
エクセルファイルを自身のファ...
-
excelのマクロ実行でブロックさ...
-
エクセルマクロ実行中に別ファ...
-
マクロを設定したのに、拡張子...
-
マクロでマクロを削除する
おすすめ情報