
お世話になっております。
excel2008年以降用に以下の形でPDF書き出しをしたいと思っています。
しかしながら、excel2003でこのマクロを実行すると、処理をとおっていないのに、
マクロを使用するだけで、コードエラーになります。
希望としては、excel2003,2008両方とも、処理Aを流し、excel2008以降のときだけ、
if excel2008年以降ならの箇所を通したいのですが、
excel2003ですと、処理が通る云々ではなく、マクロ事態を走らせることができません。
※実行するとコードエラーになる。
どのようにすれば、excel2003の時に、コードエラーがでなくなるでしょうか?
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
処理A
if excel2008年以降なら
fileName = o_folder & "\" & g_o_file & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, fileName:=fileName
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
何卒よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
こんにちは。
excel2008 というのは、Mac のこと?
そうでなければ、Excel 2007 からですよね。それで、その違いは、VBのバージョンが違うから、それを、Directive IF で区分けすれば済みますね。
使えるものは、VB6/VBA6/VBA7(2007を除外)
Sub Test()
#If VB6 Then
MsgBox "古いコード"
#Else
MsgBox "新しいコード"
Filename = ThisWorkbook.FullName
'' ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Filename
#End If
End Sub
そうでなければ、古典的ですが、
i = Val(Application.Version)
で取ればよいです。
If Application.Version >= 12 Then 'これは、古いバージョンでエラーが発生しますので、Valで囲います。
Excel2003の場合→11
Excel2007の場合→12
これで、判定させます。
No.1
- 回答日時:
エラーが出るのが正しいと思うんだけど、
何でこういう抜け道というか動作に一貫性がないんだ、VBAは!
https://www.pcreview.co.uk/threads/compiling-err …
#紹介はしたけど、こういうの使わせたくないのが俺の本音
#我慢して使うとしても、後に当該コード読んで修正する側のために、何のためにわざわざ変数に代入しているのかコメントで解説しておくこと!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
【マクロ】エラー【#DIV/0!】が...
-
VBAがブレークモードになっ...
-
ADODB.Streamを使用してUTF-8を...
-
EXCEL VBAマクロ中断でデバッグ...
-
カーソルオープンでエラー(ORA...
-
なぜエラーになるのでしょうか...
-
AccessVBAでExcelを起動し、罫...
-
エクセルでURLに特定文字が含ま...
-
Debug.exe実行時にWinMainCRTSt...
-
VBからAccessへの接続でエラー
-
Invalid procedure call or arg...
-
ACCESSのエラーで困っています
-
エクセルエラー13型が一致しま...
-
エクセルVBA、フリーフォームで...
-
psapi.dllのGetModuleBaseName...
-
トランスポートレベルのエラー
-
Excelの条件式について
-
【VBA】ボタンに登録したマクロ...
-
VB2010 CreateMailslot失敗
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
【マクロ】エラー【#DIV/0!】が...
-
実行時エラー -'-2147417848
-
実行時エラー3001「引数が間違...
-
実行時エラー48発生時のDLL特定...
-
【Excel VBA】マクロをボタンに...
-
マクロについて教えてください...
-
なぜこんな初歩的なVBAのIf文で...
-
VB6+SQL サーバー 2000 で 実行...
-
OLEDB.NETで接続できない
-
EXCEL/VBAで、自分のPCだけエラ...
-
ExcelVBA Range クラスの Page...
-
Invalid procedure call or arg...
-
VBAでのエラー
-
AccessVBAでExcelを起動し、罫...
-
[Delphi] データセットは閉じて...
-
VBAで実行時エラー'424' オブジ...
-
なぜエラーになるのでしょうか...
-
ADODB.Streamを使用してUTF-8を...
おすすめ情報