CELF、RPA、エクセルによる業務改善記録

CELF、RPA、エクセルをより多くの方に便利に使っていただきたい!!

エクセルマクロVBA 戻り値 超便利なFunctionプロシージャ!!

プログラムを実行した結果、呼び出し元に返ってくる値のことを「戻り値」といいます。

関数は基本的に戻り値を返すプログラムです。

エクセルVBAでは、戻り値を返すプログラム、Functionプロシージャを作成することができます。

 

「エクセルマクロVBA 戻り値 超便利なFunctionプロシージャ!!」

 

1.関数の戻り値

 

関数の戻り値は、「=」でプロパティや変数に格納し、利用します。

 

(1)日付をセルに入力したい

 

指定した「年」「月」「日」のシリアル値を、セル「B2」に入力します。

シリアル値はDate関数の戻り値です。

 

Sub sample()

 Worksheets(1).Range("B2").value = DateSerial(2020,4,20)

End Sub

 

※DateSerial関数

引数に指定した「年」「月」「日」を、日付を表すシリアル値に返します。

シリアル値 = DateSerial(year , month , day)

 

2.Functionプロシージャ

 

エクセルVBAでは、戻り値を返すプロシージャを作成することができます。

Functionプロシージャは、ほかのプロシージャ内で使用したり、セルに入力して関数と同じように使用したりすることもできます。

 

Function name[(arglist)][AS type]

  statements

name = expression

End Function

 

(1)Functionプロシージャをワークシートで使用したい

 

引数に指定した2つの数値の合計を出すFunctionプロシージャを作成し、ワークシートで使用します。

 

VBAの記述

 

Function goukei(arg1 As Long, arg2 As Long) As Long
goukei = arg1 + arg2

End Function

 

②エクセル内に数式を入力

 

=goukei(A1,A2)

 

③動作確認

 

VBA記述画面

f:id:miulovininy:20200420124538p:plain

エクセルマクロVBA Functionプロシージャ

 

・エクセルシート画面

f:id:miulovininy:20200420125421p:plain

エクセルマクロ Function
(2)Functionプロシージャをプロシージャ内で使用したい

 

引数に指定した3つの数値の合計を計算するFunctionプロシージャgoukeiを、プロシージャ内で使用します。

 

VBAの記述

 

Sub sample()
MsgBox goukei ( Rage("A1") , Range("A2"))

End Sub

 

②動作確認

VBA記述画面

f:id:miulovininy:20200420133809p:plain

エクセルVBA Functionプロシージャ

・エクセルシート画面

f:id:miulovininy:20200420133847p:plain

エクセルVBA Functionプロシージャ

 

3.プロパティの値

 

プロパティには値を取得、設定できるものと、取得しかできないものがあります。

プロパティの値は、セルに入力したり、メッセージボックスに表すことができます。

 

(1)A列の列幅を表示したい

 

A列からC列の列幅を各列の1行目に入力します。

 

Sub sample()

 Range("A1").Value=Colums(1).With

 Range("A2").Value=Colums(2).With

 Range("A3").Value=Colums(3).With

End sub