この人頭いいなと思ったエピソード

行いたいのは次の通りです。

・全シート数は常に可変。
・とあるシートをそのまま、現在作成されているシートの一番後ろに作成。
構文的には
Sheets("Sheet1").Select
Sheets("Sheet1").Copy After:=Sheets(3)

ここの(3)を、変数にして、全シート数を代入してあげればうまくいきそうなのですが、全シート数を取得するコマンド等分からず行き詰っています。

何か、やり方を御存知の方がいらっしゃいましたら御教示ください。

A 回答 (4件)

ANo.1の者です。


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

参考URL:http://www.e-hon.ne.jp/bec/SA/Detail?refShinCode …
    • good
    • 0
この回答へのお礼

たびたびお手数おかけいたします。

ドキュメント作成はあくまでおまけ程度、しかもVBAなんて全く関係ない職種だと思っていたのですが、出来るか出来ないかで、作業工数が全然違ってくるのですね。

楽しみながら頑張って覚えていこうと思います。

書籍購入、検討させていただきます。

また、全回答者様、私用にてお礼ができず大変遅くなり申し訳ありませんでした。

お礼日時:2007/01/30 01:41

こんにちは。



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

これで通常は良いのですが、補足します。

シート選択タブで言う一番最後にもっていきたい場合は、

ActiveSheet.Copy After:=Sheets(Sheets.Count)

とします。

Worksheets ワークシートのみ
Sheets   ワークシートに加え、グラフシート、ダイアログシートや
      マクロシート等全てのシート

という違いがあります。

この違いがどのように影響するかは、シート選択タブの中間※にグラフシート
などを挿入して、両方のコードを実行してみてください。

※ 例えば Sheet1 と Sheet2 の間とか
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/01/30 01:38

#1様の回答で全てです。



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

ご指摘ありがとうございます。
>ご質問はVBAのかなり初歩的なレベルです。
お恥ずかしい限りです。

本職は全く関係なく、本当にど素人なのですが、
これを機に、VBAの勉強にも取り組んでみようと思います。

お礼日時:2007/01/30 01:37

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2007/01/30 01:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!