pickup

Functionは、ユーザー定義関数等でよく、紹介されます。

戻り値が、あるとかないとか、クラスモジュールほどではないですが、難しいですよね。

今回は、Functionであそんでみましょう。

目次

スポンサーリンク

Functionを勉強するとどうなる?

 

こんにちは。伊川(@naonaoke)です。

Functionを覚えるよりも、Callステートメントを知っているから大丈夫なんてことを、初心者の頃は思っていました。

VBAの醍醐味は、いかに、少ないコードで、大量の処理をするか?

このことを意識して、コードを書いています。

いい曲は、ギター1本でできるのさ

これは、桑田佳祐さんの言葉ですが、いいコードは、8行以上、15行未満で記載できます。

つまり、このスキルを取得するには、Functionを勉強するのが一番いいでしょう。

適当なコードが見つからなかったので、NETで探しました。

https://www.sejuku.net/blog/28904

 

このページのコードを参考にしています。

スポンサーリンク

このブログはこんな人にお勧め

 

今回のテーマ
  • Excelで、VBAを勉強している人
  • ExcelVBAで、Functionを勉強している人
  • VBAのコードをできるだけ短くしたい人

 

このブログを、読み終わるころには・・・・

 

このブログの結論

NETでFunctionを検索しても、結構、難しく、わかりにくいと思います。

そんな時は、できるだけ、カンタンなコードを、少しアレンジしてみましょう。

その繰り返しは、結構、勉強になります。

スポンサーリンク

Function

 

消費税でもなく、合否判定でもなく、NETでは、紹介していないような内容を紹介します。

と言っても、すでにパクリなんですけどね

 

今回は、完成形というよりは、勉強方法も含めて紹介します。

 

F(x)=2x+1、このような数式を、だれもが勉強したと思います。

F(X)は、関数のニックネームですね。

Functionは、関数という意味で、何かの値が決まれば、何かの値が決まるということです。

この考え方は、VBAにも同じことが言えます。

そのように考えながら進めていきます。

Functionを勉強する 作業手順 その1 引数無、戻り値ありの場合

 

Function funca() As String

funca = “Hello VBA!”

End Function

funcaの、戻り値のデータ型は、String型です。

戻り値は、Hello VBA!”です。

これだけでは面白くないでの、ループを合わせます。

 

 

ここまで大丈夫ですね。

Functionを勉強する 作業手順 その2 引数が1つの場合

 

引数が1つの場合はプロシージャ名の後の「()」の中にByVal句を使って引数名とそのデータ型を指定します。

Function func2_1(ByVal num As Integer) As Integer

Dim square As Integer

square = num ^ 2

func2_1 = square

End Function

 

呼び出す場合は、下記のようになります。

参照渡し、値渡しは、下記の記事を参照してください。

ここで、私が勉強していた時なんですが、Functionを先に書くのか、Subを先に書くのか、迷ったことがあります。

正解はどっちでもいいですね。

やりたいことをFunction無で記載してみます。

同じ結果になります。

勉強していた時は、このコードについて、Functionを使って変形します。

Functionから、普通のコードへ変形します。

何度か繰り返すと、普通にできるようになります。

Functionを勉強する 作業手順 その3 引数が複数の場合

MsgBoxで表示しても面白くないので、一部変更します。
ここのコードは、ByValと、ByRef の使い方がポイントです。

変数sumは、足し算の合計を計算していますので、参照渡しなら、答えは0になります。

ここは、変数の値を書き換える必要があります。

このコードの素晴らしいところは、この点です。

参照渡しか、値渡しなのは、初心者には、なかなか理解できません。

言葉は、2つしかないのに、イメージがつきませんよね?

足し算の合計は、変わらないから、Functionの計算結果を、変えずに親プロシージャへ渡します。

ここがポイント

ここがポイント
Function8.png
コードを短くするには、Functionと、クラスモジュールは必須でしょう。
ご視聴者様から、クラスモジュールは面白いというコメントもいただきました。
すごく小さな喜びかもしれませんが、この喜びが重要なのです。
最初からはできません。
でも、脳裏で、Functionを考えることが重要なのです。
動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

 

先は、まだあるのですが、結構長くなりましたので、一旦ここで終わります。

この続きは次回にします。

Functionをマスターしましょう。

今回も最後まで読んでいただきありがとうございました。

今回のサンプルファイルは、No260です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

初心者でも、すぐに、集計、プレゼンができるようになる。書籍だけの勉強は今すぐやめよう!
電子書籍で、AMAZON1位
専門のスタッフが、電話、チャットで完全サポート
大手パソコンスクールよりも、圧倒的な低価格
スポンサーリンク

Twitterでフォローしよう

おすすめの記事