2017.09.21みなさん、こんにちは。なかじ(@nakaji098)です。エクセルを実務で使っていると、表を作成したり、表に処理を行うことがあると思います。表の範囲をRangeプロパティで直接指定することでも表に処理を行うことは可能です。データは日々更新され、表の範囲も変わっていきます。なると、Rangeプロパティでは追加された範囲が含まれなかったり、逆に削除された行が範囲に含まれてしまったりします。表の範囲に変化があったとしても、目的の表の範囲を取得したいですね。そんな問題を解決してくれるのがCurrentRegionプロパティです。今回は、CurrentRegionプロパティを使って、表の範囲が変わったとしても目的の表全体の範囲を取得する方法をご紹介したいと思います。空白行がある場合まとめ連載目次:エクセルVBAでシートのセル範囲を簡単に取得する方法Rangeプロパティを使って表を指定する方法まずは参考に、Rangeプロパティで表を指定する方法を説明から始めたいと思います。Rangeプロパティの引数に範囲のアドレスを直接指定するRangeプロパティの引数に範囲のアドレスを直接指定することで、表全体の範囲を選択できます。SubこのようにRangeプロパティの引数に範囲のアドレスを直接指定することで、表の範囲を指定することもできます。表に変更が加えられた場合しかし、この方法で表の範囲を指定すると、表に変更が加えられたときに問題が起こります。表にデータを追加して同じように実行してみます。Subこのように追加された範囲(6行目とD列)が含まれなくなってしまいます。これでは正確に表の範囲を指定することができませんね。実際に実務でエクセルを使用していると、表の範囲が決まっていることは少なく、データが増えたりしますね。なるとRangeプロパティの引数に範囲のアドレスを直接指定することで表の範囲を直接指定する方法では対応できません。CurrentRegionプロパティを使って表の範囲を取得する方法そんな時に使えるのが、CurrentRegionプロパティになります。Rangeオブジェクト.CurrentRegionこのプロパティを使用することで、指定したRangeオブジェクトのアクティブセル(=空白行と空白列で囲まれたセル範囲)を取得することができます。わかりづらいと思いますので例を挙げます。この表ですと、水色に着色された空白行と空白列に囲まれた、A1セル~C3セルがアクティブセルになります。CurrentRegionプロパティを使って表の範囲を取得それでは、実際にCurrentプロパティを使ってみましょう。SubA1セル~C5セルが選択されました。簡単で便利な機能です!このプロパティで取得できる表の範囲は、ExcelでCtrl+Shift+*キーを押すのと同じ範囲です。表にデータを追加して実行してみましょう。Sub表を広げた範囲(A1セル~D6セル)まで自動的に選択されました!ここではA1セルを指定しましたが、ここで指定するセルは、表の範囲に含まれているセルであればどのセルでも大丈夫です。Subこのように表の範囲に含まれるセルであれば、正しく表の範囲を取得することができます。表の中には、1行目と1列目が空白で作られている表もあると思います。そのときにCurrentRegionプロパティを使うと、どのように範囲を取得するかを見てみましょう。SubA1セルをオブジェクトに指定し実行すると、このようにA1セル~D6セルが選択されてしまいます。ここで指定するRangeオブジェクトは表の範囲に含まれているセル(B2セル~D6セル)にする必要があります。Subこのようにすることで、正しく表の範囲が選択できます。空白行がある場合それでは、表の中に空白行がある場合も見ていきましょう。先ほども説明しましたが、CurrentRegionプロパティで取得できる範囲は、Rangeオブジェクトのアクティブセル(=空白行と空白列で囲まれたセル範囲)です。いうことは、空白行が入っていると、取得できる表の範囲が空白行の前までとなってしまいます。Subこのように選択されたのはA1セル~D4セルです。CurrentRegionプロパティで表を取得するときは、表に空白の行がないかに気をつける必要があります。まとめエクセルVBAで表の範囲を自動的に取得する方法を紹介しました。はじめに、Rangeプロパティの引数に範囲のアドレスを直接指定し表全体の範囲を選択する方法から説明しました。表は変更されることもあります。そこでCurrentRegionプロパティを使うことで、表の範囲が変更されても表全体の範囲を自動的に取得することができます。空白行や空白列が入っていた場合の注意点なども説明しました。表全体の範囲を取得するときは、このCurrentRegionプロパティを使ってみてください!連載目次:エクセルVBAでシートのセル範囲を簡単に取得する方法エクセルVBAでシート上のセル範囲を取得。本シリーズではシート上のデータがあるセル範囲を簡単に、そして上手に取得する方法をお伝えしていきます。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。【エクセルVBA】シートの開始行や行数の変更があってもちゃんと動く繰り返し文の書き方エクセルではワークシートの運用上、行の挿入や行の追加が発生することが多々あります。今回はエクセルVBAでワークシートの開始行や行数の変更があっても繰り返し処理がちゃんと動くプログラムの作り方です。2016.05.09Excel・VBA活用術エクセルVBAでAccessデータベースに複数のレコードを追加する方法とその実行速度についてエクセルVBAでAccessデータベースを操作する方法についてお伝えしています。今回はエクセルVBAでAccessデータベースに複数のレコードを追加する方法とその実行速度についてお伝えします。(できるビジネス)』を紹介します。初心者向けにエクセルVBAで請求データ一覧から請求書を自動で作成する方法をお伝えしています。今回はワークシートをコピーする方法、Activesheetの使い方、シート名を変更する方法についてお伝えします。VBA】メール本文から欲しい情報だけを取り出す方法MailItemオブジェクトのBodyプロパティとMid関数を使って、Outlookのメール本文から欲しい情報だけを取り出す方法をご紹介しています。【エクセルVBAでIE操作】ブラウザの読み込み待ちをしないとダメなのですエクセルVBAでIEを操作するシリーズの第3回、今回はIEの読み込み待ちの処理を入れていきます。この処理はVBAでIEを扱う限りはほとんどの場合で必要となる処理ですので、ぜひ覚えて頂ければと思います。AM『ExcelVBAを実務で使い倒す技術』拝読させていただきました。A1セルから表が始まっているのであればUsedRangeも使えると思います。空白行には強くなりますが、表外のセルにメモなど書いてしまうとそこまで取得されてしまう弱点がありますが。人やさしい形式とPCにやさしい形式の問題ですね。PMたつろう様コメントおよび拙著のご購読ありがとうございます!おっしゃる通り、UsedRangeも使えますね!後日、記事として提供させて頂ければと思います。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣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をコピーしました。