[[20140420074904]] 『Functionプロシージャについて』(CDG) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Functionプロシージャについて』(CDG)

マクロ初心者・学習中です。
A列に税抜金額が記入されていて、B列に税込金額を
返すfunctionプロシージャについて教えて下さい。
functionプロシージャにある「num」は
なぜ「A列の税抜金額」だとわかるのですが?
どこにもA列の値を参照するっていう
記述がないように思うのですが・・。
よろしくお願いします。

Sub sample()

    Dim i As Long
    For i = 2 To 5
        Cells(i, 2) = Tax(Cells(i, 1))
    Next
End Sub

Function tax(num As Long) As Long

    Tax = num * 1.05
End Fuction

< 使用 Excel:Excel2003、使用 OS:WindowsXP >


Functionプロシージャでは、列を限定していません。
どの列でも使える式になっています。

Cells(i, 2)がB列
Cells(i, 1)がA列

という意味だと思います。

(マナ) 2014/04/20(日) 08:15


ありがとうございます。
TaxがA列を参照しているので、Taxの引数であるNumは
A列を参照するということ・・という
理解でいいのでしょうか?

すごくとんちんかんな質問をしているような気がしますが。
(CDG) 2014/04/20(日) 08:33


お互いに伝えようとしていることが
相手にうまく届いていないかもしれませんが、
たぶん、その理解でよいです。

 Subプロシージャの中で実際につかうときに、
 どの列か指定しています。

 今回のは、別の書き方をすると

 Sub sample2()
    Range("B2").Value = Tax(Range("A2").Value)
    Range("B3").Value = Tax(Range("A3").Value)
    Range("B4").Value = Tax(Range("A4").Value)
    Range("B5").Value = Tax(Range("A5").Value)
 End Sub

 他の列にしたい場合は、こんな感じ。

 Sub sample3()
    Range("C2").Value = Tax(Range("D2").Value)
    Range("C3").Value = Tax(Range("D3").Value)
    Range("C4").Value = Tax(Range("D4").Value)
    Range("C5").Value = Tax(Range("D5").Value)
 End Sub

(マナ) 2014/04/20(日) 08:52


マナ様

ありがとうございますっ!!!

まだ勉強不足でうまく説明できなくて(涙)

(CDG) 2014/04/20(日) 09:12


 解決かもしれないけど、補足(?)で。

 > functionプロシージャにある「num」は 
 > なぜ「A列の税抜金額」だとわかるのですが? 
 > どこにもA列の値を参照するっていう 
 > 記述がないように思うのですが・・。

 >        Cells(i, 2) = Tax(Cells(i, 1))
 は、正しくは
        Cells(i, 2).Value = Tax(Cells(i, 1).Value)
 です。つまり税込金額をtax()関数で得るためには、列情報やセルアドレス情報は必要なく、
 必要なのは (税抜金額という)数値 だけなんです。

 その関数は 
       Cells(i, 2).Value = Tax(4800)  '4800円の税込み価格は?
 のようにも使えます。
(kanabun) 2014/04/20(日) 10:31

 ↓同じ方かな。。。?
[[20140406105448]] 『Functionプロシージャについて』(SFO)

 追加の書き込みもありますので、確認してもらえると良いかもしれません。
  
(HANA) 2014/04/21(月) 09:26

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.