- ベストアンサー
excel マクロ 最終シートの後ろにシートを作成するには
行いたいのは次の通りです。 ・全シート数は常に可変。 ・とあるシートをそのまま、現在作成されているシートの一番後ろに作成。 構文的には Sheets("Sheet1").Select Sheets("Sheet1").Copy After:=Sheets(3) ここの(3)を、変数にして、全シート数を代入してあげればうまくいきそうなのですが、全シート数を取得するコマンド等分からず行き詰っています。 何か、やり方を御存知の方がいらっしゃいましたら御教示ください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1の者です。 ANo.2さんが資格の本を紹介されましたが、 私は一般書籍をお勧めします。 「ExcelVBAハンドブック」をお勧めします
その他の回答 (3)
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。 > ActiveSheet.copy after:=worksheets(worksheets.Count) これで通常は良いのですが、補足します。 シート選択タブで言う一番最後にもっていきたい場合は、 ActiveSheet.Copy After:=Sheets(Sheets.Count) とします。 Worksheets ワークシートのみ Sheets ワークシートに加え、グラフシート、ダイアログシートや マクロシート等全てのシート という違いがあります。 この違いがどのように影響するかは、シート選択タブの中間※にグラフシート などを挿入して、両方のコードを実行してみてください。 ※ 例えば Sheet1 と Sheet2 の間とか
お礼
大変詳しく、またそれでいて分かりやすい説明ありがとうございます。 勉強になりました。
#1様の回答で全てです。 全てと言いながら蛇足で。 ご質問はVBAのかなり初歩的なレベルです。 お時間のあるときにでも、VBAエキスパートの資格本を読むことをお勧めします。 資格をとるためではなく、初期段階で役に立つ事柄が載っているからです。
お礼
ご指摘ありがとうございます。 >ご質問はVBAのかなり初歩的なレベルです。 お恥ずかしい限りです。 本職は全く関係なく、本当にど素人なのですが、 これを機に、VBAの勉強にも取り組んでみようと思います。
- tocci_pc
- ベストアンサー率14% (19/130)
ActiveSheet.copy after:=worksheets(worksheets.Count)
お礼
ありがとうございます。希望通りの動きを行うことができました。
お礼
たびたびお手数おかけいたします。 ドキュメント作成はあくまでおまけ程度、しかもVBAなんて全く関係ない職種だと思っていたのですが、出来るか出来ないかで、作業工数が全然違ってくるのですね。 楽しみながら頑張って覚えていこうと思います。 書籍購入、検討させていただきます。 また、全回答者様、私用にてお礼ができず大変遅くなり申し訳ありませんでした。