Jose's FANTASY SPORTS!

アメリカンフットボールを中心にスポーツ好きで、カントリーギター好きのJoseによる雑記帳です。

細かい事は分からんがVBAがやりたい-16-

2012年07月12日 23時00分00秒 | いきなりVBA(Excel)
[ いきなりVBA ]
いきなりVBA 第1回 LOG
突如再開、このコーナー。
なぜなら、最近のマイブームがあるからです。それは...。

その筋の人には、とっても今さら感のある事でしょうけど、最近Excelのユーザ定義関数がマイブームです。

なるべく最小限の引数で済ませるには、どんな引数をとったら良いかな~とか考えるのが結構楽しいです。

この場で、仕事に使うような関数を紹介してもしょうがない。
(それなら、もっとためになるサイトが既に世の中にはごまんとあるので。)

~一応ユーザ定義関数の説明~
Excelユーザ定義関数
Excelには、便利な関数がいっぱいありますね。
例えば、ROUND関数
A1セルに、3.141592
と入っているとして…これを小数点2ケタで四捨五入するという関数です。
結果を表示させたいセルに、=ROUND(A1,2)とすれば、結果は3.14と表示されます。

こうして、Excelがあらかじめ用意していてくれた計算であれば、いいのですが、そうでない場合は、既存の関数を組み合わせたり、何段階かに分けて計算したりします。
または、自分で関数を作ってしまうという方法もあります。
これが、ユーザ定義関数です。
詳細は、この後。

ここは、やっぱりアメフトファンに便利な関数を自作してみましょう。
という訳で、作ってみた関数

体重換算
体重(kg)をポンド(lbs)に換算する関数っていうのがあったら、便利じゃないですか?
日本の野球選手の体重を換算して、アメフト選手の数字と比較してニヤニヤするとか、自分の体重がlbsでどれくらいになるか換算して、ニヤニヤするとか…。便利そうですね。

え~っと、ここではまずユーザ定義関数の作り方から解説しちゃいましょう。

Excelを開いたら、Alt+F11。
左側のペインを右クリックして、標準モジュールを選択。

そこに、コードを打ちこみます。

具体的に、どんなコードかはというと…。
体重換算(kg→lbs)の場合、こうです。

Function LBSconv(kg) As Long

LBSconv = kg * 2.046

End Function


簡単でしょ?
これをコピペすれば、もう立派にユーザ定義関数です。

それで、気になるのは、どうやって使うかって話でしょ>わかってますよ。

では、その画面を閉じます。
左上の×ボタンで閉じちゃっていいです。
保存とか聞かれないけど、きにしないでね。
後で、ブックを閉じる時に聞かれると思うから。(そん時に、テキト~な名前つけてね。)

Excelのワークシートに、体重(kg)を入力するセルを作ります。
ここでは、A1セルとしましょう。

B1セルに、結果を表示します。
B1セルに、=LBSconv(A1)と入力します。
Enter。

ほら、普通のExcelが用意した関数と同じように使えます。

(もちろん自作していますから、他人のPCとかでは使えません。)

一応、内容を解説。
Function  ←決まりです。従ってください。
LBSconv ←自作なので、自分でテキト~に決めて良いです。
(kg) ←引数です。これも自作なんで、テキト~に決めて良いです。
As Long ←結果のデータ型です。計算結果は数字になるので数字の型にします。数字の型には色々種類があるのですが、アメフトのlbs表記に普通小数点以下は使わないので整数型にしています。
データ型は重要で、小数点以下まで計算する場合はDouble型に、文字列型ならStringにします。あとは、True/Falseを返すBoolean型とかを覚えておけば、当面は良いんではないでしょうかね。(話がややこしくなるのでVariant型には触れない....。)

LBSconv = kg * 2.046,0
ここが、計算の内容ですね。

引数にとったkgに2.046をかけ、関数LBSconvの結果には、その計算結果値が入りますよという内容の式です。

End Function
書き方の決まりです。チームオーダーだと思って、従ってください。

こうやっておけば、先述の通り通常の関数と同じようにワークシートで使えるという訳です。
便利ですね。

という訳で、次回は身長の換算に挑戦です。

BGM♪ Fat Gal / Merle Travis
このように、体重を換算する程度のレベルだったら、何も関数を作るまでしなくてもいいんでしょうけどね。
こうやっておけば、なんか無粋な計算式を設定しなくてもいいじゃないですか。
こうやって、NFLの選手が数字上どれだけfatという事になってしまうかを関数で確認してみるのも面白いです。

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Week15 PreView :オールスタ... | トップ | 細かい事は分からんがVBAがや... »
最新の画像もっと見る

コメントを投稿

いきなりVBA(Excel)」カテゴリの最新記事