【Excel VBA】If Elseとは違う条件式(Select Case)について
エンジニアのIMMRです。Excel VBAの条件式には、以前に説明したExcel VBA 条件式(If Else)とこれから説明するSelect Caseの二つあります。1.従来のIf Else条件式If Elseは条件に合った時は処理Aを、条件に合わなかったら処理Bを実行します。では、下記のようなデータがあり、複数の条件があるとします。If Elseを使用して作成すると2種類の方法が浮かぶと思
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
皆さんこんにちは、エンジニアのIMMRです。
例えば、下記ブックがあるとします。
図1 ブック60
この売上表に表示されているC列の個数の合計を出すとしたらどのように行いますか。
For Nextを使って、C列の値を合計しますか。セル(C3)の値+セル(C4)の値+・・・
ちょっと、待って下さい。合計を出すだけなら、下記のようにVBAではなく、ワークシート関数で一発ですよね。
図2 ブック60(ワークシート関数)
ワークシート関数で行ったほうが簡単だし、と思う時がありますが、
VBAではワークシート関数の結果の値を取得することができます。
ワークシート関数の結果を取得するには
「WorksheetFunction」を使います。そして、ワークシート関数で記載するような内容を記載します。
WorksheetFunction.「ワークシート関数」
「ワークシート関数」の箇所には、実際にワークシート関数で行うように名前(何をするのか)と範囲が必要になります。
SUM(C3:C8)
のような感じです。
ですがVBAで記載する時は、若干異なります。
Sum(Range("C3:C8"))
ほとんどのワークシート関数はこのような方法で行うことができるのですが、
全てを行うことは出来ません。
それは、ワークシート関数・VBAの関数で両方にあるものです。 例えば、Left、Right等
ではサンプルプログラムを作成していきます。
使用するのは図1 ブック60と同じです。
図3 ブック60(ワークシート関数)
C列の3~8までの個数の合計を取得します。
ワークシート関数では「SUM(C3:C8)」です。
サンプルプログラム
Sub test1()
MsgBox WorksheetFunction.Sum(Range("C3:C8"))
End Sub
ワークシート関数で取得した値をメッセージボックスで表示する方法としています。
では、プログラムを実行します。下記が実行結果です。
図4 ブック60(実行結果)
赤枠が今回プログラムの実行結果です。
青枠がワークシート関数の実行結果です。
赤枠の数値、青枠の数値同じであることから
VBAでワークシート関数の結果を取得していることがわかります。
おまけでもう一つワークシート関数で試してみたいと思います。
図3 ブック60(ワークシート関数)で使用したシート「売上」です。
ここからもう一つのシート「コード一覧」を使います。
図5 ブック60(シート:コード一覧)
図3 ブック60(ワークシート関数)のシート「売上」セル(B3)に記載していある”AAA1”から
VLookup関数を使って、
図5 ブック60(シート:コード一覧)シート「コード一覧」で商品コード”AAA1”に対する商品名を取得したいと思います。
ちなみにワークシート関数で記載すると下記のようになります。
「VLOOKUP(B3,コード一覧!A2:B9,2,FALSE)」
サンプルプログラム②
Sub test2()
MsgBox WorksheetFunction.VLookup(Range("B3"), Sheets(2).Range("A1:B9"), 2, False)
End Sub
ではサンプルプログラムを実行します。
図6 ブック60(おまけ実行結果)
赤枠が今回プログラムの実行結果です。
青枠がワークシート関数の実行結果です。
今回も赤枠の数値、青枠の同じ文字であることから
VBAでワークシート関数の結果を取得していることがわかります。
VBAからワークシート関数の結果を呼び出すことができました。
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート