アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルのシート番号を、シートの名前にする、ということをVBAをつかってやりたいのですが、うまくいきません。
たとえば、5枚のシートがあったとしたら、最初のシート名=1となり、二番目が"2"、三番目が"3"で、"付録"というシートになったらなまえをつけるのをやめる。。。。ということをしたいのです。それをフッターにいれて、ページとして表示したいのですが、どうしてもうまくいきません。
シートの名前をつける方法として、
ActiveSheet.Name = "シート名前"
ということですが、BOOK内の複数のシートに名前をつける方法がわかりません。
詳しいお方、どうかおしえてください。

A 回答 (3件)

久しぶりに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をどこで入れたらいいのか分からなくなり、エラーばかり出てしまいます。
このコードに重複シート名などのエラーコードをいれるとしたら、どの部分に入れたらよいのでしょうか。。。

補足日時:2010/01/26 11:52
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/01/30 09:17

シート名をフッターに入れる所もマクロでやる場合、



No.1の方のマクロの場合、ws.Name = cot の下に
ws.PageSetup.CenterFooter = "&A"

No.2の方のマクロの場合、Sheets(i).Name = i の下に
Sheets(i).PageSetup.CenterFooter = "&A"

を、付け加えてください。なお、フッターの中央に配置していますが、RightFooter でも、LeftFooterでも同様です。
    • good
    • 0
この回答へのお礼

大変分かりやすい解答をありがとうございました。
早速やってみたらスムーズにできました。
基本的な構文に、何かをいれようとするとすぐにエラーになってしまって、へこみます><
ありがとうございました。

お礼日時:2010/01/26 13:07

「付録」というシートが出るまで各シートのシート名を順次数字を増やしていきたいなら以下のようなコードでシート名を付けることができます。



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をどこで入れたらいいのか分からなくなり、エラーばかり出てしまいます。
このコードに重複シート名などのエラーコードをいれるとしたら、どの部分に入れたらよいのでしょうか。。。

補足日時:2010/01/26 13:05
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2013/01/30 09:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!