EXCEL VBA 初心者です。
とても困っています。
助けてください。
excel2010を使っています。
今,「原本」というシートがあり,それをマクロを使って同じブック内にコピーしたいと思っています。
コピーして新しく作られたシートの名前は「A1」のセルに入力されている値にしたいです。
コピーされた後のシートにはマクロボタンは削除したいと考えています。
また,コピーした後のアクティブシートは「原本」のシートにしたいのですが
これを全部いれたコマンドはどのようになるのでしょうか。
似たような質問だったり,回答があるのですが,
どのように組み合わせたらいいのかよく分かりません。
どなたかお助けいただけないでしょうか。
よろしくお願いします。
No.4ベストアンサー
- 回答日時:
こんばんは。
こちらも、#2/3さんのお考えの他にないかと作ってみました。それで、シートコピーを考えてみたのですが、マクロ自体をコピーしてはダメだと分かりましたので、Cells.Copy しかないようです。
以下は、ActiveX コントロール側のボタンのみに対応します。ActiveX コントロールのみ複数あっても全部消えてしまいます。
だから、必ず、ActiveX コントロール側のボタンにしてください。
原本シートにCommandButtonを貼り付け、それをダブルクリックすれば、マクロの起動部分が出来上がりますので、その中身のコードを貼り付けてください。
'//
Private Sub CommandButton1_Click() '←既存
Dim shName As String
Dim dummy As Variant
If Range("A1").Value = "" Then Exit Sub
shName = Range("A1").Value
On Error Resume Next
dummy = Worksheets(shName).Range("A1").Value
If dummy <> "" Then MsgBox shName & " has been existed!", vbCritical: Exit Sub
On Error GoTo 0
Cells.Copy
Worksheets.Add After:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = shName
.Paste
.OLEObjects.Delete
.Range("A1").Select
End With
Application.CutCopyMode = False
End Sub '←既存
'//
単純な内容ですが、Excel 2003 とは、何かが違うようです。今回、初めて、Excel 2010 で作りました。なお、エラーメッセージは、英語で出ています。
_____ " has been existed!"
○○は、すでに存在します!
という意味です。
>シートのコピーを複数枚行いたいのでコピーしたときに
コピーはシート1枚ずつです。シート名が同じですとコピーできません。
No.3
- 回答日時:
調べればすぐに判ると思うんですが・・・。
シート上のオブジェクトは
ActiveSheet.DrawingObjects.Delete
で、全部消えると思うんですけど・・・。
No.2
- 回答日時:
別に、一つ一つ考えれば難しいコードじゃないかと。
要は「コピーを掛けておいてからシートを追加する」って
手順に気づくかどうか・・・って話じゃないかと。
今現在、「原本」シートがActiveだとして・・・。
Cells.Select
Selection.Copy
' これで、シート全体をコピーですよね
Sheets.Add
ActiveSheet.Paste
' これで追加したシートに全体を貼り付けられるかと
ActiveSheet.Name = Range("A1").Value
' これで「追加したシート」のセルA1の内容がシート名に
Sheets("原本").Activate
' で、「原本」を選択して終わり
こんな感じですかね。テストして無いので動作するかは
判りませんけど、発想はこれで行ける筈。
この回答への補足
早速の回答ありがとうございます。
試してみて新しいシートの作成は指定したセルの名前でできました。
しかしマクロボタンまでコピーされてしまいます。
シートのコピーを複数枚行いたいのでコピーしたときにマクロボタンの削除まで
同時に行いたいのですがいい方法を御存じないでしょうか。
No.1
- 回答日時:
答えを出すのは簡単ですが、それでは勉強になりません。
その動作をマクロの記録でやってみて、どういうプログラムをマクロが作成するか見て、
自分で関数とか調べてみたらいかかでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
Excel 関数を使ってデータと一...
-
【エクセル】プルダウン設定の...
-
EXCELで別のブックから式をコピ...
-
Excelの行をコピーして貼り付け...
-
Excel 数式の保護をしたセルを...
-
EXCELのVBAでシートコピーをし...
-
ページの設定を別シートにコピ...
-
エクセルの1シートの内容を複...
-
エクセルVBA 1行飛ばしで転記す...
-
【Excel VBA】シートコピー時、...
-
エクセルのファイルで、あるブ...
-
JWWのショートカットキーが使え...
-
【Excel】数式をそのまま他のシ...
-
ExcelのBook内のシートを一枚だ...
-
ExcelVBAで、ユーザーフォーム...
-
エクセルで別のブックにワーク...
-
エクセル 別ファイルから シー...
-
エクセルでページごとにシート...
-
Excel VBA 複数シートを別ファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
Excel 関数を使ってデータと一...
-
EXCELのVBAでシートコピーをし...
-
EXCELで別のブックから式をコピ...
-
【Excel】数式をそのまま他のシ...
-
【VBA】コピー&複数個所のペー...
-
Excelの行をコピーして貼り付け...
-
【エクセル】プルダウン設定の...
-
エクセルのワークシートをUSBメ...
-
Excel シートのコピーの際、ペ...
-
エクセルVBA 1行飛ばしで転記す...
-
エクセルの1シートの内容を複...
-
【Excel VBA】シートコピー時、...
-
エクセルシートを別のエクセル...
-
ExcelVBAで、ユーザーフォーム...
-
エクセルでシートを「移動また...
-
Excel シートに別のExcelシート...
-
Excel 数式の保護をしたセルを...
-
EXCEL2007でシートをコピーする...
-
シートが保護されていないのに...
おすすめ情報