No.2ベストアンサー
- 回答日時:
あなたのコードだと
A列の2行目から11行目までのセルの値を名前とするシートができます。
11行目のセルに空白が入っている場合
excelがSheetXXという名前をつけてシートを作る
名前変更しようとして空白なのでエラーになる
1行で書いてあってもExcelはシートを追加する、名前を変更するという動作をしています。
neSheet = sht.Range("a" & (i + 1)).Value
i+1は 単にi とすれば1行目から10行目のセルを参照することになります。
これでエラーは回避できますが
このコードのままだとシートの並びはセルの逆順になりますけどそれでいいですか?
Sub test()
Dim neSheet As String
Dim curSheet As String
Dim i As Integer
Dim sht As Worksheet
Set sht = Worksheets(1)
curSheet = sht.Name
For i = 1 To 10
neSheet = sht.Range("a" & i).Value
Worksheets.Add(After:=Worksheets(curSheet)).Name = neSheet
curSheet = neSheet
Next i
End Sub
セルの順番通りにシートを作りたい場合のコードです
シートを作った時の名前を覚えておいて青の後ろしシートを作るようにしています。
No.1
- 回答日時:
>そのデータを参照して、40個シートを作成し
セルのデータを元にシートにシート名を付けて
Sheets.Add でシートの追加ができます
Sheets("Sheet1").Name = "test" でシートの名前の変更ができます
この部分をFor Next やWhile Wendなどの制御構文を使ってLOOPすればできます。
どの程度のVBAの経験があるのか分かりませんので...
もし必要なら要求されれば他のコードも提示できます。
この回答への補足
回答ありがとうございます。
ずっと試しているのですが、
Sub test()
Dim neSheet As String
Dim i As Integer
Dim sht As Worksheet
Set sht = Worksheets(1)
For i = 1 To 10
neSheet = sht.Range("a" & (i + 1)).Value
Worksheets.Add(After:=Worksheets(1)).Name = neSheet
Next i
End Sub
サンプルでA列の10番目までの値を取得して
シートを作るようにしていますが、
実行すると400と表示されたエラーが発生します。
エラーが出ているのですが、シートも作成されています。
ただ、ひとつ余分なsheet56
(実行する度に56の数字の部分が変わっています)
もしご存知なら全く別の方法でも、
教えていただけると助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
EXCEL:同じセルへどんどん足し...
-
Excelで金銭出納帳。繰越残高を...
-
エクセルで前のシートを連続参...
-
別シート参照のセルをシート毎...
-
シートの保護のあとセルの列、...
-
EXCELで1ヶ月分の連続した日付...
-
VBAで条件によりフォントサイズ...
-
エクセルで、「1つ前のシート...
-
Accessのスプレッドシートエク...
-
エクセルのシート名をリスト化...
-
特定のシートの削除を禁止した...
-
エクセルで前シートを参照して...
-
エクセルでファイル保存時に複...
-
VBAでシートコピー後、シート名...
-
エクセルでシート名を自動入力...
-
Excelのシートを、まとめて表示...
-
EXCELで同一フォーマットのシー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
Excelで金銭出納帳。繰越残高を...
-
エクセルでファイルを開いたと...
-
EXCELで1ヶ月分の連続した日付...
-
エクセルVBAでパスの¥マークに...
-
EXCEL:同じセルへどんどん足し...
-
シートの保護のあとセルの列、...
-
別シート参照のセルをシート毎...
-
エクセルで前のシートを連続参...
-
前の(左隣の)シートを連続参...
-
EXCELで同一フォーマットのシー...
-
VBAでシートコピー後、シート名...
-
Excel 連番を入力する方法
-
エクセル 計算式も入っていない...
-
エクセルで前シートを参照して...
-
エクセルでシート名を自動入力...
-
Accessのスプレッドシートエク...
-
複数シートの特定の位置に連番...
-
エクセルのシート名をリスト化...
おすすめ情報