[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『functionプロシージャについて』(八家)
お世話になっております。
Sub test()
Dim i As Long For i = 2 To 5 Cells(i, 2).Value = tax(Cells(i, 1).Value) Next End Sub
Function tax(Num As Long) As Long
Num = Cells(i, 1).Value '...★ tax = Num * 1.05 End Function
以下のファンクションを使って、A列に税引き前の価格(手入力)
B列に税込み価格を表示させたいと思っていますが、
function プロシージャがいまいちわかりません
★のコードがあればわかるのですが、
『実行時エラー1004 アプリケーション定義またはオブジェクト定義のエラーです』と表示されます。
★のコードがなければうまくいきます。
functionプロシージャは引数が自動的に紐づけられていると考えていいのでしょうか・・?
< 使用 Excel:Excel2019、使用 OS:Windows10 >
>functionプロシージャは引数が自動的に紐づけられていると考えていいのでしょうか・・? そのとおりです。
Sub test() Dim i As Long For i = 2 To 5 Cells(i, 2).Value = tax(Cells(i, 1).Value) '(1) Next End Sub
Function tax(Num As Long) As Long '(2) tax = Num * 1.05 End Function
・(2)のNumを関数taxの仮引数(かりひきすう)、 ・(1)のCells(i, 1).Valueを関数taxの実引数(じつひきすう)と言います。
Functionプロシージャは、仮引数をもとになんらかの返り値を返すルールを定めたものです。
実引数に実際の値を指定して、Functionプロシージャを呼ぶことで、 それが仮引数に渡されて計算され、計算結果が結果として返ってくる、という仕組みです。
コード作成上のポイントは、 (a)Functionプロシージャの名称("tax")と同じものに、返すべきものを入れる点です。 tax = Num * 1.05 ↑ ここはtax以外は不可。returnとかansとか独自色を出してはダメです。
(b)また、仮引数と実引数は型が一致していることが必要です。
てなことはVBAの基本書には書いてあるはずなので、お手元の書籍を調べて見てください。 手元になければ購入してください。ネットだけで泳いでいけるような簡単なものではありません。 また、ネットではどうしても視点が偏ります。 書籍であれば、必要なことは網羅されています(いるはずです)。 (γ) 2022/06/23(木) 23:20
(γ) 2022/06/23(木) 23:23
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.