[ いきなり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という事になってしまうかを関数で確認してみるのも面白いです。
いきなり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という事になってしまうかを関数で確認してみるのも面白いです。
※コメント投稿者のブログIDはブログ作成者のみに通知されます