- ベストアンサー
エクセルで、シート番号をシート名にする方法
エクセルのシート番号を、シートの名前にする、ということをVBAをつかってやりたいのですが、うまくいきません。 たとえば、5枚のシートがあったとしたら、最初のシート名=1となり、二番目が"2"、三番目が"3"で、"付録"というシートになったらなまえをつけるのをやめる。。。。ということをしたいのです。それをフッターにいれて、ページとして表示したいのですが、どうしてもうまくいきません。 シートの名前をつける方法として、 ActiveSheet.Name = "シート名前" ということですが、BOOK内の複数のシートに名前をつける方法がわかりません。 詳しいお方、どうかおしえてください。
- bububuu
- お礼率40% (4/10)
- オフィス系ソフト
- 回答数3
- ありがとう数5
- みんなの回答 (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ではうまく表示されるはずです。
その他の回答 (2)
- mt2008
- ベストアンサー率52% (885/1701)
シート名をフッターに入れる所もマクロでやる場合、 No.1の方のマクロの場合、ws.Name = cot の下に ws.PageSetup.CenterFooter = "&A" No.2の方のマクロの場合、Sheets(i).Name = i の下に Sheets(i).PageSetup.CenterFooter = "&A" を、付け加えてください。なお、フッターの中央に配置していますが、RightFooter でも、LeftFooterでも同様です。
お礼
大変分かりやすい解答をありがとうございました。 早速やってみたらスムーズにできました。 基本的な構文に、何かをいれようとするとすぐにエラーになってしまって、へこみます>< ありがとうございました。
- MackyNo1
- ベストアンサー率53% (1521/2850)
「付録」というシートが出るまで各シートのシート名を順次数字を増やしていきたいなら以下のようなコードでシート名を付けることができます。 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
- エクセル2000・シートごとのページ番号とページ数、ブック全体のページ番号と総ページ数
エクセル2000についてお尋ねします。 ヘッダの右側に ([シート毎のページ番号]/[シート毎のページ数]) フッタの中央に ([ブック全体の通しページ番号]/[ブック全体の総ページ数]) を入力・印刷したいのです。 今までは手入力でフッタのページ番号のうしろに「+前のシートまでのページ数」、[ブック全体の総ページ数]の代わりに数値を直接入力していたのですが、1つのブックにつきシート数が20~60程度ある上にページの追加・削減があるので、もっと簡単なやり方があったら教えてほしいです。 VBAは、まだ勉強を始めたばかりで、ネット上で使えそうなVBAをコピーして自分のエクセルに貼ることしか出来ません^^; どうか、よろしくお願いします。
- 締切済み
- オフィス系ソフト
- Excel等、同一の大きさでページを振る方法
100ページ位のEXCELの資料があります。 複数のBook(20弱)に分かれていて ページフッターがあるもの、縮小しているもの、 複数シートに別れるものなどさまざまです。 この資料に統一のページ番号を振ることは可能でしょうか? 各Excelに値としてページを入力しても各資料で拡大縮小率が違うので大きさが違ってきてしまいます。 Microsoftバインダーを使ってみたのですが、 ページフッターが削除されてしまうためうまくいきませんでした。 また、客先等で印刷することも考えられるので あらかじめ紙にページを降っておくこともできません。 何か良い方法があれば教えてください。
- 締切済み
- オフィス系ソフト
- エクセルのページ番号の付け方
ブック内に4シートありそれぞれ1ページずつシートがあります。 この条件で2番目のシートのみを印刷した場合でもフッターのページ番号に「2/4」と印刷するにはどのような設定をしたらよいでしょうか。 但し、シート数は今後も増える可能性があります。 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- Excelでシートを複数シート選択した場合の総ページ数に関して
Excel 2003を使用しています。 Excelでページ番号をフッターに設定している場合について教えてください。 現在、Excelで シート1:3ページ シート2:5ページ といったようなファイルがあります。 それぞれのシートのフッターにページを振るための設定 「1 / ?」 → &[ページ番号] / &[総ページ数] ページ があります。 通常、一つのシートのみを印刷すれば、 -1. 1/3 , 2/3 , 3/3 -2. 1/5 , 2/5 ~ 5/5 と言ったような印刷になるのですが、ブック全体または、シートを 選択しての印刷をすると 1/7 , 2/7 ~ 7/7 となり、ページの分母が、各シートの合算になってしまっています。 シート毎で、開始Pageを”1”にし、分母を各シートの最終ページに することは可能なのでしょうか? まず、シート毎に開始ページを「1」にするには、ページ設定の先頭 ページ番号を「1」にするのは分かっているのですが、分母の総ページ をシート毎にする方法が分かりません。 やはり、フッターの編集で固定で設定しないといけないのでしょうか? 色々と探しているのですが、分かりません。 申し訳ありませんが、皆さん、宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルのページ番号について質問です
エクセルでシートが9枚でページとしては14枚です。 印刷をブック全体にしてもフッターのページ表示は 1/14から、通常では2ページなのに1/14、3ページなのに2/14とページ番号は各シート毎のページ数になってしまいます。 連続したページ番号にしたいです。どなたか教えてくださいお願いします
- 締切済み
- その他MS Office製品
- エクセルVBAの処理でブックの中に複数のシートがあり、そのシート名と同
エクセルVBAの処理でブックの中に複数のシートがあり、そのシート名と同じ名前の他のブックにそのシートを順々に挿入していきたいのですがどうすればよいのでしょうか。 宜しくお願い致します。
- 締切済み
- SE・インフラ・Webエンジニア
- エクセルのシートのコピーについて
お願いします。教えてください。 エクセルのシートを同じブック内に100シート以上コピーするにはどうしたらいいでしょうか? 1シートづつなら出来るのですが、複数する方法がわかりません。 それと、そのコピーしたシートの名前をNo.1・2・3・・・と番号を自動で付けることできませんか? エクセル2000です。 よろしくご伝授ください。
- ベストアンサー
- オフィス系ソフト
- エクセルのフッター機能を使ってページ番号をうつには?
エクセルのフッター機能を使ってページ番号をうてますよね。 それぞれのシートの中では用紙サイズごとに連続して番号を打つことまではできましたが たとえば3枚のシートを通して、連続した番号を打つにはどうすればできるのでしょうか?1番目のシートが1~4ページ、2枚目が5~7ページなど ちなみにマックです。 Page Makerなどの編集ソフトは使わずに、できればエクセルだけで完結させる方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- 複数のブックの中のシートに、連番でページ番号をふりたい
Excelで、1つのブックに7枚のシートがあります。 そんなファイルが、35個あります。 シートだけ数えると、245枚になります。 それぞれのシートに、順番に「1、2、3、4、5、6、7」と ページ番号をつけ、それを全部のファイルで行いたいです。 つまり、2個目のファイルからは、「8、9、10、11・・」と なるようにしたいのです。 自分で、シートにページ番号をふるマクロを作ったんですが、 1~7のページ番号がついたものが35個できてしまい、 連番にはなりません。 いちいちフッターを開いてページ設定していたのでは、 とても大変なので、なんとかならないかなー、 と思っています。
- 締切済み
- オフィス系ソフト
- 自動でアクティブにするシート名を可変にしたい。
ExcelVBAの質問です。 分かりづらい点等ございましたら、ご指摘願います。 表題の通り、VBAにて自動的にアクティブにするシートを変えたいのです。 要件は、 1.あるブックを開いた際、最初に開いていたシート名を変数に格納 2.その後、Aというシートをアクティブする 3.Aシートの保護の解除及び、UIのみ可にするよう保護の設定 4.最初に開いていたシートをアクティブに。 うー、分かりづらい。 コードを以下のように書いたのですが、エラーで上手くいきません。 *********************************************** Dim sheet_name As String sheet_name = ActiveSheet.Name Sheets("A").Activate ' 一旦、シート保護を解除 ActiveSheet.Unprotect ' シート保護を設定(UIのみ) ActiveSheet.Protect UserInterfaceOnly:=True, AllowFiltering:=True ActiveWindow.ScrollRow = 1 Sheets(sheet_name).Activate *********************************************** 恐らく最後の > Sheets(sheet_name).Activate ここの指定が間違っているのではないかとは思っているのですが、 方法が分かりません。 どなたか分かりましたら、ご教授いただけると幸いです。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
お礼
ありがとうございました。
補足
早々のご解答ありがとうございます。 大変分かりやすく、そのままコピーしてスムーズにできました。 FOR文のなかにIFなどが入ってくるとNEXTや、ELSEをどこで入れたらいいのか分からなくなり、エラーばかり出てしまいます。 このコードに重複シート名などのエラーコードをいれるとしたら、どの部分に入れたらよいのでしょうか。。。