みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Get_○○っどういう意味?「ExelVBA」

初心者向けのVBAの本を読んでいるのですが、Get_の説明がなく、あるモジュールに書いてあった次の2つがわかりませんでした。

(1)「税込価格=Get_税込価格(税抜き価格)」とsubプロシージャ中に書いてあるのですが、
どういう意味でしょうか?

(2)
Function Get_税込価格(a As Integer)As Integer
Dim 税率 As Double

税率=0.05
Get_税込価格=a*(1+税率)
a=100

End Function

と(1)のSubプロシージャの下に書いてあったのですが、
「Get_税込価格=a*(1+税率)」とはどういう意味でしょうか?


よろしくお願いいたします。

投稿日時 - 2011-06-07 13:38:06

QNo.6792459

困ってます

質問者が選んだベストアンサー

プログラムを組んだ人が勝手に、ユーザー関数につけた名前だよ。気にするはことなく、意味を詮索する必要なし。Set_でもCalc_でもありえるのではとおもう。中身は「計算させる」といった意味か。「税込価格計算後」という名も付ける人がいてもおかしくはない。
Function()はVBAの常識でしょう。まだ作ったことがないのかな。
ーー
連想で
http://officetanaka.net/excel/vba/statement/PropertyGet.htm
に載っているようなGetなら、質問も出そうだが。

投稿日時 - 2011-06-07 19:40:57

お礼

遅くなりましたが、ありがとうございます。

投稿日時 - 2011-10-22 21:10:57

ANo.6

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.5

schulerさん こんにちは。

「初心者向けのVBAの本」とのことですが、悪い例題なのでしょうか?
ちょっと本題とずれてしまいますが、以下の問題点があるのを認識してください。
※EXCEL2003のVBAだとして説明します。

・Function Get_税込価格(a As Integer)As Integer
 税込価格、税抜き価格共にInteger(2バイト整数)なので+32767~-32768しか指定できません。
 よってそれ以上(5万とか)だとエラーを起こします。
 IntegerではなくLongに変更した方が良いかと思います。

・a=100
 呼び出した「税抜き価格」の変数は100になってしまいます。
 例)
    Dim 税抜き価格 as Integer
    Dim 税込み価格 as Integer
    税抜き価格=5000
    税込み価格=Get_税込価格(税抜き価格)
 結果)
    税抜き価格は100
    税込み価格は5250
    になります。

・税率の指定もちょっと気になります。
 通常0.05は変数にしないで定数で指定すると思います。
 
 Dim 税率 As Double
 税率=0.05
 Get_税込価格=a*(1+税率)
      ↓
 Const 税率 As Double = 0.05
 Get_税込価格=a*(1+税率)

余計なお世話だったかも知れませんが、VBAの変数、関数等々基本をしっかり覚えて、バグ(プログラムミス)を出さないようにしてください。

投稿日時 - 2011-06-07 16:17:03

お礼

ありがとうございます。

>a=100
 呼び出した「税抜き価格」の変数は100になってしまいます。
 例)

ここがわかりませんでした。
a=税抜き価格、みたいな式がないのに、どこでaと税抜き価格がリンクしたのか不明です。

投稿日時 - 2011-06-15 10:28:46

ANo.4

「Get_税込価格()」はNo1~3さんが説明されているようにFunctionで定義されている関数名です。
で、関数名の先頭の「Get_」は英語で「得る」「取得する」という意味があります。プログラムになれた人はこういう書き方をよくします。「Get_税込価格()」と定義することで関数名を見ただけで税込価格を返す関数だとすぐ解ります。
「Get_xxxx」の反対の意味で「Set_xxxxx」という書き方もよくします。

投稿日時 - 2011-06-07 14:36:04

お礼

ありがとうございます。

投稿日時 - 2011-06-15 10:23:59

ANo.3

>1.

Get_税込価格:"Get_税込価格"という名前のFunctionプロシージャの呼び出し
(税抜き価格):Functionプロシージャに"税抜き価格"という変数をパラメータとして渡す
税込価格=Get_税込価格(税抜き価格):Functionプロシージャの実行後に返ってきた数値を"税込価格"という変数に入れる

>2.

税率=0.05:現在の消費税率を"税率"という変数に入れる
a*(1+税率):aという変数はパラメータとして渡された"税抜き価格"なので、税抜き価格×(1+0.05)という計算、つまりは税込価格を計算している
Get_税込価格=a*(1+税率):Functionプロシージャの戻り値に税込価格を入れている
a=100:何の意味も無い処理、有っても無くても結果は変わらない


とりあえず、SubプロシージャとFunctionプロシージャについての説明を読んだ方が良いかな。
あとは、プログラムを読むときはどの変数にどんなデータが入っているのかを確認しながらじゃないと内容が理解出来ませんよ。

投稿日時 - 2011-06-07 14:05:59

お礼

ありがとうございます。
遅くなってしまいましたが、以下の点が理解できませんでした。

>a*(1+税率):aという変数はパラメータとして渡された"税抜き価格"なので、税抜き価格×(1+0.05)という計算、つまりは税込価格を計算している

aはどこで税抜き価格として扱われることになったのでしょうか?


>a=100:何の意味も無い処理、有っても無くても結果は変わらない

aに100を代入するという意味があるのではないですか?

遅くなりましたが、お願いいたします。

投稿日時 - 2011-06-15 10:23:34

ANo.2

>税率=0.05
>Get_税込価格=a*(1+税率)

 税率が・・・  0.05
   これに 1 を加えたものを 元値に掛け算しているので、
  消費税込 の 価格を 

 Get_税込価格 に代入しています。

投稿日時 - 2011-06-07 13:51:54

お礼

ありがとうございます。

投稿日時 - 2011-06-15 10:17:42

ANo.1

Function Get_税込価格(a As Integer)As Integer


「Get_税込価格」の部分は、ユーザーが任意で設定する部分で、「関数名」です。
セルに「=SUM(A1:A10)」と入れた場合の「SUM」に相当する部分です。

「Get_税込価格=a*(1+税率)」は、「Get_税込価格」という関数の答えを「a*(1+税率)」の計算結果としますよ、という意味です。ちなみに、「税率」は変数として使っているだけです。

投稿日時 - 2011-06-07 13:49:26

お礼

ありがとうございます。

投稿日時 - 2011-06-15 10:16:53

あなたにオススメの質問