(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。エクセルVBAでバラバラの経費精算書のデータを収集するマクロの作り方をお伝えしています。【エクセルVBA入門】エラーが発生したときに分岐処理を追加する方法エクセルVBAでバラバラの経費精算書ファイルのデータを収集するマクロの作り方をお伝えしています。今回はエクセルVBAでエラーが発生したときにメッセージを表示する処理を追加する方法をお伝えしていきます。tonari-it.com2018.06.29マクロの実行時にエラーが発生したときに、処理を分岐する方法についてお伝えしました。今回は、ちょっと別方面の「エラー」について対策をしていきます。その「別方面」というのは、オートフィルタも含めて行の非表示をしているときに起こるエラーです。いうことで、今回はエクセルVBAでオートフィルタや行の非表示で隠れている行を全部表示する方法です。行の非表示を解除する方法まとめ連載目次:エクセルVBAで経費データをデータベースに集約する前回のおさらい前回までに作成したマクロはコチラです。処理でエラーが発生しました。処理でエラーが発生しました。Sub前回は21~28行目。実行時エラーが起きたときに、ErrオブジェクトのNumberプロパティを見て、エラーが発生しているかどうかを判定。それにより分岐処理をするという部分を作成しました。このマクロでは特定の条件では、うまく動作しません。以下説明をしていきますね。行の非表示でマクロが正しく動かないこのコードでは以下のようなケースで不具合が起こることがあります。経費精算書のデータを集めるシートである「経費データ」シートには、既に2018年7月のデータが以下のように入力されている状態とします。2行目から8行目まで、全7件のデータが記録されていますね。作業をする上で、以下のようにオートフィルタなどを使用して、4~8行目が非表示になっているとします。このように、一部の行が非表示になっている状態で、2018年8月の経費精算書データを追加で収集します。すると...おや?9行目以降に経費データが追加されるはずなのですが、何も追加されていないようです。フィルタを外して、行を再表示してみると、以下のように4行目から6行目に、上書きでデータが追加されてしまいました。これは明らかに問題です。前のデータが上書き、つまり消えてしまうなんて困りますもんね。行の非表示でデータが上書きされてしまう理由この原因はコードの6行目の以下の部分です。したときの行番号にプラス1をした数値を返します。以下のように、3行目にカーソルがいってしまいます。diには「4」が入り、4行目からデータの入力がはじまってしまったのです。このように、行が非表示になっている場合は、マクロの動作に影響をしてしまうことがあります。運用上、ワークシートで行の非表示をするようなする操作をする可能性がある場合は、対策をうっておくと良いでしょうか。隠れている行を表示するこの問題を解決する方法はいくつかあります。今回は、最もシンプルな方法で、隠れている行を表示してあげるという方法です。それで、非表示になっているケースも、オートフィルタで非表示になっている場合と、行の非表示で非表示になっている場合では、解除の方法が違うので、両方やっておきます。オートフィルタを解除する方法オートフィルタを解除するには、WorksheetオブジェクトのAutoFilterModeプロパティの値を設定してあげます。Worksheetオブジェクト.AutoFilterModeAutoFilterModeプロパティは、指定したワークシートにオートフィルタが設定されているかどうかをBoolean型で表します。これをFalseにしてあげれば、オートフィルタが解除され、それに伴ってオートフィルタで非表示になっている行も表示されるということになります。以下のステートメントを冒頭などに入れてあげればOKです。Falseなお、AutoFilterModeプロパティはTrueに設定することはできません!適用をするには、AutoFilterメソッドを使います。ご興味あれば、調べてみてください。行の非表示で隠されているのであれば、それを解除するための別のプロパティを使います。Hiddenプロパティというものです。書き方としては以下の通りです。Rangeオブジェクト.Hiddenここで対象となるRangeオブジェクトは行全体、または列全体を表すRangeオブジェクトである必要があります。対象のRangeオブジェクトが非表示ならTrue、非表示でないならFalseとなります。今回は、全ての行について非表示を解除したいので、以下のステートメントを冒頭などに入れてあげればOKですね。Falseもし、列の非表示も気になるのであれば、以下も入れてしまうという手もあります。Falseまとめ以上、エクセルVBAでオートフィルタや行の非表示で隠れている行を全て表示する方法についてお伝えしました。エクセルシートについて、オートフィルタや行(または列)の非表示をするような操作の可能性があるのであれば、念の為入れておくと良いですね。まとめのコードはコチラです。処理でエラーが発生しました。処理でエラーが発生しました。Sub次回は、今回の問題を別の切り口から解決してみます。お楽しみに!連載目次:エクセルVBAで経費データをデータベースに集約する請求書シリーズと逆のパターンですが、バラバラの帳票からデータ一覧つまりデータベースに情報を集めて蓄積していく、というお仕事も多いと思います。ここでは各担当者から提出された経費精算書をデータベースに蓄積するプログラムを目標にして進めていきます。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。【エクセルVBA】FileSystemオブジェクトの基本と簡単にフルパスを生成・分解する方法FileSystemオブジェクトを使ってエクセルVBAでファイルやフォルダを取り合う使う方法。今回は、FileSystemオブジェクトの基本と、ファイルのフルパスを簡単に生成・分解する方法ついてお伝えします。2017.03.01Excel・VBA活用術エクセルVBAで一部のワークシートのみ選択してPDFで出力する方法エクセルVBAでPDF出力や印刷をする際のテクニックについてお伝えしています。今回は、エクセルVBAでArray関数を使って一部のシートのみプレビューまたはPDF出力する方法についてお伝えをします。「初心者でもわかるエクセルVBAのクラスモジュール」をテーマにシリーズ連載をしております。今回は、エクセルVBAでCollectionオブジェクトを使ってインスタンスの集合をコレクション化する方法をお伝えします。【エクセルVBA】最初っから知っておきたいVBEのショートカットキーまとめエクセルVBAの業務効率を上げるためのVBEのテクニックとして、ショートカットキーの活用は外せませんよね。今回は、エクセルVBAを始めるなら最初っからマスターしておきたいショートカットキーをまとめてお伝えします。今回は、なぜエクセルとAccessを連携するのが良いのか、またその際の注意点についてお伝えしたいと思います。2016.07.03Excel・VBA活用術エクセルVBAでIEを操作するクラスにリンクテキストでa要素を探してリンクする方法エクセルVBAでIEスクレイピングをするときに便利なクラスの作り方をお伝えしております。今回は、エクセルVBAでIEを操作するクラスに、リンクテキストでa要素を探して取得するメソッドを追加していきます。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣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をコピーしました。