【ExcelVBA入門】SubとFunctionの違いって何?違いをイラストでわかりやすく解説!

ExcelVBA

Excel(エクセル)VBAを使っていると、まず最初に目にするプロシージャは 「Sub」 ではないでしょうか。

そして、VBAの操作に少し慣れてきたり、他の人のコードを調べたりするうちに、
「Function」 という別のプロシージャを見かけるようになると思います。

しかし、今まで「Sub」しか使ってこなかった方にとっては、
「Functionって何?」「どうやって使うの?」
と疑問に思うことも多いのではないでしょうか。

そこで今回は、そんな方にもわかりやすいように、
それぞれを呼び出した際の違い を解説していきたいと思います。

SubとFunctionのそれぞれの特長

SubとFunctionはどちらも、命令をまとめて実行するための処理のかたまりです。そのため実際の動作はどちらもほぼ同じとなりますので、混乱してしまうと思われます。
ではそれぞれの特徴はなんなのか。それは以下の通りです。

それぞれの特長

Sub   :戻り値がない
Function:戻り値を返すことができる

この特徴を見て皆さん「戻り値」ってなんだ?と思われたと思います。
言葉だけでは理解しづらいので、イラストを使って解説します。

SubとFunctionを呼び出した際の違い(イラストで解説)

では、SubプロシージャからFunctionプロシージャを呼び出す場合について確認してみましょう。
Functionプロシージャでは処理を行った結果(値)を、呼び出し元のSubプロシージャへ戻り値として返すことができます

これが、Subとの大きな違いです。
つまり、Functionは「結果を返せるプロシージャ」と覚えておくと良いでしょう。

ここまで読んでも、まだイメージがつかみにくいという方もいらっしゃるかもしれません。
そこで次に、Subプロシージャから別のSubプロシージャを呼び出した場合の動きを、イラストを使って見ていきましょう。

Subプロシージャは処理を実行するだけで、呼び出し元に戻り値を返すことはありません
その点が、Functionプロシージャとの大きな違いです。

まとめ

この記事では、SubとFunctionの違いについてご紹介しました。
読んで理解できた方も、まだ少し難しいと感じた方もいらっしゃるかもしれません。

とはいえ、プロシージャの違いを一番実感できるのは、実際に自分で使ってみることだと私は思っています。
ぜひこの機会に、Functionプロシージャを使ったコードを書いてみてください。

実際に動かしてみることで、
「ああ、そういうことか!」
と一気に理解が深まるはずです。

ぜひ使ってみてください!!

コメント

タイトルとURLをコピーしました