お世話になっております。
マクロのコードについての相談です。
シート名を「リスト」シートから取得して同じシートを複数作成するマクロを作成していますが、
上手く動作しなかったため、ご教授頂きたく質問いたしました。
「1」シートを複製し、「リスト」シートから取得した値をシート名にするマクロを組んでいました。
「リスト」シートの最終行を取得させて繰返し処理をさせると、実行エラー「1004」アプリケーション定義またはオブジェクト定義のエラーが発生し、「1(2)」シートが作成されてしまいます。
この2つの問題を発生させないように改善したいため、お力添えいただいだけると幸いです。
よろしくお願いいたします。
下記現状のコードとなります。
Sub シート複製()
Worksheets("リスト").Activate
For i = 2 To Cells(Rows.Count, "B").End(xlUp).Row
Sheets("1 ").Copy after:=Sheets(Sheets.Count)
Range("O5") = Sheets("リスト").Cells(i, "B")
ActiveSheet.Name = Sheets("リスト").Cells(i, "C")
Next i
End Sub
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
No.1さんのご回答にあるとおり、C列にシート名に使用できない文字を含む名称が入っていませんか?
たとえば、[shName1] とか、3\四半期とか。
https://qiita.com/RelaxTools/items/d173d0f944243 …
No.2
- 回答日時:
Range("O5") = Sheets("リスト").Cells(i, "B")
ActiveSheet.Name = Sheets("リスト").Cells(i, "C")
をやめて
ActiveSheet.Name = Sheets("リスト").Cells(i, "B").Value
でいいのでは?
Range("O5")とかC列とか、なんで登場するのか謎です。
早々のご回答ありがとうございます。
>Range("O5")とかC列とか、なんで登場するのか謎です。
これらが登場するには理由がありまして、Range("O5")については
”1”のシートのRange("O5")に値が入力されると関数が動作するようになっていることとC列に関してはC列の値を使ってシート名を変更しようと考えていました。こちらに関してはいんちょ様の仰る通り初めからどちらかに統一するべきだと思いますので、変更しようと思います。
No.1
- 回答日時:
こんにちは
>この2つの問題を発生させないように改善したいため
問題は一つではないのでしょうか?
>「1(2)」シートが作成されてしまいます。
ご提示のコードを実行しているのでしょうから、問題とは思えませんが?
どこでエラーになっているのか不明ですけれど、想像するところ
>ActiveSheet.Name = Sheets("リスト").Cells(i, "C")
で発生しているのではないかと、勝手に想像しました。
もしそうであるなら、以下あたりが怪しそうに思います。
・重複するシート名(=既に存在する)にしようとしている
・シート名に使用できない文字を含む名称にしようとしている
エラー発生時に確認してみてください。
違う所でのエラーの場合は、この回答は誤答なので、無視してください。
原因がわかれば、それを回避するようなコードを追加すれば宜しいと思います。
早々のご回答ありがとうございます。
多くのアドバイスを頂きありがとうございます。
実際に動作させて確認するとfujillin様の仰っている部分で
エラーが発生しています。
もう少し試行錯誤して回避できるようなコードを考えてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) A2~I4179列にあるリストを支社名ごとにシートに分けたいです。 各シート名はA列にある支社名とし 3 2023/08/29 16:46
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 最終行の指定について教えてください。 複数シートを1シートへまとめる下記マクロでは各シートの6行目を 1 2022/10/04 18:37
- Visual Basic(VBA) VBA 複数の各シートに行を追加したいです 2 2024/02/28 22:09
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Visual Basic(VBA) Excel VBA 文字列のセルを反映させたいです 2 2024/02/24 00:06
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
- Visual Basic(VBA) Excel VBA マクロ あるフォルダー内の複数のファイルを統合したいです 1 2024/02/19 21:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBA UserFormからの転記で
Visual Basic(VBA)
-
Excel VBA 定義されたプロージャ名、関数名の取得
Visual Basic(VBA)
-
VBAで大量のファイルをシート名ごとに転記やらいろいろしたい!
Visual Basic(VBA)
-
-
4
VBA指定行削除
Visual Basic(VBA)
-
5
ExcelVBAのFindFirstエラーについて
Visual Basic(VBA)
-
6
ExcelのVBAです。フォルダ内の全ファイルに、各ファイルの最初のシートを12か月分コピー
Visual Basic(VBA)
-
7
VBA listBoxについて
Visual Basic(VBA)
-
8
Excel-VBAのmsgBox()の不思議
Visual Basic(VBA)
-
9
左右の表のキー位置を合わせたい
Visual Basic(VBA)
-
10
VBA 複数条件の分岐処理の上手な方法
Visual Basic(VBA)
-
11
VBA listBoxから
Visual Basic(VBA)
-
12
VBA SaveChanges 上書きされない
Visual Basic(VBA)
-
13
エクセルVBAについて
Visual Basic(VBA)
-
14
VBA一覧取得 再投稿
Visual Basic(VBA)
-
15
VBA 複数のエクセルから一つのエクセルに貼り付ける
Visual Basic(VBA)
-
16
vba 削除
Visual Basic(VBA)
-
17
VBAに関して
Visual Basic(VBA)
-
18
VBAユーザーホームテキストボックスにカーソルを自動で表示したい
Visual Basic(VBA)
-
19
VBAコードが作動しません。修正したいのですが何処に原因かあるか教えて下さい。
Visual Basic(VBA)
-
20
VBAの質問です、複数のテキストボックスに同じコメントを
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelのマクロで該当処理できな...
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
実行時エラー'1004': WorkSheet...
-
エクセル・マクロ シートの非...
-
【Excel VBA】Worksheets().Act...
-
特定の文字を含むシートだけマ...
-
実行時エラー1004「Select メソ...
-
【VBA】特定の文字で改行(次の...
-
ブック名、シート名を他のモジ...
-
Access エクセルシート名変更
-
エクセルのシート名変更で重複...
-
Excelマクロのエラーを解決した...
-
エクセルのマクロでアクティブ...
-
XL:BeforeDoubleClickが動かない
-
エクセルVBA 変数への代入がう...
-
コマンドボタンをクリックでシ...
-
Excel VBA 複数行を数の分だけ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
VBAで大量のファイルをシート名...
-
ユーザーフォームに入力したデ...
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
VBA 存在しないシートを選...
-
Excelマクロのエラーを解決した...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
シートが保護されている状態で...
-
実行時エラー1004「Select メソ...
-
【Excel VBA】Worksheets().Act...
-
ブック名、シート名を他のモジ...
-
エクセルのシート名変更で重複...
-
ExcelのVBAのマクロで他のシー...
-
Excel VBA 複数行を数の分だけ...
-
エクセルのマクロについて教え...
-
VBA 最終行まで数式をコピーする
おすすめ情報