[[20041207140850]] 『セルの値をシート名にしてシートを複写』(柳くじら)  >>BOT

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

 

『セルの値をシート名にしてシートを複写』(柳くじら)

 WindowsXP,Excel2003

あるセルで使用している値(日付)をシート名にしてシートを複写するような事をやりたいのですがなかなかうまくいきません。

具体的には母体となるシートを複写して

    Range("M1:O1") = Now()
    Range("M1:O1").NumberFormatLocal = "yyyy年mm月dd日"

ですでに記録された日付をシート名変更するようなものが作りたいのです

私個人だけで使い、更に回数利用しないと云うことなら手作業でもかまわないと思ったのですが
複数の人間で、頻繁に利用するためシート名の統一と整理が必要になりました

シート名は日付までで、もし同じ日付があるようなら語尾に「(1)(2)…」と追加していくようにしたいのです

宜しくお願いします(滝汗


 なんか以前同じようなものを作った記憶があるので、過去ログを検索してみては?
  (INA)


 ぶは!衝突しました。

 こちらのINAさんのものが参考になりませんでしょうか。
[[20040819143128]]『目次を作りたいのですが』(辛汗) 
 (川野鮎太郎)


 >衝突しました。 
 見つけるのが速いですね。(^_^;)
 (INA)


 >衝突しました。
 えっとー、このログでは新規作成してシート名をシート内に読み込むのですね
 私の希望は逆だったりしますが…
 ついでに補足修正(汗

 >具体的には母体となるシートを複写して
 →具体的には母体となるシートを複写してソノシート名を

 >ですでに記録された日付をシート名変更するようなものが作りたいのです
 →ですでに記録されているセルの値に変更するようなものが作りたいのです
 …セルの値は変更しないです、シートの値にセルを参照したいということですはい
 (柳くじら)

 > 私の希望は逆だったりしますが… 
 シートを増やして、シート名を変更するので、大体同じでしょう。

 >もし同じ日付があるようなら語尾に「(1)(2)…」と追加していくようにしたいのです 
 これも同じようなものだし。 

 あとは、どこが分からないのでしょうか?
  (INA)


 う〜新規作成しているところをコピーコマンドに差し替え…?
 セル内容をシートに反映さするという過去ログ発見、しかし動かない…
 どのタイミングでこのコードは動くんでしょう?
[[20040930180016]]『セルの内容をシートタグに反映させるには』(bun565)

 できればボタンで動くようにしたいのですよ…BVA触ってまだ3時間なもので(滝汗
 (柳くじら)


 よく読んだら、日付ごとにシートを作ろうとされてるんですよね。
 そんなにシートを作って大丈夫なんでしょうか。(あとの管理運用面で)
 シートは広いんですから、せめて月ごとぐらいが良さそうな気がします(私個人の意見です)
 直接の回答ではなくm(._.)m ペコッ
 (川野鮎太郎)

[[20040507090641]]
 これは参考にはならないかしら。。。
 (代奈)


 > これは参考にはならないかしら。。。
 参考になりました…けどどう変更したものかいまいちよく分かってません
 本と初心者で申し訳ないです

 >そんなにシートを作って大丈夫なんでしょうか。(あとの管理運用面で)
 実はあまり大丈夫じゃないです(汗
 その辺はしょうがないので月ごとにブックを手動コピーして対処しようと思います
 ホントは手動じゃなくしたいのですけど、勉強不足ですから…

 ん〜どう変えてイイノカやっぱり分からなかったです(^^;
 更に署名忘れごめんなさい〜
 (柳くじら)


 一ヶ月単位なら以下のような感じでも出来ますけどね。
http://skyblue123.hp.infoseek.co.jp/Excel/SheetCopy1.xls

 原稿となるシートを作成しておいて、マクロでコピーして月日及びシート名の変更をします。
 取り合えず月日だけ入力していますが、A1セルを変えなければ(月日となるセルをコードを書き換えれば)
 他はどんな風に変えても利用できると思います。
 (川野鮎太郎)


 川野鮎太郎さま、ありがとうございます大体目標のものです
 ただ、セルの選択粋をM1:O1にするとエラー1004をはいてしまいます
 日付の表示が1セルだとどうしても小さいので統合してるんです
 セルサイズは変えられないという条件で対処法ありましたらおながいします
 (柳くじら)


 セルA1の月日は削除して良いです。
以下にコードを変更してください。
Option Explicit
Sub Test()
Dim MySh As Object, Sh As Object
Dim ShA1 As Long, MAXSh As Long
Dim NewSh As Date
Dim NewShName As String
Const MyDateRn As String = "M1" ←月日の入力セル
  
Set MySh = Worksheets("原稿")
    Sheets.Add before:=Sheets(1)
    MySh.Cells.Copy Destination:=ActiveSheet.Range("A1")
    ShA1 = ActiveSheet.Range(MyDateRn).Value
    For Each Sh In Worksheets
        MAXSh = Application.Max(Sh.Range(MyDateRn).Value, ShA1, MAXSh)
    Next Sh
        NewSh = DateSerial(Year(MAXSh), Month(MAXSh) + 1, 1)
        NewShName = Format(NewSh, "YYYY年MM月")
        ActiveSheet.Name = NewShName
        Range(MyDateRn).Value = NewSh
End Sub

 ※追加:もちろん表内のA3の数式 =A1 は =M1に変更しなくてはいけません。

 (川野鮎太郎)


 補足ありがとうございますっ
 ちなみにこのマクロだとA1にはマクロから日付が入力されますよね?
 私としてはA1に「すでに」入力済みであるとしてそれをシート名に反映したいのですが
 そういった修正は可能ですか?
 (柳くじら)


 シートは新たに作るんですから、すでに入力済みなわけないですよね。
 もしシートのセルでシート名を変更するだけなら
 ActiveSheet.Name = Range("M1") とすれば良いだけですよ。
 (川野鮎太郎)


 あー説明不足ごめんなさい
 母体となるシートのM1:O1領域の物を利用したいということなのでした(^^;
 もし無理そうならM2あたり白色フォントで見えなくして使います
 (柳くじら)


 (*'ω'*)......ん? M1の値を使うためにコードは変更済みですけど・・・。_/ ̄|○ il||li
 Const MyDateRn As String = "M1" ←月日の入力セル これがそうですよ。
 (川野鮎太郎)


 にゅ?…M1で指定するとM1:O1という結合セルも参照できるんですか?
 た…試してみます(滝汗
 (柳くじら)


 ぬ???試しもしないで言ってた訳ね_/ ̄|○ il||li
 (川野鮎太郎)


 いえ正確には確認ですね
 ちゃんと結合セルにも対応してました(滝汗
 結果としては微妙にニュアンスが違ってます(^^; 
 このマクロですと新しいシートには原稿と同じセルにまったく新しい日付が記録されるようですね
 私としては原稿のM1セルの日付を利用しして新しいセルの日付としたいのです
 手順としては

 原稿M1セルに今日の日付を記録→原稿のM1セルの日付をシート名として原稿をコピー

 といった感じです
 言葉足らずで微妙に伝わらないかなぁ(汗
 (柳くじら)


 本当に試されているのか疑問です。
 新しいシートが本当に同じ月日になりますか?
 新しいシートは翌月の日付になってるはずですが。
 参考のファイルをアップする際に申し添えたはずです。
>一ヶ月単位なら以下のような感じでも出来ますけどね
 原稿の日付が今日として、新しい日付も今日ってことは、毎回シートの作成が日単位ってことになるので、
 当初私が申し上げたように、シートを増やすだけなので私はそのような使い方はしません。
 あとはご自分で工夫してみてください。
 (川野鮎太郎)


 早いレスありがとうございます(ぺこぺこ
 やっぱり説明不足でさらに怒らせてしまった(><

 >このマクロですと新しいシートには原稿と同じセルにまったく新しい日付が記録されるようですね
 この解釈間違ってたかな?

 シート縦にデータ要素が200行ほど横には各要素の詳細データが7項目あったりしますのです
 そのため1シートに1つ気分あると帰って探しにくくなっちゃうのですね
 だから1シート1日なのですよ(^^;
 そして原稿には日付管理以外のセルにあまり手を加えたくなかったのです
 えっとこれから帰るので自宅に着いたら実際のブックをUPします(^^;
 がんばって推敲してみますよ〜

 とりあえず帰宅したので基となる資料投下しますっ
http://pub.idisk-just.com/fview/kiIn2M6Z1RXuWyJVbsKoZSLvAQzRRE07tCDksuDirmGBeAC7cOY9zTErNcA3_guoHv1TNwtD3Wx9-P5t8sDf5g.xls

 (柳くじら)


 出血大サービスです。( ̄ii ̄;)ドバッ! 
http://skyblue123.hp.infoseek.co.jp/Excel/SheetCopy2.xls

 テキストボックスにマクロの登録をして、標準モジュールにしました。
 (川野鮎太郎)


 どばっ
 私もかなり遠回り名方法で成功させましたけど、ここまですっきりできるんですねー
 ありがとうございます!
 もっと勉強しないといけないですねー
 (柳くじら)


 ( ̄0 ̄;アッ さっき修正したので、もう一度ダウンロードしてみてください。
 ってもう見てないかな(^_^A;

 INAさんのコードを借りてツールバーを作成しました。
 じゃないと、テキストボックスが何百も出来てしまう可能性あります。
 ※それと、ページ設定は一回やれば不要なので、それを実行するボタンは付けてません。
 もうひとつ、ヘッダーにするため行挿入、削除のコードがあったものも、
 ページ設定で行タイトルを設定すれば必要ないので削除してます。
 (川野鮎太郎)

 > INAさんのコードを借りてツールバーを作成しました。
 ^(#`∀´)_Ψ  ぜひ使ってやってください。      (INA)  


 はい、じゃんじゃん使わせていただきます。^^
 人のものは自分のもの、自分のものも自分のもの Ψ(#`∀´)_Ψウヒャヒャ
 (川野鮎太郎)


 みましたよ〜
 大変助かりますっ
 ツールバーも作れるなんて知りませんでした
 ありがとうです!
 (柳くじら)

コメント返信:

[ 一覧(最新更新順) ]


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