Excelのよくいただく質問でマクロを組まないと実現できないものと言えば、
「複数のシートを1枚のシートにまとめるにはどうすればいいのでしょう?」
です。
Excelをデータベースとして利用する際に、データ入力の段階でシートを分けてしまい、後から集計をしたり、全てのデータを利用して宛名ラベルを作成するような業務が発生したときに、この「シートをまとめるには」というご質問を、非常によくいただきます。
残念ながらExcelの標準機能では、複数のシートを1つにするという機能が用意されていないために、VBA(Visual Basic for Applications)でマクロを組む必要があります。
ただ冷静に考えれば、やらなければいけない処理というのはそれほど複雑なものではありません。
新しいシートを追加して、その新しいシートに元のシートのデータをコピーするというのをシートの枚数だけ繰り返せばいいわけです。
これをVBAでコーディングすればいいのです。
この処理の中で元のシートのデータ領域を選択するために、アクティブセル領域という概念が非常に役立ちます。Range("A1").CurrentRegion.Select
上記のようにCurrentRegionプロパティを利用すると、A1セルのアクティブセル領域が選択できます。
勿論元データがA1セルから入力されていない場合は、データの入力されているセルをRangeプロパティの引数に指定する必要があります。(たとえばB3セルからデータが入力されているのなら「Range("B3").CurrentRegion.Select」です。)
あとは「Selection.Copy」ステートメントでコピーをして、貼り付け先を指定して貼り付けを実行すればいいわけです。
実際に複数のシートをまとめる処理をコーディングするにはいくつか注意点がありますが、それについてはおいおいご紹介していきます。
- Newer:タイトル用プレースホルダのないスライドを探す
- Older:標準スタイルにするには・スタイルをクリアするには
Home » Excel VBA Rangeオブジェクト » CurrentRegionプロパティ » アクティブセル領域を選択する−Range.CurrentRegionプロパティ