お世話になっております。
マクロのコードについての相談です。
シート名を「リスト」シートから取得して同じシートを複数作成するマクロを作成していますが、
上手く動作しなかったため、ご教授頂きたく質問いたしました。
「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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
VBA UserFormからの転記で
Visual Basic(VBA)
-
Excel VBA 定義されたプロージャ名、関数名の取得
Visual Basic(VBA)
-
VBA listBoxについて
Visual Basic(VBA)
-
-
4
Excel-VBAのmsgBox()の不思議
Visual Basic(VBA)
-
5
VBAに関して
Visual Basic(VBA)
-
6
VBAユーザーホームテキストボックスにカーソルを自動で表示したい
Visual Basic(VBA)
-
7
ExcelVBAのFindFirstエラーについて
Visual Basic(VBA)
-
8
Excel VBA マクロ シート名を変えずにA列にあるセル名の名前でファイルの分割をしたいです
Visual Basic(VBA)
-
9
マクロについて質問です。 セルの内容をクリアするコマンドボタン(AX) を作成しました。 指定範囲が
Visual Basic(VBA)
-
10
Excelについて
Visual Basic(VBA)
-
11
VBAのコードを教えてください
Visual Basic(VBA)
-
12
Excel関数またはVBAでの質問になります
Visual Basic(VBA)
-
13
FormulaR1C1の 相対参照式のコピー
Excel(エクセル)
-
14
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
15
ExcelのVBAです。フォルダ内の全ファイルに、各ファイルの最初のシートを12か月分コピー
Visual Basic(VBA)
-
16
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
-
17
エクセルの合計を自動で表示させたいです
Visual Basic(VBA)
-
18
【ExcelVBA】インデックスが有効範囲にありません。の理由が分かりません
Visual Basic(VBA)
-
19
ExcelVBA シート名を複数セルから取得して変更
Visual Basic(VBA)
-
20
左右の表のキー位置を合わせたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
【VBA】色のついたシート名を取得
-
セルの値によって、シート見出...
-
ブック名、シート名を他のモジ...
-
別のシートを参照して計算する方法
-
XL:BeforeDoubleClickが動かない
-
VBAで同じシート名のコピー時は...
-
マクロを使って、シート印刷完...
-
ExcelのVBAのマクロで他のシー...
-
VBA 存在しないシートを選...
-
VBA 最終行まで数式をコピーする
-
特定の文字を含むシートだけマ...
-
【Excel VBA】Worksheets().Act...
-
Access エクセルシート名変更
-
ExcelVBA シート名を複数セルか...
-
エクセルVBA 別シートからのコ...
-
同じ作業を複数のシートに実行...
-
実行時エラー'1004': WorkSheet...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
同じ作業を複数のシートに実行...
-
ExcelVBA シート名を複数セルか...
-
【ExcelVBA】全シートのセルの...
-
Excel マクロについての相談
-
VBA 存在しないシートを選...
-
実行時エラー'1004': WorkSheet...
-
特定の文字を含むシートだけマ...
-
ExcelのVBAのマクロで他のシー...
-
ブック名、シート名を他のモジ...
-
XL:BeforeDoubleClickが動かない
-
VBA 複数の各シートに行を追加...
-
エクセルのシート名変更で重複...
-
【Excel VBA】Worksheets().Act...
-
シートが保護されている状態で...
-
Excel VBA 複数行を数の分だけ...
-
for 文の 繰り返し処理に使える...
おすすめ情報