[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートをふやすごとに連番をつけたい』(さと)
シートを増やすごとに自動的に番号をつけたい。
例えば、
シート1 001番
シート2 002番
シート3を増やした時自動的に003番が表示される
ようにしたい。
Excel2000
Windows2000
Sub 新規シート() ActiveWorkbook.Sheets.Add.Name = Right("000" & ActiveWorkbook.Sheets.Count + 1, 3) End Sub
こんな感じのものはどうでしょうか?
新規で作成された場合というイベントをどうやって取得していいかわからなかったので
新規作成自体をマクロにしたんですが・・・
よかったですかねぇぇ
(Null)
"新規作成自体をマクロ"とはシート1を作成する前を言うのですか、それともシート3を作成
する前を言うのですか。
なんか意味が食い違ってますね。 シートの追加に、 「シート1を作成する前を言うのですか、それともシート3を作成する前」 って、何の関係があるのでしょうか?
>新規で作成された場合というイベント thisworkbookモジュールの Workbook_NewSheet です。
(INA)
Private Sub Workbook_NewSheet(ByVal Sh As Object) Sh.Name = Right("000" & ActiveWorkbook.Sheets.Count, 3) & "番" End Sub
(INA)さん からの 助言を元に・・・ こんな感じにしてみたのですがどうでしょうか? (Null)
もし、「シート1 001番」のようなシート名ではないシートが存在するときは、 ループでカウントすることになります。
先日、同じような質問があったような・・・
(INA)
(INA)さん シート名ではないシートが存在するときはなぜ ループでカウント する必要があるんですか? おしえてくださぁいm(_ _)m (Null)
さとさんの説明が少ないので、仕様自体が明確ではないので どこまで考慮する必要があるのか分かりませんが、
ActiveWorkbook.Sheets.Count ですと、現在のシート数を取得できますが、
Sheet1,001番,002番, のような番号以外のシート名が存在しているとすると、 番号のシート名だけカウントする必要があるように思えます。
(INA)
ではそのへんを考慮下上で・・・
Private Sub Workbook_NewSheet(ByVal Sh As Object) Dim n As Long Dim sheetscount As Long Dim xlbook As Excel.Workbook
Set xlbook = ActiveWorkbook sheetscount = 0 For n = 1 To xlbook.Sheets.Count Step 1 If xlbook.Sheets(n).Name Like "[0-9][0-9][0-9]番" Then sheetscount = sheetscount + 1 End If Next n
Sh.Name = Right("000" & sheetscount, 3) & "番" End Sub
シートが連番になっていない場合はエラーになってしまいますが、その辺も考慮したほうがよいのでしょうか? こまかい仕様は(さと)さんお願いします。
PS 条件 シート名は連番でとびはないものとします シート名は000番から始まるものとします
(Null)
こまかいことを理解していないと書けない要素が含まれた なかなか深いコードですね。(゜o ゜;)
(INA)
なかなか簡潔にまとめられたとおもったのに_| ̄|○ まだまだ 精進がたりんですねぇ (INA)さん 具体的にアドバイスくださいm(_ _)m
(Null)
アドバイスを差し上げるほど、問題はないと思います。(^_^;)
しいて挙げるなら、thisworkbookモジュールに記載するコードなので、 >Set xlbook = ActiveWorkbook は必要ないかと思います。
Private Sub Workbook_NewSheet(ByVal sh As Object) Dim i As Long, cnt As Long
For i = 1 To Worksheets.Count If Worksheets(i).Name Like "[0-9][0-9][0-9]番" Then cnt = cnt + 1 Next i
sh.Name = "00" & cnt + 1 & "番" End Sub
*シート名は001番から始まるものとします。
(INA)
おぉぉぉ かなり簡単になっちゃいましたねぇv みやすいし_| ̄|○ めげずに 精進精進 (INA)さん ありがとうございました。 ってΣ ここ 俺の立てたとこじゃなかあったぁ (さと)さん どうですかねぇ? (Null)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.