• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CalcとExcelをマクロ中で判断 #if ~)

CalcとExcelをマクロ中で判断する方法はあるか?

このQ&Aのポイント
  • Calc(LibreOffice)かExcelかをマクロ内で判断する方法について質問しています。
  • CalcとExcelをマクロ内で#if ~ #endif を利用して判断する方法を試したが、適切な方法か不安です。
  • CalcとExcelの定数を利用して#if ~ #endif を使い、判断する方法を探していますが見つかりませんでした。

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

  • ベストアンサー
回答No.1

>calc は1(上)側、excelは2(下)側が実行されます。  Excel vbaでは、#ifで使える変数は ・#Constディレクティブで定義したコンパイル変数 ・「VBA7」や「Win64」などの定義済みコンパイル変数 だけです。 それ以外の定義済み変数を使用したり、未定義の変数を指定すると、すべて「False」と扱われます。 Calc(LibreOffice)では、この辺りの仕様が明確になってないので、Excel vbaとは異なる動作をする可能性があります。

narmiert
質問者

お礼

ありがとうございます。 大変参考になりました。 32bit/64bit 共に、Win32 = 1 のようなので、 #If Win32 = 0 Then ● LibreOffice - CALC 時 #Else ● Excel 時 #End If と判断するようにしました。 尚、VBE では「条件付きコンパイル引数」を設定できますので、ここで MACRO_MODE = 1 などと定義する方法もありました。 CALC 側でのみ default で定義されている定数があれば、一番よかったのですが、 今回は、ご教授頂いた "条件付きコンパイル定数" の「Win32」を使用するようにしたいと思います。

関連するQ&A

専門家に質問してみよう