|
▼亜矢 さん:
おはようございます
条件付きコンパイルで検索しますと、たくさんの説明ページがありますが
VBAに限らず、様々な言語での一般論も多く、混乱されるかもしれません。
まず、我々が書いたVBAコードはコンパイラーというもので実行前に
実際に実行できるコードに変換しています。
コードに明らかな間違いがあったときに、その入力時にエラー表示されることがありますね。
コードが赤くなったり、メッセージがでたり。実行前なのに。
これは、コンパイラーが実行可能なコードに変換しようとして、
おかしいよと我々に教えてくれています。
以下の例、最初は亜矢さんも、よくご存じのコードですね。
条件を判定しながら「実行」が分岐されますね。
で、実際にコードも4行生成されます。
If ○○○ Then
○○○の処理コード ★1
Else
□□□の処理コード ★2
End If
よくにていますが、以下では If なんかの前に # がついています。
#If Win64 Then
64ビット版のコード ★3
#Else
32ビット版のコード ★4
#End If
こうしますと、目でみると、4行のコードですが、実は、実行前にVBAコンパイラーが
実行用のコードを生成する際に、64ビット版PCなら★3 だけを
32ビット版PCなら★4だけを生成してくれます。
つまり実際に生成されるコードは いずれかの 1行だけになります。
つまり、同じマクロブックを32ビット版PCでも64ビット版PCでも
いずれでも使えるということになります。
Win64 というのは 64ビット環境という意味を持つ定数です。
以下では、本件に関するAPIの記述に関して、わりあい、わかりやすく、書かれています。
www.ka-net.org/office/of30.html
|
|