• ベストアンサー

excel マクロ 最終シートの後ろにシートを作成するには

行いたいのは次の通りです。 ・全シート数は常に可変。 ・とあるシートをそのまま、現在作成されているシートの一番後ろに作成。 構文的には Sheets("Sheet1").Select Sheets("Sheet1").Copy After:=Sheets(3) ここの(3)を、変数にして、全シート数を代入してあげればうまくいきそうなのですが、全シート数を取得するコマンド等分からず行き詰っています。 何か、やり方を御存知の方がいらっしゃいましたら御教示ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tocci_pc
  • ベストアンサー率14% (19/130)
回答No.4

ANo.1の者です。 ANo.2さんが資格の本を紹介されましたが、 私は一般書籍をお勧めします。 「ExcelVBAハンドブック」をお勧めします

参考URL:
http://www.e-hon.ne.jp/bec/SA/Detail?refShinCode=0100000000000030908034&Action_id=121&Sza_id=F4
graniph
質問者

お礼

たびたびお手数おかけいたします。 ドキュメント作成はあくまでおまけ程度、しかもVBAなんて全く関係ない職種だと思っていたのですが、出来るか出来ないかで、作業工数が全然違ってくるのですね。 楽しみながら頑張って覚えていこうと思います。 書籍購入、検討させていただきます。 また、全回答者様、私用にてお礼ができず大変遅くなり申し訳ありませんでした。

その他の回答 (3)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

こんにちは。 > ActiveSheet.copy after:=worksheets(worksheets.Count) これで通常は良いのですが、補足します。 シート選択タブで言う一番最後にもっていきたい場合は、 ActiveSheet.Copy After:=Sheets(Sheets.Count) とします。 Worksheets ワークシートのみ Sheets   ワークシートに加え、グラフシート、ダイアログシートや       マクロシート等全てのシート という違いがあります。 この違いがどのように影響するかは、シート選択タブの中間※にグラフシート などを挿入して、両方のコードを実行してみてください。 ※ 例えば Sheet1 と Sheet2 の間とか

graniph
質問者

お礼

大変詳しく、またそれでいて分かりやすい説明ありがとうございます。 勉強になりました。

noname#91724
noname#91724
回答No.2

#1様の回答で全てです。 全てと言いながら蛇足で。 ご質問はVBAのかなり初歩的なレベルです。 お時間のあるときにでも、VBAエキスパートの資格本を読むことをお勧めします。 資格をとるためではなく、初期段階で役に立つ事柄が載っているからです。

graniph
質問者

お礼

ご指摘ありがとうございます。 >ご質問はVBAのかなり初歩的なレベルです。 お恥ずかしい限りです。 本職は全く関係なく、本当にど素人なのですが、 これを機に、VBAの勉強にも取り組んでみようと思います。

  • tocci_pc
  • ベストアンサー率14% (19/130)
回答No.1

ActiveSheet.copy after:=worksheets(worksheets.Count)

graniph
質問者

お礼

ありがとうございます。希望通りの動きを行うことができました。

関連するQ&A

専門家に質問してみよう