No.4ベストアンサー
- 回答日時:
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & toBook
を
Workbooks.Open Filename:="Aフォルダ内Bフォルダ\" & toBook
に変えてください。
No.3
- 回答日時:
以下のマクロを標準モジュールへ登録してください。
コピー先のブックは、”速報.xlsx”としました。(”速報book.xlsx”ではありません)
速報.xlsxのオープンはマクロ側で行いますが、マクロ側でクローズは行いません。(クローズの旨提示されていない為)
マクロのあるブックと速報.xlsxは同じフォルダ内にある前提です。
--------------------------------------------------------
Option Explicit
Public Sub ブック間シートコピー()
Dim fromsheet As String
Dim toBook As String
Dim toSheet As String
Dim ix As Long
toBook = "速報.xlsx"
fromsheet = "速報シート"
toSheet = ThisWorkbook.Worksheets(fromsheet).Range("A1").Value
If toSheet = "" Then
MsgBox ("A1のシート名不正")
Exit Sub
End If
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & toBook
ix = CheckSheet(toBook, toSheet)
If ix > 0 Then
If MsgBox("重複する名前がありますが上書きしますか?", vbYesNo) <> vbYes Then
Exit Sub
End If
Application.DisplayAlerts = False 'シート削除時の警告を出さないようにする
Workbooks(toBook).Worksheets(ix).Delete '既に該当シートがあるなら削除する
Application.DisplayAlerts = True 'シート削除時の警告を出すようにする(元に戻す)
End If
'シートをコピーする(一番左へ)
ThisWorkbook.Worksheets(fromsheet).Copy before:=Workbooks(toBook).Worksheets(1)
Workbooks(toBook).Worksheets(1).Name = toSheet
MsgBox ("処理完了")
End Sub
'シート名チェック
Private Function CheckSheet(ByVal book, ByVal sheet As String) As Long
Dim ix As Long
For ix = 1 To Workbooks(book).Worksheets.Count
If LCase(Workbooks(book).Worksheets(ix).Name) = LCase(sheet) Then
CheckSheet = ix
Exit Function
End If
Next
CheckSheet = -1
End Function
No.2
- 回答日時:
補足要求です
①”Abook”と”速報book”の拡張子は何でしょうか。
②”Abook”と”速報book”は両方とも既にオープンされている前提でよいですか。
③このマクロは”Abook”に格納する前提でよいですか。
No.1
- 回答日時:
こんにちは
大雑把に二通りの考え方があるかと思います。
◇事前に既存のシート名をチェックする
For Each sht In Worksheets
If sht.Name = newName Then MsgBox "すでに存在する"
Next sht
みたいな感じ。
◇エラーが出たら処理する
すでに同じ名前が存在する状態で名前を設定しようとすると、VBAのエラーが発生しますので、
On Error ~~
でエラーの発生をチェックし、発生していたらエラー処理を行う
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) 条件に一致した場合の処理 2 2022/10/18 06:30
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) Excel VBA 大量のレコードからある列の重複数をカウントする方法?拡張編 7 2022/08/22 13:43
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
VBAでシートコピー後、シート名が重複している時の処理
Access(アクセス)
-
エクセルのシート名変更で重複した時のvbaの処理
Visual Basic(VBA)
-
VBAで同じシート名のコピー時は処理中止したいのですが・・・
Visual Basic(VBA)
-
-
4
Excel VBA シート名変更時、重複していたら連番を付けたい
その他(Microsoft Office)
-
5
Excelシート名が重複してらシート名に連番を付加させる方法
Excel(エクセル)
-
6
VBA シート名重複した場合削除する
Access(アクセス)
-
7
VBAでセルに入っている日付をシート名にする
Excel(エクセル)
-
8
VBA 存在しないシートを選択した時にエラーメッセージを表示するには?
Visual Basic(VBA)
-
9
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
10
シート名を変更してもVBAでエラーにならないように
Excel(エクセル)
-
11
Excel VBAで、Application.InputBoxのキャンセルと入力値ゼロを区別したい。
Visual Basic(VBA)
-
12
InputBoxに入力した言葉をシート名にしたい!
Excel(エクセル)
-
13
複数ファイルから特定シートのコピー
Excel(エクセル)
-
14
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
15
特定のセルが空白だったら、その行を非表示にしたい。。。
Visual Basic(VBA)
-
16
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
17
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
18
【Excel VBA】ファイル名が一定でないファイルの指定方法
Excel(エクセル)
-
19
メッセージボックスでシート名を変更するマクロ。
Word(ワード)
-
20
【Excel VBA】シートコピー時、マクロコードはコピーしたくない
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelはなんで先頭の0を消すん...
-
Excel元に戻す方法を教えてくだ...
-
Excelが固まってしまった。
-
エクセルで特定の範囲内から小...
-
Excel 2019 のピボットテーブル...
-
テレビを購入してYouTubeのボタ...
-
Excel2013のF6キー操作について
-
西暦や和暦の表示をyyyymmdd表...
-
【関数】スペースがいくつ入っ...
-
【Microsoft Office Excel Comp...
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excelのセルを飛ばして入力する
-
MOS365 Excel Expert / Excel R...
-
エクセルで指定した日付、店舗...
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
-
Excel初心者です。 詳しい方、...
-
Excelで全角を半角にしたいので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】sheet作成時にマク...
-
エクセル/マクロ Exit Subが実...
-
VBA シートの切り替えができな...
-
エクセル 「実行時エラー"13":...
-
マクロ実行ボタンがコピー出来ない
-
VBAでシートコピー後、シート名...
-
エクセル 複数シートのフィル...
-
シートの表示が消えて整列をし...
-
フェイス・シートについて教え...
-
エクセルのワークシートの並べ替え
-
Excelユーザーフォームでシート...
-
Excel2000でシート上にボタンを...
-
【エクセル】複数の文字を同時...
-
アクセス97での罫線について
-
エクセルのシートを自動でコピー
-
ワークシート上に配置したコマ...
-
不明なコマンドです("FROM")。...
-
Access2010 「演算子がありませ...
-
WordPressをインストールしてい...
-
オペランドが足りませんとコメ...
おすすめ情報
Abook及び、速報bookはエクセルです。
以下、自分で調べて組んでみたのですが、うまくいきません。
ちなみに、マクロは初心者です。
---------------------------------
Abook.xlsxにマクロを組んでいます
速報.xlsxを開く
Abook.xlsxの速報シートを速報.xlsxの先頭にコピー
(※A1セルの名前で保存)
同じシートの名前がある場合、メッセージボックスが出るようにしたい
(同じ名前のシートがあります。上書きしますか?)
yes 上書き
no 処理中断
よろしくお願いいたします
保存先のAbook.xlsxはAフォルダ内にあり、速報.xlsxはAフォルダ内のBフォルダ内にあるのですが、組むことはできますでしょうか?