
No.1ベストアンサー
- 回答日時:
こんなんでどうですか。
---
Sub test()
Dim i As Integer
'最後のシートをコピーしその後ろに追加
Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count)
'名前を変更
i = Left(Sheets(Sheets.Count - 1).Name, Len(Sheets(Sheets.Count - 1).Name) - 1)
Sheets(Sheets.Count).Name = IIf(i + 1 > 12, 1, i + 1) & "月"
End Sub
ご回答ありがとうございます。変数の宣言をして「最後のシートをその後ろに追加という」発想が自分には思いつきませんでした。確かに、自分の用途としては、最後を増やすこと意外ありません。それから12月から1月の切り替えですが、IIf(i + 1 > 12, 1, i + 1) & "月"とても参考になりました。自分には非常に役に立ちます。ありがとうございます。
No.4
- 回答日時:
ここへ質問する前に、操作をしてマクロの記録をなぜ採らないのか。
そして次の月にはどこをどう変えればよいか、を考えることだ。
Sub Macro3()
Sheets("Sheet1").Select
Sheets.Add
Sheets("Sheet4").Select
Sheets("Sheet4").Name = "5"
End Sub
(1)この場合に前の月のシート(名)はどういう風に捕まえるか問題
こんなことも、質問で「次月」と済ましてしまうようでは、プログラムは進まない。
今月シートとは何かから考えないと。
必ず今月シートを開いて、完成したVBAを実行するなら、ActiveSheetなどの捉え方を使えるが、不便では?。
シート名をそもそどうするかを考えないと(質問に明記して質問しないと)。
(2)次の月をどうして決めるか。、特に12月の次は1月にしなければならないが、どう計算などするか。
日付シリアル値に持ち込んで、月部分に+1するのが確実なように思う。
月数字以外と、月数字部分を分ける
シート名から年、月、1の日を作り、そこから関数で年、月+1,1の日を作り、年、月の部分を文字列化して、月数字以外部分を加えるなど、どうかな。
人間にシート挿入のシート名を毎度答えさせる手もあり、結構安定性があるようにもおもうが。
(3)3月の内容をコピーして貼り付けしたいのです
これもマクロの記録でコードがわかる。次の月になると、データ数の増減などで、コピーするセル範囲は変わるのかな(フォーと尾が決った表で固定なのか?)。
ご回答ありがとうございます。まず、ごもっともなご指摘ありまがとうございます。素人ゆえに、将来恥ずかしい質問もすることもあると思います。自分なりに検索したり、記録などで読み取ろうともしましたが、解決には至らず、質問しました。わからないから質問するという人もいることをご理解ください。内容に至っては、12月と1月の件などその考え方の基礎を理解できました。その難しさもわかりました。やって覚えるというよりは、基本の考え方を地道に蓄積していくしかないということも理解できました。マクロについては、ご回答のように「5」のシートができました。ありがとうございます。
No.3
- 回答日時:
No.2です!
たびたびごめんなさい。
12月の場合を考慮していませんでした。
↓のコードに訂正してください。
Sub test()
Dim i As Long
i = WorksheetFunction.Substitute(ActiveSheet.Name, "月", "") * 1
ActiveSheet.Cells.Select
Selection.Copy
Worksheets.Add after:=ActiveSheet
ActiveSheet.Paste
If i = 12 Then
ActiveSheet.Name = "1月"
Else
ActiveSheet.Name = i + 1 & "月"
End If
Application.CutCopyMode = False
ActiveSheet.Range("A1").Select
End Sub
何度も失礼しました。m(__)m
ご回答ありがとうございます。また、訂正版もありがとうございます。
実際に自分もやってみましたが、13月になりました。しかし、そういうことも大事なことですから
実際に、この改訂版との違いで、すごく役にたちました。もしも改訂版が最初に投稿されていたら自分はそのことに、気付かずにいた気がシマス。参考になりました。改訂版できました。12月の次は1月になるという定義など、少しづつわかってきました。ありがとうございます。
No.2
- 回答日時:
こんにちは!
一例です。
同一ブック内で同じSheet名を付けることはできませんので、
今操作中のSheet名の月の翌月sheet名はないということが大前提です。
Sub test()
Dim i As Long
i = WorksheetFunction.Substitute(ActiveSheet.Name, "月", "") * 1
ActiveSheet.Cells.Select
Selection.Copy
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Paste
ActiveSheet.Name = i + 1 & "月"
Application.CutCopyMode = False
ActiveSheet.Range("A1").Select
End Sub
こんな感じではどうでしょうか?m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) 【VBA】指定した検索条件に一致したら別シートに転記したい 2 2022/03/23 16:14
- Excel(エクセル) シート名を簡単に書く方法があれば教えてください。 4 2023/08/24 12:40
- Excel(エクセル) エクセルで最下行にデータを追加するVBA 6 2023/05/09 09:30
このQ&Aを見た人はこんなQ&Aも見ています
-
ショボ短歌会
ひどい短歌を詠んでください。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
性格いい人が優勝
できるだけ性格いい人になって回答をお願いします。
-
チョコミントアイス
得意ですか?不得意ですか?できれば理由も教えてください。
-
カラオケの鉄板ソング
歌えばその場が絶対盛り上がる「鉄板ソング」を教えてください!
-
VBA シート名を先月の名前にしたい
Excel(エクセル)
-
Excelでシートに年月を自動で変更するやり方
Excel(エクセル)
-
月が変わったら自動でシートが複製される方法を教えてください。
Visual Basic(VBA)
-
-
4
前月の統計表の計算式を残したまま今月のシートに一括コピーする方法ありますか?
Excel(エクセル)
-
5
エクセル:VBAで月変わりで、自動でシートを選択したい
Excel(エクセル)
-
6
エクセルのシートコピーした際に数式を月移動したい(?)
Excel(エクセル)
-
7
Excelで金銭出納帳。繰越残高を翌月へ・・・
その他(パソコン・スマホ・電化製品)
-
8
【Excel マクロ】 同一book内で、翌日のシート作成
Excel(エクセル)
-
9
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
10
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
11
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
12
エクセルで、月によって参照するシートを自動的に変える関数
Excel(エクセル)
-
13
エクセルのシート名変更で重複した時のvbaの処理
Visual Basic(VBA)
-
14
Excelvbaでブックをコピー名前翌月に変更
Excel(エクセル)
-
15
VBAでセルに入っている日付をシート名にする
Excel(エクセル)
-
16
Excelにて、ユーザーフォームで、日付けの範囲を指定し、検索しデーターを抽出し 別シートへ転記した
Excel(エクセル)
-
17
VBAで繰り返しコピーしながら下へ移動させる方法
Excel(エクセル)
-
18
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
19
エクセル マクロ 名前を付けて保存 PDF保存先指定 ファイル名任意+日付
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
別シート参照のセルをシート毎...
-
前の(左隣の)シートを連続参...
-
エクセルでファイルを開いたと...
-
エクセルで前シートを参照して...
-
Excel、同じフォルダ内のExcel...
-
VBAで条件によりフォントサイズ...
-
複数シートの特定の位置に連番...
-
Excelで金銭出納帳。繰越残高を...
-
excelでシート毎の最終更新日を...
-
【Excel関数】値が合致するセル...
-
エクセルVBA 串刺し計算の際、...
-
EXCELで1ヶ月分の連続した日付...
-
EXCEL マクロで 同じフォルダ内...
-
エクセル 計算式も入っていない...
-
Excel シートに画像が貼ってあ...
-
シート番号からシート名を取得する
-
エクセルでシート名を自動入力...
-
エクセルで前のシートを連続参...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの複数シートの保護を...
-
別シート参照のセルをシート毎...
-
前の(左隣の)シートを連続参...
-
Excelで金銭出納帳。繰越残高を...
-
エクセル 計算式も入っていない...
-
特定のシートの削除を禁止した...
-
EXCEL:同じセルへどんどん足し...
-
エクセルでファイルを開いたと...
-
シート番号からシート名を取得する
-
シートの保護のあとセルの列、...
-
エクセルVBAでパスの¥マークに...
-
Excel、同じフォルダ内のExcel...
-
エクセルで前シートを参照して...
-
Excelのシートを、まとめて表示...
-
エクセルで前のシートを連続参...
-
エクセルのシート名をリスト化...
-
Accessのスプレッドシートエク...
-
複数シートの特定の位置に連番...
-
EXCELで1ヶ月分の連続した日付...
-
VBAで条件によりフォントサイズ...
おすすめ情報