(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。エクセルVBAでバラバラの経費精算書を一つのデータベースにまとめるマクロの作り方についてお伝えしています。【エクセルVBA入門】マクロでVLookupメソッドを使ってデータを検索する方法エクセルVBAを使ってバラバラの経費精算書データを集約するシリーズの7回目です。今回は、業務で有効なテクニックとしてもう一つ、マスタシートからVLookupメソッドでデータを取得してくる方法についてお伝えしていきます。tonari-it.com2015.08.26VLookupメソッドを使って、マスタからデータを抽出する方法についてお伝えしました。VLOOKUP関数に慣れている方はこう思うはずです。「ヒットしなければエラーになってしまうのでは...?」そうなんです。いうことで、今回はエクセルVBAのVLookupメソッドを使ったときに発生するエラーを回避する方法についてお伝えします。Sub15行目でファイル名からスタッフIDを抜き出しています。16~18行目にVLookupメソッドを使って、社員マスタのシートwsStaffからスタッフIDをキーとして社員名、部署ID、部署名を取得しています。以下のような場合はVLookupメソッドが成功しません。社員マスタに不備がありスタッフIDがヒットしなかった場合この場合、どうなっちゃうんでしょうか?VLookupメソッドを失敗させてみる試しに、ファイル名を以下のように変更してみました。本来は4桁ないとダメなんですが、3桁になっちゃってます。プロパティを取得できません。」というエラーが発生します。「デバッグ」ボタンを押してみましょう。変数staffIdの内容を見てみると、スタッフIDの値は「0」、マスタに「0」は存在しないので、VLookupメソッドでエラーが発生したということになります。これを回避する方法についてお伝えしなければなりません。Errorステートメントさて、VBAでは、一般的に実行時エラーの発生はエラーメッセージの表示と、処理の停止を意味します。Errorステートメントという構文が用意されています。その使い方は以下の通り、3種類があります。Nextを使ってみましょう。エラーが発生しても、それを無視する魔法の言葉です。Nextこの一文を入れた以降は、エラーを無視してエラーが発生した次の行から処理を続行します。これを先ほどのVLookup命令の前に入れてあげて、実行してみましょう。すると、プログラムは最後まで実行され、以下のようにデータ収集がされます。プログラム自体は中断せずに実行されましたが、本来太郎さんのデータが入るべき箇所に、花子さんのデータが入ってしまいました。これはこれで問題ですね...まとめエクセルVBAのVLookupメソッドによるエラーを回避する方法についてお伝えしました。Errorステートメントについても紹介しました。お伝えした通り、これだけでは解決になっていないので、次回に解決をしていきたいと思います。【エクセルVBA入門】エラーが発生したときに分岐処理を追加する方法エクセルVBAでバラバラの経費精算書ファイルのデータを収集するマクロの作り方をお伝えしています。今回はエクセルVBAでエラーが発生したときにメッセージを表示する処理を追加する方法をお伝えしていきます。tonari-it.com2018.06.29どうぞお楽しみに!連載目次:エクセルVBAで経費データをデータベースに集約する請求書シリーズと逆のパターンですが、バラバラの帳票からデータ一覧つまりデータベースに情報を集めて蓄積していく、というお仕事も多いと思います。ここでは各担当者から提出された経費精算書をデータベースに蓄積するプログラムを目標にして進めていきます。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。初心者向けエクセルVBAでIEを操作するシリーズです。今回は、エクセルVBAでInternetExplorerを操作して、WEBページのテーブル要素からセルのデータを取り出す方法をお伝えします。2019.04.15Excel・VBA活用術エクセルVBAでCSVを高速に取り込むQueryTableオブジェクト使用時の注意点エクセルVBAで高速にCSVを取り込むことのできるQueryTableオブジェクト。想定されるエラーとその対処法、注意点について解説します。わかりづらいエラーは事前に知っておくことでコーディング時間短縮にもつながります!2018.09.13Excel・VBA活用術エクセルVBAでOutlookメールの下書きを作成・表示して送信前に内容チェックするOutlookのMailItemオブジェクトのDisplayメソッドを使って、VBAで作成したOutlookのメール内容を、メール送信前にチェックする方法をご紹介しています。「VBAでメールを作成するのは便利だけど、内容をチェックしないでメール送信してしまうのは心配...」という方にお勧めです。今回は、UsedRangeプロパティを使ってシートで使用されているセルの範囲全てを取得する方法についてご紹介していきたいと思います。このUsedRangeプロパティを使うことで、表に空白行がある場合でも表全体の範囲を取得することもできます。【初心者向けエクセルVBA】取引先別に請求書を作成するマクロを作る初心者向けのエクセルVBAのシリーズとして、請求書を作成するマクロの作り方をお伝えしています。これまで紹介してきたテクニックを元に、取引先ごとに別のブックで請求書を作成するマクロを完成させていきます。表の範囲をRangeプロパティで直接指定することでも表に処理を行うことは可能です。データは日々更新され、表の範囲も変わっていきます。そんな問題を解決してくれるのがCurrentRegionプロパティです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント108セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント108セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。RowSourceプロパティとAddItemメソッド2020.01.21GASでGoogleスライドのSlideオブジェクトの概要とその取得方法2020.01.162020.01.24Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。