ちーたけさんへ このX関数において変数Bの型が未確定(Bへの代入処理が行われていない)なので実行するとType mismatchエラーが発生すると思います。 X(12)として戻り値が23になるようにするならば「X=B*2-1」の部分は「B=A*2-1」になりますね。 恐らく上記の私のコメントにおいて「この場合は戻り値であるBも引数Aによって型が決まります。」という部分の書き方が悪かったのかもしれませんが「この場合」というのは「関数内で引数Aを用いてBへの代入処理を常に行っている場合」にはAが数値変数の時は自動的にBも数値変数になるという意味です。 次のコメントにおいて書いている「常にBへの代入が行われるとは限らない場合」の対比としてあえてそのような書き方をしています。