Functionプロシージャーを使ってみる【Functionプロシージャーとは?】

ロゴ



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

Functionプロシージャーについて1【Functionプロシージャーとは?】

おそらく我流でVBAを学んだ人はFunctionプロシージャーを知らない方も多いのではないでしょうか?
皆さんがマクロ/VBAを作成する場合多く目にするのは【Sub マクロ名()】から始まって【End Sub】で終わる【Subプロシージャー】を目にしていることかと思います。

そもそもFunctionとはどういう意味か?Function=関数という意味です。感覚として【自分の好きな関数を作成できる】というような考えでいいんじゃないかと考えています。

今日はFunctionの使い方を解説していきます。

Functionプロシージャーとは?

今回ご紹介するFunctionプロシージャーは【Function マクロ名()】から始まり【End Function】で終わります。

SubプロシージャーとFunctionプロシージャーの違いは【実行結果を呼び出し元に返す】と言われています。

ですが、今はそんなこと考える必要はありません。今回はどのように使うのかだけ考えましょう

Functionの書式

Functionプロシージャーの書式はこのように書きます。

Function プロシージャ名(引数 As データ型) As 戻り値のデータ型
    プロシージャ名 = 戻り値
End Function

これだけだとよくわからないですよね、実際にプログラムを組んでみましょう。

下記のような表の消費税計算をするプログラムを作成していきます。

 

Sub Sample()

 Dim i As Long
 Dim row As Long
 
 row = Cells(Rows.Count, 1).End(xlUp).row
 For i = 2 To row
 Cells(i, 2).Value = 税計算(Cells(i, 1).Value)
 Next i

End Sub
’-----------Function--------
Function 税計算(税抜き As Long) As Long

税計算 = 税抜き * 1.08

End Function

このような形になります、解説は後にしてとりあえず実行結果を見ていきましょう。

実行結果

ちゃんと計算されましたね。では解説していきます。

Functionプロシージャーの解説

さてFunctionの使い方はこのようになりますが。上記のコードをもとに解説していきます。

まず初めにFunctionの書式から解説していきます。

Function プロシージャ名(引数 As データ型) As 戻り値のデータ型

プロシージャー名はいわば関数名です。今回は消費税計算するのでサンプルコードでは【税計算】としました。

Function 税計算(引数 As データ型) As 戻り値のデータ型

引数は呼び出し元(今回はSubプロシージャ)の値を引数として受け取ります、今回受け取る引数は税抜き金額の数値ですので引数は【税抜き】、引数のデータの型は【Long】にします。

Function 税計算(税抜きAs Long) As 戻り値のデータ型

そして戻り値のデータ型は、Subプロシージャーに返す値のデータの型です。

戻り値も税計算なので【Long】を宣言します。

※Longは四捨五入してくれる特性がありますが、もしこれをStringに変更すると結果が変わってきます。

このように小数点まで表示されました。

Function 税計算(税抜き As Long) As Long

税計算 = 税抜き * 1.08

End Function

では、計算方法を見ていきましょう。

税計算 = 税抜き * 1.08

この部分を日本語に直すと

Subプロシージャーに返す値(税計算)=Subプロシージャーから受け取った値(税抜き)×1.08

となります。

Subプロシージャーで別のプロシージャーを呼び出す場合はプロシージャー名を書いてあげればOKです。

Cells(i, 2).Value = 税計算(Cells(i, 1).Value)

書式は【税計算(引き渡し値)】となっております。

まとめ

何となくFunctionの使い方はご理解していただけましたか?今回のように簡単なプログラムだとあまりFunctionのありがたみがわかりにくいかもしれません。

今回はそれとなく使い方を理解していただければOKです、今後もう少しFunctionの使い方を掘り下げて解説していきますのでご期待ください。

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

ロゴ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です