[[20050310124045]] 『シートのコピー時にシート名を連番に・・・。』(miu) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シートのコピー時にシート名を連番に・・・。』(miu)

 いつもお世話様になっております。

 質問:シート名が「原紙」というシートがあります。
 これに新規作成というコマンドボタンを作って原紙のシートをコピーしたいのですが
 この時、コピーしたシート名を月日の月を頭にして連番にしたいです。
 (例:3-1、3-2・・・、3-100・・・etc.)
 また、月についてはインプットボックスから任意の月(1〜12)を指定したいです。

 具体的には、新規作成ボタンを押すと「月を入力してください」とインプットボックス
 がでてきて、例として「4」と打つと原紙のシートをコピーしたシートを作成して
 シート名を「4-1」のようにしたいです。
 連番の数字は多くても200くらいまでになると思います。
 月ごとの連番のシートを原紙からコピーして作りたいです。
 できたら、月ごとに連番順に並ぶようにしたいです。
 (説明が下手でわかりづらかったらごめんなさい。。。)
 すごく難しそうですが教えてください。宜しくお願いします。

 直接の回答ではありません。
運用方法の提案です。
シートをコピーしてシート名連番にしていくのはVBAで難しい技術ではありませんが、
シートを200となると不可能ではありませんが、
統計や検索がやりにくいブックになることは予想できます。
もしデータベース的な運用が予測されるのであれば、
書類の枚数を増やしていくような感覚でシートをたくさん収めたブックを作るよりも
 というシート2枚での設計をお勧めします。
リスト形式とすることでフィルタやピボットテーブル、集計機能などの
データベース機能を活用することができます。
(みやほりん)


 みやほりんさん、詳しい説明ありがとうございます。
 使い方なんですが、原紙をコピーしたものに必要事項を入力してから
 印刷してFAXでやり取りをしてます。また、案件ごとに一枚となってまして
 相手によってはFAXでなくてメールでおくることもあります。
 FAX用に印刷したものは連番で綴じて保存してます。
 で、もう一度修正して印刷する時とかに連番を照らし合わせてシートを見つけようと
 思ってますので、月日毎に連番順にシートが並んでるようにしたいです。
 説明がうまくできないのですが、どうしてもその月の案件ごとに一枚となってるので
 シートをコピーして増やしていって、1ブックで一年間みたいな使い方になってしまいます。

 連番の数は、すみません、200もいかなかったです。
 1ヶ月多くて50シートくらいで収まりそうでした。
 (miu)

 > 1ヶ月多くて50シートくらいで収まりそうでした。
 シート数の制限はデータ量次第なので、
 あらかじめ想定される最大量のデータをシートに書き込んで
 最大必要数のシートをコピーしてみて下さい。
 メモリ不足になるようであれば、仕様を見直した方がよいでしょう。
 運用してからブックが開けなくなったら困りますよ。
   (INA)

 


 250シートくらいからメモリ不足の警告は出なかったのですが、保存する時結構重かったです・・・。
 やっぱり、一ブックで一年間分とかは無理そうなので一ヶ月で一ブックみたいな仕様に変更してみようと思います。なので、普通に連番をつけるだけでやってみます。
 INAさんの忠告で気づくことが出来ました。ありがとうございます。

 連番は、検索したら『シートをふやすごとに連番をつけたい』(さと) が見つかったので
 これのINAさんが作られたプログラムを少しいじって使用してみようと思います。

 追記
 出来ました!!!こんな感じで使ってみようと思います。
 ありがとうございました。

  Dim i As Long, cnt As Long
  Dim sc As Long

    For i = 1 To Worksheets.Count
        If Worksheets(i).Name Like "[0-9][0-9]" Then cnt = cnt + 1
    Next i

    Sheets("原紙").Copy after:=Sheets("原紙")
    ActiveSheet.Name = "0" & cnt + 1

    sc = Sheets.Count
    ActiveSheet.Move after:=Sheets(sc)

 (miu)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.