(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。エクセルVBAでバラバラの経費精算書ファイルのデータを収集するマクロの作り方をお伝えしています。【エクセルVBA入門】Vlookupメソッドを使ったときに発生するエラーを回避する方法エクセルVBAでバラバラの経費精算書を一つのデータベースにまとめるマクロの作り方についてお伝えしています。今回はVLookupメソッドを使ったときに発生するエラーを回避する方法についてお伝えします。Nextステートメントを追加しました。エラーが発生したことがわかりづらくなっちゃったんですよね。いうことで、今回はエクセルVBAでエラーが発生したときにメッセージを表示する処理を追加する方法をお伝えしていきます。0でエラーハンドラーを無効化するエラー処理を加えた経費精算データ収集マクロまとめ連載目次:エクセルVBAで経費データをデータベースに集約する前回のおさらい前回作成したコードはコチラです。Nextステートメントを入れたことで、その後のVLookupメソッドが失敗したとしても、処理を続行するようになりました。その場合の結果がコチラですね。正しくないデータが入ってしまいました。エラーが発生したことがわかるようにしたいですよね。Errオブジェクトとはそんな時のためにErrオブジェクトを使って、もう少しエラーが発生したことをわかりやすくしてあげましょう。Errオブジェクトには、エラーが発生したときにどんなエラーが発生したのかという情報が格納されます。これを使ってエラーが発生したときに何らかのアクションを起こすという処理を追加することができます。Numberプロパティを使ってエラーの発生で分岐ErrオブジェクトのNumberプロパティには初期値は0が格納されていて、エラーが発生するとエラーの種類に応じて0より大きい番号が格納されます。Errオブジェクト.Number例えば、以下のエラーメッセージであれば「1004」がエラーの番号になります。処理でエラーが発生しました。処理でエラーが発生しました。Ifそれ以前にエラーが発生していれば、メッセージダイアログが表示されます。Nextステートメントは、VLookupメソッド以外のエラーについても継続をしてしまいます。想定していないエラーまで、全てもみ消してしまうわけです。0ステートメントで、エラーハンドラーを無効化します。Error~で有効になっているエラーハンドラーを無効化するErrオブジェクトを初期化するという役割を果たします。Nextの効果をかき消して、さらにErrオブジェクトをリセット(Numberプロパティも0に)することになります。エラー処理を加えた経費精算データ収集マクロ以上を踏まえたコードはこちらになります。処理でエラーが発生しました。処理でエラーが発生しました。Sub21~28行目が追加した処理ですね。実行時エラーが発生したときに、メッセージの表示に加えて、マスタから取得すべきデータを0または空にしています。エラーが発生した場合、以下のようなメッセージが表示されつつ実行結果は以下のように、余計なデータが含まれないようになります。まとめ以上、エクセルVBAでエラーが発生したときに分岐処理を追加する方法についてお伝えしました。Errorステートメントと分岐処理について解説をしました。これで、ファイル名にミスがあっても拾えるようになりましたが、他にも色々なパターンがありますので、ベストな方法を模索してみてくださいね。次回は、別のエラー発生要因について考えてみたいと思います【エクセルVBA入門】オートフィルタや行の非表示で隠れている行を全て表示するエクセルVBAでバラバラの経費精算書のデータを収集するマクロの作り方をお伝えしています。今回はオートフィルタを解除する方法と、行の非表示で隠れている行を表示する方法についてそれぞれお伝えしていきます。tonari-it.com2018.07.01どうぞお楽しみに!連載目次:エクセルVBAで経費データをデータベースに集約する請求書シリーズと逆のパターンですが、バラバラの帳票からデータ一覧つまりデータベースに情報を集めて蓄積していく、というお仕事も多いと思います。ここでは各担当者から提出された経費精算書をデータベースに蓄積するプログラムを目標にして進めていきます。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。関連記事Excel・VBA活用術エクセル条件付き書式を実務で使い倒す!TODAY関数・LEN関数の実例紹介エクセルの条件付き書式をマスターするシリーズ。最終回は「TODAY関数を使用したタスク管理表」「LEN関数を使用した入力文字数のチェック方法」を紹介しています。エクセルVBAを実務で使えるようになるための完全マニュアルこれを見れば初心者がエクセルVBAをマスターして実務で使えるようになる「まとめ記事」です。皆さんがエクセルVBAを段階を追って身に着けるまでのお供としてマニュアル的にご活用頂ければと思います。【エクセルVBA】RefreshメソッドとRefreshTableメソッドでピボットテーブルを自動更新させてみようWorksheet.Changeイベントとピボットテーブル更新のPivotTableオブジェクトのRefreshTableを組み合わせて、シートが更新されたらピボットテーブルを自動更新させる方法をご紹介しています。同じピボットテーブル更新のPivotCacheオブジェクトのRefreshメソッドもご紹介していますよ。【初心者向けエクセルVBA】ワークシート・セルを選択する方法の色々について初心者向けエクセルVBAシリーズ、請求データから請求書を作成する方法をお伝えしています。今回は、エクセルVBAでセル・シートをアクティブにするためのSelectメソッドとActivateメソッドです。遅い...重い...そんなエクセルVBAプログラムの処理速度を劇的に改善する方法エクセルVBAの実行速度が遅い・重いって時ありませんか?そんな時にエクセルVBAのプログラムの処理速度を速くするテクニックを紹介します。プログラムの実行時間を測定する方法も合わせてお伝えします。【エクセルVBA入門】他のワークブックをWithで開く&保存せずに閉じるエクセルVBAを使ってバラバラの経費精算書のデータをデータベースに集約するシリーズ。今回はエクセルVBAのでWithとOpenメソッドを組み合わせて他のワークブックを開く方法についてお伝えしていきます。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣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をコピーしました。