public function function_name(args as string) as string
publicはアクセス定義です。public は、VBA プロジェクト全体でアクセス可能であることを意味します
functionはそれが関数であることを意味します (何かを返すことになっていることを意味します)
function_nameは関数の名前です (1 またはアンダースコアで始めることはできません)
argsは、関数の本体内で使用されるローカル パラメータ名です。
args as Stringは、関数が が型args
であることを期待していることを示しますString
...) StringString
は、関数がデータ型を返すことを示します。したがって、文字列型の変数をディメンション化した場合は、関数を使用してそれに値を割り当てることができます。
返される型を明示的に指定しない標準 (デフォルト) 宣言は、Variant
型を指定せずに変数を宣言するのと同じです。
Dim aVariable
と同等です
Dim aVariable as Variant
Variant
がデフォルトのタイプであるためです。
そのため、as Variant
別のタイプが指定されていない限り、常に存在します。また、これはデフォルトであるため、明示的にコーディングする必要はありません。
Range("A1").Value
これはandに似ていますが、 はオブジェクトのデフォルト プロパティであるRange("A1")
ため、どちらも同じです。.Value
Range
ここで何が起こるかというと、コンパイラは内部に入る値を評価し、aVariable
その型を変数に割り当てます。
あなたが持っているとしましょう
Sub Main()
Dim varVariable
Dim strVariable As String
varVariable = "hello world"
strVariable = "hello world"
MsgBox "varVariable is of " & TypeName(varVariable) & " type" & vbCrLf & _
"strVariable is of " & TypeName(strVariable) & " type"
End Sub
私が今言ったように、両方ともString
タイプです
たとえばC#にどれだけ精通しているかはわかりませんが、C#では、アクセス修飾子の直後に関数の戻り値の型を宣言します.
public string myFunction(string args)
したがって、VB/VBA では、2 番目はC#の最初( public の直後as String
)と同じです。string
C# ではreturn
キーワードを使用しますが、VBA ではreturn
キーワードを function nameに置き換えます。したがって、VBA では非常に基本的なサンプル
Public Function ReturnFirst3Characters(args As String) As String
ReturnFirst3Characters = IIf(Len(args) > 2, Left(args, 3), args)
End Function
関数は、渡した文字列の最初の 3 文字を返します (文字列が 3 文字より長い場合、そうでない場合は、関数に渡した文字列を返します) 。