No.4ベストアンサー
- 回答日時:
どんどん作るsheetに同じ名前は付けられませんので、連番にします。
'sheetの存在チェック
Private Function isExistSheet(sheetName As String) As Boolean
Dim ws As Worksheet
For Each ws In Worksheets
If ws.name = sheetName Then
isExistSheet = True
Exit Function
End If
Next
isExistSheet = False
End Function
'新しいシート名の検索
Function GetNewSheetName(newSheetName As String) As String
Dim n As Integer
n = 1
Do
If isExistSheet(newSheetName & str(n)) = False Then
Exit Do
End If
n = n + 1
Loop
GetNewSheetName = newSheetName & str(n)
End Function
Private Sub ボタン11_Click()
Dim ws As Worksheet
Dim newSheetName As String
newSheetName = "新しいシート" '追加シートの先頭名(適当な名前を付けてください)
Set ws = Worksheets.Add(after:=Worksheets(Worksheets.Count)) '新しいシートを最後のシートの後ろに作る
Sheets("会員マスタ").Cells.Copy Destination:=ws.Cells(1, 1) '会員マスタのCellデータを新しいシートにコピー
ws.name = GetNewSheetName(newSheetName)'新しいシート名
End Sub
このようにやりたかったんです。
ありがとうございます。
すごいですね!!
無事に完了しました。
ご丁寧に
ありがとうございました。
No.3
- 回答日時:
Private Sub シート追加_Click()
の部分を
Private Sub ボタン11_Click()
にしたらどうでしょうか?
CommandButtonには、オブジェクト名と、ボタンに表示される文字(Caption)があります。
エラーからすると、「シート追加」と言うボタンは、オブジェクト名が「ボタン11」でCaptionが「シート追加」になっているんじゃないかと思います。
上記でもだめなようなら、デザインモードでコマンドボタンをダブルクリックしてみてください。
自動的に
Private Sub ボタン11_Click()
End Sub
と言うモジュールが作られると思います。
その中に回答のモジュールをコピーしてみてください。
この回答への補足
出来ました!!ありがとうございます。
あともう1つだけお願い致します。
ボタンを押すとどんどん後ろにシートが追加されるようにしたいのですが、それにはどうしたらよいですか?
No.2
- 回答日時:
これではどうでしょう
Private Sub シート追加_Click()
Dim ws As Worksheet
Set ws = Worksheets.Add(after:=Sheets("会員マスタ")) '新しいシートをsheets("会員マスタ")の後ろに作る
Sheets("会員マスタ").Cells.Copy Destination:=ws.Cells(1, 1) '会員マスタのCellデータを新しいシートにコピー
ws.Name = "新しいシート" '追加したシートの名前を変更
End Sub
この回答への補足
なんどもすみません。
マクロの内容はばっちりなんだと思うのですが、設定の仕方が悪いらしく
ボタンをクリックすると「マクロ′会員マスタ.xls!ボタン11_click'が見つかりません」と出てしまいます。
どのように設定したらよいでしょうか?
No.1
- 回答日時:
こんなのではどうですか?
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = Worksheets.Add(after:=Me)
Me.Cells.Copy Destination:=ws.Cells(1, 1)
ws.Name = "新しいシート"
End Sub
この回答への補足
ありがとうございます。早速やってみたのですが、ボタンを押しても見つかりませんとメッセージが出てしまいます。また、MEの部分を変更してくださいと出るのですがどうしたらいいでしょうか?
すみません、VBA初心者なので・・・。
ちなみにさくせいしたボタンの名前は”シート追加”です。
元データが入っているシートの名前は"会員マスタ”になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
【ExcelVBA】全シートのセルの...
-
Excel マクロについての相談
-
Excelマクロのエラーを解決した...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
excelのマクロで該当処理できな...
-
【Excel VBA】Worksheets().Act...
-
同じ作業を複数のシートに実行...
-
XL:BeforeDoubleClickが動かない
-
VBAで、シート間の転記するコー...
-
ブック名、シート名を他のモジ...
-
シートが保護されている状態で...
-
エクセルのマクロについて教え...
-
ExcelのVBAのマクロで他のシー...
-
実行時エラー1004「Select メソ...
-
VBA 最終行まで数式をコピーする
-
【ExcelVBA】動的にボタン、ボ...
-
【VBA】指定した検索条件に一致...
-
VBA 検索して一致したセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
ExcelVBA シート名を複数セルか...
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
【Excel VBA】Worksheets().Act...
-
ExcelのVBAのマクロで他のシー...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報