2022-01-27 VBA ステートメントと組み込み関数

2
ほえほえ@スプシマン @hoehoe1234

ステートメントをTLでみました。たぶん「[MS-VBAL].pdf」で検索するとよいとおもいます。VBAでは組み込み関数とステートメントが似ているのでわかりにくいですね。この2つの違いはなんでしょうか?

2022-01-18 19:05:43
ほえほえ@スプシマン @hoehoe1234

たぶんですが、ステートメントは言語仕様の一部なんですね。IF文とかWhile文はそれ自体が関数とはかけ離れているのでわかりやすいですね。でもそうでないステートメントもたくさんあります。上記で検索して確認してみてください。

2022-01-18 19:07:15
ほえほえ@スプシマン @hoehoe1234

違いは、ステートメントは構文を構成するので、関数の呼び出しルールに縛られないですね。あくまでもVBランタイムがコードを解析して実行コードを生成するための構文の一部です。これに対して組み込み関数は「関数として」呼び出されているはずです。

2022-01-18 19:08:28
ほえほえ@スプシマン @hoehoe1234

もちろん最終的には、内部的にVBランタイム内で何らかの関数が呼ばれるのでしょうが、コード上はあくまでも「構文の一部、文法の一部」なんですね。これには関数呼び出し規約が適用されません。なぜなら構文を解析して実行コードを作るときの入力テキストだからです。For構文相当の関数を作れない

2022-01-18 19:10:24
ほえほえ@スプシマン @hoehoe1234

ことからも明らかだとおもいます。では実際になにがステートメントかは先程のpdf文書を「Statement」で検索すると列挙されています。組み込み関数と思っていたものがステートメントだったりするんですね。面白いです。

2022-01-18 19:11:34