お世話になっております。
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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAがブレークモードになっ...
-
Invalid procedure call or arg...
-
実行時エラー 438になった時の...
-
なぜこんな初歩的なVBAのIf文で...
-
実行時エラー3001「引数が間違...
-
アクセス 実行時エラー3265
-
マクロについて教えてください...
-
ASP.NET OleDbConnectionが定義...
-
エクセルエラー13型が一致しま...
-
VBS実行時エラー オブジェクト...
-
VB6+SQL サーバー 2000 で 実行...
-
EOFError: EOF when reading a ...
-
VBAにて計算式をセルへ代入でき...
-
ExcelVBAのFindFirstエラ...
-
「コンパイルエラー:プロシー...
-
VBAで、定数式が必要ですのエラ...
-
Excel2019 ワークシートのコピ...
-
チェックボックスをオンにする...
-
EXCEL/VBAで、自分のPCだけエラ...
-
「実行時エラー3001」のポップ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
VBAがブレークモードになっ...
-
なぜこんな初歩的なVBAのIf文で...
-
【Excel VBA】マクロをボタンに...
-
VBSで変数の宣言はできないので...
-
VBS実行時エラー オブジェクト...
-
実行時エラー3001「引数が間違...
-
ExcelVBA Range クラスの Page...
-
ExcelVBAで、ユーザー定義型は...
-
EXCEL VBAマクロ中断でデバッグ...
-
マクロについて教えてください...
-
プロシージャ名の取得
-
ADODB.Streamを使用してUTF-8を...
-
実行時エラー -'-2147417848
-
Outlook.ApplicationをCreateOb...
-
VBAでのエラー
-
なぜエラーになるのでしょうか...
-
VBAのコードがエラーになっ...
-
[Delphi] データセットは閉じて...
おすすめ情報