エクセルのシート番号を、シートの名前にする、ということをVBAをつかってやりたいのですが、うまくいきません。
たとえば、5枚のシートがあったとしたら、最初のシート名=1となり、二番目が"2"、三番目が"3"で、"付録"というシートになったらなまえをつけるのをやめる。。。。ということをしたいのです。それをフッターにいれて、ページとして表示したいのですが、どうしてもうまくいきません。
シートの名前をつける方法として、
ActiveSheet.Name = "シート名前"
ということですが、BOOK内の複数のシートに名前をつける方法がわかりません。
詳しいお方、どうかおしえてください。
No.1ベストアンサー
- 回答日時:
久しぶりにOKWaveを見ています。
重複のシート名がある場合等、エラー対応はしていません。参考に。
Sub setSheetName()
Dim ws As Worksheet '// ワークシート
Dim cot As Integer '// カウンタ
cot = 1
For Each ws In Worksheets
If ws.Name <> "付録" Then
ws.Name = cot
cot = cot + 1
Else
Exit For
End If
Next
End Sub
インデントは全角半角を使っています。コピーすれば、VBEではうまく表示されるはずです。
この回答への補足
早々のご解答ありがとうございます。
大変分かりやすく、そのままコピーしてスムーズにできました。
FOR文のなかにIFなどが入ってくるとNEXTや、ELSEをどこで入れたらいいのか分からなくなり、エラーばかり出てしまいます。
このコードに重複シート名などのエラーコードをいれるとしたら、どの部分に入れたらよいのでしょうか。。。
No.3
- 回答日時:
シート名をフッターに入れる所もマクロでやる場合、
No.1の方のマクロの場合、ws.Name = cot の下に
ws.PageSetup.CenterFooter = "&A"
No.2の方のマクロの場合、Sheets(i).Name = i の下に
Sheets(i).PageSetup.CenterFooter = "&A"
を、付け加えてください。なお、フッターの中央に配置していますが、RightFooter でも、LeftFooterでも同様です。
大変分かりやすい解答をありがとうございました。
早速やってみたらスムーズにできました。
基本的な構文に、何かをいれようとするとすぐにエラーになってしまって、へこみます><
ありがとうございました。
No.2
- 回答日時:
「付録」というシートが出るまで各シートのシート名を順次数字を増やしていきたいなら以下のようなコードでシート名を付けることができます。
Sub sample()
Dim i As Integer
For i = 1 To Sheets.Count
If Sheets(i).Name = "付録" Then Exit Sub
Sheets(i).Name = i
Next i
End Sub
この回答への補足
早々のご解答ありがとうございます。
大変分かりやすく、そのままコピーしてスムーズにできました。
FOR文のなかにIFなどが入ってくるとNEXTや、ELSEをどこで入れたらいいのか分からなくなり、エラーばかり出てしまいます。
このコードに重複シート名などのエラーコードをいれるとしたら、どの部分に入れたらよいのでしょうか。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 3つのエクセルをそれぞれのシートのセルに反映させたいときはどうしたらいいでしょうか? 例えば①シート 4 2023/04/25 20:13
- Visual Basic(VBA) 条件に一致した場合の処理 2 2022/10/18 06:30
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) vba アクティブシートのA1セルの値を基準に複数のシートコピー&シート名を 6 2023/04/12 18:36
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) シート名を簡単に書く方法があれば教えてください。 4 2023/08/24 12:40
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) Excel セルに入っている日付を参照して、別シートのリストを表示させたい 1 2022/04/12 17:02
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでシートコピー後、シート名...
-
エクセルVBAでパスの¥マークに...
-
EXCEL:同じセルへどんどん足し...
-
エクセルでファイルを開いたと...
-
エクセルの複数シートの保護を...
-
Excelで同じシートのコピーを一...
-
EXCELで1ヶ月分の連続した日付...
-
Accessのスプレッドシートエク...
-
エクセルVBA 串刺し計算の際、...
-
Excel、同じフォルダ内のExcel...
-
Excelで金銭出納帳。繰越残高を...
-
シート名ではなく、相対位置で...
-
シートが違う2枚のエクセルシー...
-
Excelのシートを、まとめて表示...
-
エクセル:ブックを開くとき、...
-
excelでシート毎の最終更新日を...
-
excelで会議室予約表の作成(マ...
-
Excelが開かない!印刷プレビュ...
-
エクセルで前シートを参照して...
-
別シートの最終行に貼り付けす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
前の(左隣の)シートを連続参...
-
Excelで金銭出納帳。繰越残高を...
-
EXCEL:同じセルへどんどん足し...
-
EXCELで1ヶ月分の連続した日付...
-
シートの保護のあとセルの列、...
-
別シート参照のセルをシート毎...
-
エクセルでファイルを開いたと...
-
EXCELで同一フォーマットのシー...
-
エクセルで前のシートを連続参...
-
エクセルで前シートを参照して...
-
VBAでシートコピー後、シート名...
-
Accessのスプレッドシートエク...
-
エクセルのシート名をリスト化...
-
複数シートの特定の位置に連番...
-
Excelのシートを、まとめて表示...
-
エクセル 計算式も入っていない...
-
スプレッドシートの関数VLOOKUP...
おすすめ情報