非表示にできる< 目次 >
■ はじめに
EXCEL VBAで,EXCELの最後尾に新規シートを追加する方法に触れたいと思います。
Crowd Worksでは、Webスクレイピングによるデータ抽出の依頼が多いですが、データ抽出後の貼付先として、新規追加シートを選ばれるケースが多いです。
本記事で役立つポイントは、EXCELのシートの最後尾にシートを追加できる点です。
本ブログ記事は、Crowd Works で納品まで行い、実際にお金になったコードを元に紹介します。
■本記事でできること
EXCELシートの最後尾に新規シートを追加できます。
これにより、これまでシートとシートの間に不本意で追加された新規シートが、最後尾に追加することができ、認識性が増すことができます。
■コード
1 2 |
'EXCELシートの最後尾に新規シートを追加 Sheets.Add After:=Worksheets(Worksheets.Count) |
■コードの説明
分解して説明します。
以下のコードで、実際のシート追加をします。
1 |
Sheets.Add |
以下のAfter:=で追加する場所を指定しています。(『:=』はVBA記述時の約束事なので深く考えないで良い)
Afterは文字通りの『アフター』なので、:= で結ばれたEXCELシートの『後ろ』と指定してあげていることになります。
1 |
After:= |
以下のコードで、場所の指定=最後尾を指定しています。
1 |
Worksheets(Worksheets.Count) |
WorkSheets.countで EXCELシートの『全体数』がわかります。
仮にEXCELシートの数が10シートあるとしたら、WorkSheets.countの戻り値として『10シート目』の数値がでてきます。
つまり、Worksheets(Worksheets.count → EXCELシートの『全体数』= 最後尾のシート)の意味になり、EXCELシートの最後尾を指定してあげていることになります。
解説したコードの意味を繋ぎ合わせる
Sheets.Add After:=Worksheets(Worksheets.Count)は後ろから順番に読むとわかりやすいです。
- Worksheets(Worksheets.Count) :EXCEL最後尾
- After:= :〜のあとに
- Sheets.Add :シートを追加する
つまり、EXCEL最後尾のあとにシートを追加する を意味します。
■おわりに
いかがでしたでしょうか。
VBAは プログラムといっても、かなり英語ライクとなり直感的に分かりやすいことが理解できたと思います。
今後も解説付でいろいろなコードを説明していきますので、どうぞよろしくお願いいたします。