このように、ワークシートを指定してUsedRangeプロパティを使うだけで、表全体の範囲が取得できます。 エクセルマクロ・VBAは慣れが肝心最初は難しく感じるExcelのマクロとVBAですが、仕組みが理解できると徐々に使いこなせるようになってきます!自分のペースで着実に勉強しましょう!, CurrentRegionプロパティでは空白のセルで囲まれた範囲を読み取り、参照するプロパティです。, 表で管理していたデータに追加分が発生した際に、範囲指定していた場所を解除しなくてもそのまま追加分を指定することができます。, シートに表を作成後、VBEを起動してCurrentRegionプロパティを書き込み表を範囲選択します。, [ ツール ] ⇒ [ マクロ ] ⇒ [ Visual Basic Editor ]をクリックします。, コードを書き込むときは表を作ったSheetにあわせてVBEにコードを書き込みましょう。, 例:Sheet1に表を作成 ⇒ VBEでSheet1をダブルクリックしてコードを作成, これはCurrentRegionプロパティが空白のセルを行と列からそれぞれ読み取り、値の入力されていないセルで囲まれた範囲を選択しています。, つまり、上の画像では縦横の空白のセル(赤枠で囲まれている範囲)から値の入力されているセルを読み取り、セルを範囲指定します。, A3からD6セルが選択されていますね。このような空白列で囲まれて選択されている範囲のことを「アクティブセル領域」といいます。, 初めの表では空白セルだった場所に値が入力されました。この場合アクティブセル領域はどのように変化するのでしょうか。, データを追加して空白セルの領域が狭まってしまいましたが、CurrentRegionが再び空白セルの範囲を読み取りアクティブセル領域が新しく選択されました。, 空白のセルを行と列からそれぞれ読み取り、値の入力されていないセルで囲まれた範囲を選択.



このように表に空白行があると、選択されるのは空白行の前までになります。, CurrentRegionプロパティで表を取得するときは、表に空白行がないかに気をつける必要があります。, 表の範囲を取得する方法として、別の方法もあります。 使用されている最初のセルから最後のセルのセル範囲が取得されるため、このように1行目と1列目が空白が入っていても、正しく取得することができます。, このように大変便利なUsedRangeプロパティですが、気をつけなければいけない点もあります。, そのような場合に、UsedRangeプロパティを使うと、どのセル範囲を取得するかを見てみましょう。, このように、罫線が引かれている範囲すべてが選択されました。


GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~, VBAやGoogle Apps Scriptのツール開発と研修をセットで依頼される企業が増えている理由. CurrentRegion.Copy Sheets("Sheet2").Range("A1") .AutoFilter 2 End With End Sub 結果は同じです。 CurrentRegionで「タイトル行を含む全データ」をコピーするとき、アクティブセルがテーブルの外にあると、絞り込んだ結果だけでなく、全データがコピーされてしまいます。 Copyright © 2015-2020 いつも隣にITのお仕事 All Rights Reserved. そのため、罫線が引かれている最後のセルが、UsedRangeプロパティのセル範囲の対象となってしまうのです。, また、表に関数が入力されているセルも同様に使用されているセルとなりますので、気をつけてください。, 今回は、シートで使用しているセル範囲全てをUsedRangeプロパティを使って取得する方法についてご紹介しました。, はじめに、前回ご紹介したCurrentRegionプロパティの使い方を説明しました。, CurrentRegionプロパティで取得できる表の範囲は、Rangeオブジェクトのアクティブセル(=空白行と空白列で囲まれたセル範囲)なので、空白行と空白列がある場合はうまく取得することができませんでした。, しかし、UsedRangeプロパティでは指定されたワークシートで使用されているセル範囲を取得できるため、CurrentRegionプロパティでは取得できなかった空白行がある表も取得することができました。, ただ、UsedRangeプロパティでは罫線が引かれているセルや関数が入力されているセルを取得してしまうため、その点には気をつける必要があります。, ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。, 表の範囲をRangeプロパティで直接指定することでも表に処理を行うことは可能です。しかし、データは日々更新され、表の範囲も変わっていきます。そんな問題を解決してくれるのがCurrentRegionプロパティです。, VBAでシート操作を行うエクセルツールにとって、使う人が勝手にシート構成を変更できてしまうのは避けたいところ。エクセルのシート操作(名前の変更、挿入、削除、移動、コピー)を制限する機能、ブックの保護の設定と解除方法をご紹介しています。パスワードを設定しておけば、特定の人だけが編集できるようにすることもできますよ。, エクセルVBAでWord文書の操作をする方法についてお伝えしています。今回は、エクセルVBAでフォルダ内のWord文書のページ数や文字数などの各情報を取得してリスト化するプログラムを作っていきます。, エクセルのユーザーフォームでフォームを作って、使ってみることを目標に、連載記事でユーザーフォームのイベントやプロパティ、メソッドをご紹介しています。今回は、入力者に特定の値から選択させたいようなときに使える、リストボックスをフォームに追加する方法と、代表的なプロパティをご紹介しています。, エクセルVBAではコピー&ペーストを自動化するという処理がよく活用されますが、その際に活用する繰り返し処理用の命令であるFor~Next文を徹底的に解説し、請求書の自動作成プログラムを簡略化していきます。, エクセルVBAでスケジュール表を自動で作成する方法を連載しています。今回はカレンダーのシートにエクセルVBAで日付を自動的に反映させる方法をお伝えします。同時にシートの保護の活用などミス防止のための工夫も紹介します。, 今回はエクセルVBAでHTTPリクエストをする最も簡単なプログラムをお伝えします。HTTP通信、リクエストやレスポンスとは何か、またリクエストを送信して取り出すまでに必要なメソッドやプロパティを紹介します。, 簡単Git入門!ファイル変更時のSourceTreeの動きとコミットを利用したリセット操作, 当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。, マネーフォワードクラウド請求書の請求書一覧の全件をスプレッドシートに書き出すスクリプト, GASでマネーフォワードクラウド請求書の請求書一覧をスプレッドシートに書き出す方法. 前回は、CurrentRegionプロパティを使って、目的の表の範囲を取得する方法をご紹介しました。, CurrentRegionプロパティを使用することで、指定したRangeオブジェクトのアクティブセル(=空白行と空白列で囲まれたセル範囲)を取得することができます。, ただ、CurrentRegionプロパティを使用すると、表に空白行がある場合は、取得できる表の範囲が空白行の前までとなってしまいます。, そこで今回は、UsedRangeプロパティを使ってシートで使用されているセルの範囲全てを取得する方法についてご紹介していきたいと思います。
VBAで セルやシート、ブックをコピーするにはどうすればいいの? 値や書式なしコピーはどうやってやるの? と悩んでいる方も多いと思いますが、Copyメソッドを使用すれば簡単にコピーが可能です。 ここではVBAでコピーする方法全般について、以下の内容で解説していきます!

このような表にUsedRangeプロパティを実行してみます。, 表全体の範囲が取得されました! まず、C4セルにのみデータが入力されて状態で実行してみます。, このように、UsedRangeプロパティを使うと、使用されている「最初のセルから最後のセル」のセル範囲が取得されます。, 実際にどのような動きをするか見てみましょう。 これは「罫線が引かれている=使用されている」セルということです。 CurrentRegionプロパティでは空白のセルで囲まれた範囲を読み取り、参照するプロパティです。 表で管理していたデータに追加分が発生した際に、範囲指定していた場所を解除しなくてもそのまま追加分を指定することができます。 CurrentRegion.

このUsedRangeプロパティを使うことで、表に空白行がある場合でも表全体の範囲を取得することができます。, まず、前回のおさらいとしてCurrentRegionプロパティを使って表の範囲を取得する方法を説明します。, このようにCurrentRegionプロパティを使うことで簡単に表全体の範囲を取得することができます。, しかし、CurrentRegionプロパティを使って表を取得する場合に気をつけなければならない点があります。, 選択されたのはA1セル~D4セルで、E行以降は選択されません。