EXCEL VBA Choose関数の使い方(数値に応じて値を返す・リストの値を返す)

 

 

EXCEL VBA Choose関数の使い方(数値に応じて値を返す・リストの値を返す)

 

 

 ●はじめに

今回は、Choose関数の取り扱い方法を説明いたします。Choose関数は、Select Caseステートメントと似ています。数値データからなる1から始まる連番数値に対して、テキストデータ(文字列等)を返します。Select Caseでは、複数条件を設定すると縦にプログラムが長くなってしまいますが、Choose関数を使う事で、プログラムをコンパクトにする事ができます。それでは、順番にサンプルプログラムを交えて説明いたします。

【参照ページ:Select Case】

EXCEL VBA Select Caseの使い方(複数条件)

 

 

 ●書式の説明  (Choose関数)
● Choose(index, Choice-1,Choice-2,・・・・・Choice-n)
index  :1から 2・3・4・・何番目の選択肢を返すかを指定します。
Choice : indexに対応する数値で指定した番目の項目を返します。

【 使用例】

Ans = Choose(No,”東”,”西”,”南”,”北”)
Msgbox Ans※Noが1の場合、1番名の東が表示されます。
※Noが2の場合、2番名の西が表示されます。
※Noが3の場合、3番名の南が表示されます。
※Noが4の場合、4番名の北が表示されます。
【注意点】

Ans = Choose(No,”東”,”西”,”南”,”北”)
Msgbox Ans
※上記プログラムの場合、リストデータが(”東”,”西”,”南”,”北”)で範囲が1~4の間を指定します。この範囲外の0や5以上を指定するとエラーまたは、NULL(空白)を返します。

 

 

 

ランダムで作成された数値に該当する項目を返します。(振り分ける)

 

 

 ●プログラム説明 サンプル① 【Choose関数】

下記のサンプルプログラムは、ランダムで発生した数値に対して該当する項目を返します。今回は、乱数を発生させて「おみくじ」結果を表示させるサンプルプログラムです。

【プログラムの説明】
●整数1~7までの乱数を発生させます。
●乱数で発生させた整数により、おみくじの結果を表示させます。
●1:大吉 2:中吉 3:小吉 4:吉 5:末吉 6:凶 7:大凶

 

 

 

●実行前~実行後 ※プログラム実行後、「本日のおみくじを引きますか?」のメッセージが表示されます。「Yes」ボタンをクリックしておみくじを引きます。引いた結果が表示されました。
(画面クリックして拡大)

 

 

 

 

数値データを該当するテキストデータ(項目)に自動変換します。(データ変換・別シートに転記)

 

 

●プログラム説明 サンプル② 【Choose関数】

下記のサンプルプログラムは、シート(変換前)に数値データのみデータ一覧が登録されており、このデータを元に、別シート(変換後)へ数値データをテキストデータに変換して転記するサンプルプログラムです。プログラム内に、数値データとテキストデータを紐づける為に、Choose関数を利用します。

【プログラムの説明】
①シート【変換前】には、数値データのみ登録されています。
②この数値データを参照して、プログラム内にChoose関数で登録されているテキストデータに変換して、別シート【変換後】へ転記します。


【プログラム実行条件】

●ワークシートを【変更前】・【変更後】に指定する。
●数値データは、下記の範囲にて登録します。
・勘定科目Noの範囲は、1~7まで「備消品費”, “通信運搬費”, “交通費”, “修繕費”, “諸手数料”, “雑費”, “交際費」
・支店Noの範囲は、1~6まで「”東京支店”, “札幌支店”, “水戸支店”, “浜松支店”, “高知支店”, “宮崎支店”」
・担当者Noの範囲は、1~5まで「”山本太郎”, “小池百合子”, “七海ひろこ”, “宇都宮健児”, “桜井誠”」

 

 

 

 ●実行前~実行後 ※プログラム実行後、「データが変換をしますか?」のメッセージが表示されて実行します。シート「変更前」の数値データからテキストデータに変換してシート「変換後」に転記されました。
(画面クリックして拡大)

 

 

 

 

テキストファイル(データ)の数値データから該当するテキストデータ(項目)に変換します。(データ変換)

 

 

 ●プログラム説明 サンプル③ 【Choose関数】

下記のサンプルプログラムは、テキストファイル(データ)の数値データから該当するテキストデータ(項目)に変換するサンプルプログラムです。プログラム内に、数値データとテキストデータを紐づける為に、Choose関数を利用します。


【プログラムの説明】

①テキストファイルから数値データ(請求書データ)をシート(テキスト取り込み)に取り込みます。
②シート(テキスト取り込み)に取り込んだ数値データを元に、テキストデータに変換して、別シート(データ変換後)に転記します。

【プログラム実行条件】

●ワークシートを【テキスト取り込み】・【データ変換後】に指定する。
●数値データは、下記の範囲にて登録します。
・請求先Noの範囲は、1~5まで「東京電機株式会社”, “株式会社神奈川工業”, “大阪商事株式会社”, “大阪商事株式会社”, “株式会社埼玉金庫”」
・品名Noの範囲は、1~4まで「”人事給与ソフト”, “会計ソフト代”, “画像加工ソフト”, “動画編集ソフト”」
・担当者Noの範囲は、1~5まで「”山本”, “小池”, “七海”, “宇都宮”, “桜井”」

 

 

 

 

  ●実行前~実行後 ※プログラム実行後、ダイアログボックスが表示されるので、テキストファイル(請求データ)を選択します。ファイル選択後、数値データがシート「テキスト取り込み」に取り込まれ、数値データから別シートの「データ変換後」にテキストデータへ変換されました。
(画面クリックして拡大)

 

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。