【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です。
今回は、きっと多くの方が一度は触れる事があるであろうExcelの便利な機能、
「VBA」の使い方を解説していきたいと思います。
Excelは日常的に使っているけど、もっと使いこなしたい!と感じる方、必見です!
最近、よく耳にするようになった「マクロ」という言葉。
マクロとは、Excel等の操作を自動化させる機能のこと。
そのマクロで使用されているプログラミング言語が、VBA(Visual Basic for Application)になります。
このマクロがとても便利!✨
今まで手作業で行っていた様々な業務を、自動化させることができます。
例えば…
〇他のブックやテキストを読み込んだり、
〇セルを操作したり、
〇ピボットを作成したり、
〇グラフを作成したり、
〇印刷を行ったり、
といった作業のプログラムを一度作成すれば、次回からはボタン等を使って、処理を実行するだけでOKなんです…!✨
処理の時間は内容やデータ数等で違いますが、早い場合は数秒で済んでしまいます。
時間がかかるものもありますが、そういった場合はコーヒーを飲みながら処理が終わるのを待っていたり…
処理を実行して、そのままランチに行ったり…
そうして帰ってくると、処理が終わっています。
手作業でやっていないからミスもなくなりますね!
本当におすすめです♪
上記に挙げた作業例は一握りで、他にもまだまだたくさんのことができますよ!
そして、ExcelさえPCに入っていれば、それだけでOK!
その他のインストールは不要です。
だから、すぐに開発に挑戦できるのでとても使いやすいですね。
簡単なので、ぜひ皆さんも一緒にトライしてみましょう♥
先ほどExcelがあればすぐにできます!と言いましたが、初めだけ、少しExcel内で環境の設定を行う必要があります。
それは、「開発」タブの表示と「マクロのセキュリティー」の設定です!
また、画面はExcelのバージョンによって多少異なりますので、そこはご勘弁下さい
(※ここではExcel2013/2010の環境です)。
①「ファイル」→「オプション」→「リボンのユーザ設定」をクリック
②右側にある「リボンのユーザ設定」のメインタブの中にある「開発」にチェックを入れてOKをクリック
するとExcelの画面上部に「開発」が表示され、作成しやすくなります。
①先ほど追加した「開発」のタブをクリック
②コードのグループにある「マクロのセキュリティ」をクリック
③マクロの設定の箇所で「警告を表示してすべてのマクロを無効にする」を選択し、OKボタンをクリック
この設定をすることで、自動でマクロが動作することを防げます!(マクロで悪さする人もいますので…)
さあ、どんどんいくよ~!✨
プロシージャーとは、Sub XXXX()~End Subで作られた、プログラムの1つの塊です。
そして、複数のプロシージャーが一つになったものがモジュール、つまりマクロです!
では、さっそくプロシージャーを作ってみましょう!
今回は、標準モジュールを作成します。
まず、Excelを立ち上げたら、
①ALTキー+[F11]を同時に押し、VBEを立ち上げる
※VBE(Visual Basic Edtor)はマクロを作成・修正するエディターのこと。VBAと似ていますが、別物です!
②左側にある「プロジェクト-VBAProject」のMicrosoft Excel Objectsを右クリック
そして、挿入⇒標準モジュールを選択するとモジュール(文字が入力できる白い画面)ができます。
③その白い画面の中に Sub モジュール名 を入力する
モジュール名は基本どんなものでもOK!でも、使えない名前もあるので注意です!
(※使えない名前…頭が数字やアンダーバー、IfやAnd等の予約語)
今回は、モジュール名を「VBA_test」にしてみましょう!
④Enterを押す
すると自動でEnd Subが作成されます。
このSub モジュール名~End Subの間に、プログラムを記載していく流れになります。
今回は、メッセージボックスを表示するプログラムを作成したいと思います!✨
メッセージボックスを表示するプログラムは下記のように記載します。
Msgbox ()
()の中に表示したい文字を記載することになります。
ここで注意すべきことは、()の中は、文字と数字で書き方のルールが少し変わってくるということ。
・数字ならそのまま → Msgbox(12345)
・文字ならダブルコーテーションで囲む → MsgBox("Hello")
今回は、文字"Hello"で実施してみましょう!
これで、メッセージボックスを表示するプロシージャーが完成です。
では、次のステップで早速実行してみましょう!
プロシージャーの実行方法は、3つあります。
・Excelの画面からスタート
・VBEの画面からスタート
・ボタンからスタート
ボタンからのスタートはユーザ用のもので、ボタンを押したらすぐに動かすことができます。
上記2つでも実行はできますが、これは開発者用です。
複数のプロシージャーがある場合、Excel画面からのスタートからだと、
実行したいプロシージャーを選択する必要があります。
また、VBEの画面からのスタートでは、プログラムから直接実行することになります。
実際にプログラムを表示して操作することになりますが、
もし、実行時に誤ってプログラムをいじってしまうと…ひぇー!なんてことになってしまいますので、
これだけは避ける必要があります。
VBEからの実行はプロシージャーの塊だけでなく、1行ずつ実行することが可能なことからも開発者用と言えますね。
さて、余談はこれくらいにして、早速上記2つの方法で実行していきます。
①開発タブのマクロをクリック
②実行したいプロシージャーを選択して、実行をクリック
作成したプロシージャーが実行されます。
メッセージボックスが表示されました~!✨
①VBEを立ち上げる( ALTキー + [F11]を同時押し)
②実行したいプロシージャーSub ~End のプログラム内にカーソルをおく
③[F5]を押す
実行されました!✨
皆さんも無事、できましたでしょうか?
今回はメッセージボックスの表示するプログラムをご紹介しましたが、
これに条件式、繰り返し文、変数などを追加することによってさらに色々な作業ができるようになり、よりプログラムらしくなっていきます。
これからもどんどんコラムを書いていく予定です!お楽しみに♥♥♥
最後に、VBAに関するプチ情報!
VBAには資格があります。
Microsoft のExcel・AccessのVBAのスキル認定試験「VBAエキスパート」というもので、
株式会社オデッセイ コミュニケーションズ(敬称略)が運用している試験です。
種類は4種類!
・Excel VBA ベーシック
・Excel VBA スタンダード
・Access VBA ベーシック
・Access VBA スタンダード
他の多くの国家資格のように、年に何回・試験日はいつ、というのが決まっていません。
テストセンターでのCBT試験(Computer Based Testingの略。
問題用紙やマークシートなどの紙を使わず、コンピュータで受験する方式のテストのこと)なので、
各試験場所にもよりますが、頻繁に試験が行われています。
そのため、納得のいくところまでみっちり勉強して、準備万端の状態で試験に応募し、受験することが可能です!
そして結果は試験終了後、数秒するとすぐに合否が画面に表示されるので、
合格発表までドキドキしながら待つ期間がないのもCBT試験ならではの良いところですね。
皆さんも、ぜひステップアップとして受験してみてはいかがでしょうか?
詳しくは、専用サイトを見てくださいね!
では、また次回のコラムでお会いしましょう。
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート