教育関連リンク集 | 画像・素材 | コンピュータマニュアル集 | ソフト集 | 本・情報 | 特 集 | みんなで話そう | 研究会概要 | 会員登録 | TOP |
ExcelのVBAに挑戦しよう Part2 |
Excelで表を作り自動で処理するには関数が多く使われますね。関数を覚えてしまえばほとんどのことが処理できてしまいます。でも、中には簡単な処理にもかかわらず関数で処理できない、または処理しにくいものもあります。 今回は処理に適する関数があるにもかかわらず制約によって処理しきれないものを紹介しましょう。 |
関数のネストレベルは「7」! |
ネストレベル???何じゃそりゃ??? ネストは「入れ子」とも呼ばれ、関数の内部に関数を使うことです。レベルが「7」ということは関数の中に7個の関数を使えるということです。 |
今回は成績処理をしましょう! | ||
|
1.関数で作ってみましょう! |
関数が得意の方なら、すぐ「IF関数」が思い浮かびますよね。条件分けなら「IF関数」。
”D2”セルに「IF関数」を入れて、”D3”から”D11”まで式をコピーすれば完成。 式はこんな感じでしょうか =IF(""A1"">=90,"A",IF("A1">=80,"B",IF("A1">=70,"C",IF("A1">=60,"D",IF("A1">=50,"E",IF("A1">=40,"F", IF("A1">=30,"G",IF("A1">=20,"H",IF("A1">=10,"I","J"))))))))) ちょっと待って下さい。式はあっています。しかしエラーが出てしまいます。 |
2.ネストレベルを超えたときの処理は? |
=IF("A1">=90,"A",IF("A1">=80,"B",IF("A1">=70,"C",IF("A1">=60,"D",IF("A1">=50,"E",IF("A1">=40,"F"
,IF("A1">=30,"G",IF("A1">=20,"H",IF("A1">=10,"I","J"))))))))) この式はネストレベル「7」を超えてしまっているので、式としては正しいのですがエラーになってしまうのです。 ネストレベルを超えたときにはVBAを使って処理をせざるをえません。 |
3.VBAでやってみよう | ||||
|
4.コードの解説 |
ここでの解説は多少の応用できる程度にとどめます。興味がある方はネット上に多くのVBAに関するサイトがありますので探してみて下さい。 今回は「If」を使った条件式の使い方です。基本的には以下のような使い方をします。 1)If 条件式 Then 条件にあう時に行う処理 End If 2)If 条件式 Then 条件成立の時に行う処理 Else 条件にあわない時に行う処理 End If 3)If 条件式1 Then 条件式1にあう時に行う処理 ElseIf 条件式2 Then 条件式1にあわなくかつ条件式2にあう時に行う処理 Else 条件式1,条件式2ともにあわない時に行う処理 End If |
いろいろなシートで応用してみよう! |
評価点やシートの名前行や列等の数値をいじれば自分のやりたいコードに変身するのではないかと・・・。 今回は条件分けに関数と同じ「If」を使いましたがVBAには「Select Case」という式も用意されています。 興味のあるからはインターネットで検索してみたらいかがでしょうか? 「Excel、VBA、Select Case」ですぐに見つかると思います。 ご質問等ありましたら、掲示板またはメールでお願い致します。 |