記録することによって見えてくるもの

ExcelマクロでSelect~Case構文を使って経理処理

かわべ
WRITER
 
この記事を書いている人 - WRITER -
かわべ
生誕:1969年 東京 生まれ 趣味:楽器演奏(St.Bass、E.Bass)     読書(ミステリー)     映画鑑賞(学生時代、映画館でアルバイト経験あり)
<スポンサーリンク>  
 

私は、Excelマクロで条件により処理を変える記述には、IF~Then構文を使用することが多いですが、ほかにもSelect~Case構文というものがあります。

Selectcase_test_14

今日はSelect~Case構文について簡単に記載します。


<スポンサーリンク>    
 

Select~Case構文の基本

Select~Case構文は次のように記述します。

3つ(条件1、条件2、その他)の処理に分ける場合

Select Case 変数(条件の対象)

Case 条件1

(条件1を満たした場合の処理)

Case 条件2

(条件2を満たした場合の処理)

Case Else

(上記の条件を満たさなかった場合の処理)

End Select

Caceの後の条件の記述方法

Caseの後の条件は次のように記述します。

① 文字列を指定する場合

Case “こんにちは”」(「こんにちは」と一致した場合)

② 数値の多寡を指定する場合

Case Is > 1」(1より大きい数値の場合)

③ 数値で範囲を指定する場合

Case 10 To 30」(10から30の数値の場合)

 

Select~Case構文の使用例

Select~Case構文を使って、次のような固定資産の判定処理を作成してみました。

Selectcase_test_11

上のような表を用意し、金額の多寡によりC列に税務上の処理方法を表示するようなします。

(処理方法は「金額」を基準により判定しているため、実際にどの方法を適用するかは、その他の条件を検討する必要があります。)

Select~Case構文の記述

VBAでは次のような記述をしました。

Selectcase_test_12

 

① 変数の宣言

ワークシートとLong型の変数を2つ用意し変数lonYaは行数の管理に使用するため、最初の行数である「2」を代入しました。

上の画像の緑色の枠囲み。

 

② DO~Loop

2行目から6行目までを繰り返す処理を記述するため、「Do Until lonYa=7」と記述しました。

また、もう1つの変数lonAaには、Do~Loopの繰り返し処理のなかで、B列の数値を代入します。その後のSelect~Caseの記述でlonAaに代入された数値の多寡により異なる処理を実行するように記述します。

 

③ Select~Case

lonAaに代入された数値の多寡を判断し異なる処理を実行します。記述したCaseは次の3つ(1~3)です。最後のCase Else(どれにも当てはまらない場合)も含めると4つの異なる処理を実行するようになります。
(上の画像の赤色の枠囲み)

◆(1) 10万円未満の場合は、「消耗品費等」

◆(2) 10万円超20万円未満の場合は、「一括or少額(中小

特例)」

◆(3) 20万円超30万円未満の場合は、「少額(中小特例)」

◆いずれのCaseにも該当しない場合は、「固定資産」

実行すると次のとおりです。

Selectcase_test_13

 

まとめ

私はIF~Thenを多用するため、Select~Caseはあまり使いませんが、長い記述になるような場合は、複数のIF~Thenと区別するためにSelect~Caseで記述することがあります。


■□◆◇ 編集後記 ◇◆□■

しょうが湯、くず湯が恋しい季節です。気休めかもしれませんが、風邪気味の時などよく飲みます。

Pocket
このエントリーを Google ブックマーク に追加
LINEで送る

この記事を書いている人 - WRITER -
かわべ
生誕:1969年 東京 生まれ 趣味:楽器演奏(St.Bass、E.Bass)     読書(ミステリー)     映画鑑賞(学生時代、映画館でアルバイト経験あり)

報酬のお見積り

法人の顧問報酬と決算報酬を、前期の売上実績当期の売上予測でお見積もりすることができます。(※)

LINK 報酬お見積もり【法人用】 web

お名前やメールアドレスの入力は必要ありません。ウェブ上で簡単にお見積もりができます。

※ オプション料金は別途となります。

Copyright© J-musu-no-blog , 2014 All Rights Reserved.