セル選択範囲の取得
定型的な入力シートを作成して、その入力項目だけを一括してクリアするようなマクロを書く場合、その「入力項目だけ」の部分を実際のシートから取得することができます。
- シート上で実際に選択した範囲からそのアドレスを取り出す方法です。
-
ユーザーフォームにしたくなるような定型的な入力シートを作って、入力内容をデータとして別の場所
(別シートだったり、データベースだったり、テキストファイルだったりします)に保存させるような、
いわゆる「定型業務」の仕組みを作成するようなケースでは、入力内容をクリアするロジックは必須です。

これは、ただ、いい加減にセル範囲を複数箇所選択してみただけですが、「定型的な入力シート」というのはこのように入力項目がシート上に点在していて、
場合によっては結合セルがあったりもします。
複数のセルやセル範囲を選択するのに、ShiftキーやCtrlキーを使って選択していくのはご存じである前提になりますが、
まず、入力項目となるセルだけをこのように選択した状態にして下さい。
- 入力項目のセルが選択ができたら、VBEに移ります。
-

クリアするセル範囲アドレスを投入する項目を用意しておいて下さい。
「定型的な入力シート」だとすればこのような定数として用意するものになると思います。
シートのデザインを合わせて、このような作業は1回だけ行なえば良いことになります。
- 「表示」メニューから「イディミエイトウィンドウ」を表示させます。
-
Ctrl+Gでも開きます。
通常はVBEのコードペインの下方にドッキングするので、邪魔でなければ表示したままにして、高さだけをドラッグさせて小さくしておくのでも良いと思います。
- 「イディミエイトウィンドウ」にこのように入力します。
-

「?Selection.Address」と入力してEnterを押します。
「Address」はセル(セル範囲)のアドレス(A1参照形式)を文字列で返すプロパティです。
「Selection」は選択しているもので、ここではセル(セル範囲)です。
先頭に「?」を書くと結果がイディミエイトウィンドウ自身に返されるので、すぐ下行に表示されます。
- 後はコピーだけです。
-
表示されたセル範囲アドレスをコピーして、コードに用意していった定数の値のところに貼り付けます。
このように結合セルが含まれていても、結合範囲で取り込めるので、間違いがおきにくい方法です。
- 簡単・確実な方法ですが、注意する点がいくつかあります。
-
まず、選択したセル範囲のアドレスが表記上であまりにも長い(限度は未確認ですが)場合、「イディミエイトウィンドウ」上に全てが表示されない場合があります。
このような場合は、表示されるアドレス文字列の右端が最後に選択したセル(セル範囲)かどうか確認して下さい。
もう一つ、Rangeプロパティに指定できるセル範囲を示す文字列の長さにも限度があり、これを超えていると実行時にエラーとなります。
この場合は、文字列を複数に分けて順に利用するようにして下さい。