• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel macroで、一番右側の見出しに新しいsheetを加えたい)

Excel Macroで一番右側の見出しに新しいsheetを加える方法

このQ&Aのポイント
  • Excelのマクロを使用して、一番右側の見出しに新しいシートを追加する方法について質問します。
  • 質問者は以前、Excel 97で一番右側に新しいシートを追加する方法を質問しましたが、マクロ以外ではできないことが分かりました。そこで、今度はマクロでの記述方法について質問しています。
  • 今あるシートのどんな名前でも、それらのシートの右側に新しいシートを追加するためにはどのように記述すればよいでしょうか。過去の同様の質問では、タイトルが具体的でなく内容が推測できないため、質問者は他の人に具体的なタイトルを付けるようにお願いしています。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

次の1行で大丈夫でしょう。 Worksheets.Add.Move after:=Worksheets(Worksheets.Count)

noname#63648
質問者

お礼

nishi6さま、ふたたびのご回答ありがとうございます! 完璧です。 どうしても、一度教えて頂かないとじぶんでは思い付かないのですが、言われてみれば納得です。徐々に自分でも思いつくようになりたいです。頑張ります。 本当に助かりました。

その他の回答 (4)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.5

質問の質問に対する回答です。コメントを追加してみました。 Sub aaa111()   'Dim n As Integer   'Add に before、after の指定がないので、アクティブシートの前に挿入される。   '挿入されたシートがアクティブシートになる   Sheets.Add   n = Sheets.Count   MsgBox n   bbb111 (n) End Sub Sub bbb111(n)   MsgBox n & "aa"   '一番左のシートを一番右に動かしている。挿入したシートを動かしていない。   '一番左のシートがアクティブならうまくいく。   Sheets(1).Move after:=Sheets(n) End Sub 結局、アクティブシートの前に挿入して、どこに挿入したかによらず、一番左のシートを一番右に動かしているようです。 少し修正してみました。サブルーチンに分ける必要はないようです。(最初も) Sub ccc111()   Dim n As Integer   Sheets.Add   n = Sheets.Count   ActiveSheet.Move after:=Sheets(n) End Sub

noname#63648
質問者

お礼

たびたびのご登場、どうもありがとうございます。 imogashiさん、疑問は解決しましたでしょうか? 私もいずれわかるようになりたいです...。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

考えてテストしているうちに正解が既に出ているようなのですが、他の方の質問に便乗した質問のようになって済みません。 Sub aaa111() Sheets.Add n = Sheets.Count MsgBox n bbb111 (n) End Sub '------------- Sub bbb111(n) MsgBox n & "aa" ’aaは区別のため入れたもの Sheets(1).Move after:=Sheets(n) '左より1番目のシートを 'n番目に移動 End Sub 一番右端のシートをACTIVATEしていると、今ADDしたシートが一番右端に来る。 しかしそれ以外はどうもそのようにならない。何番目というのが右端に数えて行ってそれから左端に帰って何番目になるのかとも思ってみたが、不明。 それにサブルーチンbbb111に分けないと、ループするようなのもなぜか浅学の私には不明。 どなたか教えてください。

noname#63648
質問者

お礼

私の為にいろいろ考えて頂いたようで、大変ありがたく思います。 今の私には難しすぎてわかりませんが、締切をもう少し待ってみますので、回答が来ると良いですね。 もし来なかったら、改めて新しく質問されてもいいのでは。

  • kbonb
  • ベストアンサー率51% (254/492)
回答No.3

こんにちは Sub test() Worksheets.Add after:=Sheets(Sheets.Count) End Sub でいかがでしょうか?グラフシートがある場合にも対応してます。

参考URL:
http://www2.odn.ne.jp/excel/
noname#63648
質問者

お礼

ありがとうございます。 ワークシート=シートという風に漠然と言葉を使っていましたが、グラフシートというものもありましたね。そういえば使ったことあるのを思い出しました。勉強になりました。

  • furuchan
  • ベストアンサー率50% (4/8)
回答No.2

すごく使える参考URLがあります。このシートの追加方法も載せてます。便利ですよ(^^) sub add() Worksheets.Add.Move:=Worksheets(Worksheets.Count) end sub

参考URL:
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv2.html
noname#63648
質問者

お礼

ありがとうございます。 実は御指摘のHP、私のお気に入りにも登録してあるんですが、自分がやりたいこととサンプルのマクロとを結び付ける実力すらまだ無くて...。お恥ずかしい...。 でも、お二人の方にご回答頂きホントありがたく思います。

関連するQ&A