[[20060214153430]] 『シートの名前』(hisa) >>BOT

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

 

『シートの名前』(hisa)
 毎日入力していく表があります。毎日の繰越金額等があるため、一日1シート増えていきます。
 入力を始める前に、「新規シートを作成しますか」とメッセージを表示したあと、
 作成を行なう日付を入力し、入力した日付が【A6】と【O6】のセルに入力されるようにしています。
 セルに入力された日付(A6)をもとにシート名をつけたい(例えば、2月1日集計)のですが、
 うまくいきません。教えてください。A6とO6は日付の表示になっていて、平成○○年○月○日の表示形式です。
 新規シート作成のマクロは
 Sub 新シート作成()

    Dim NewWS As Worksheet
    Dim i As Long
         If MsgBox("新規シートを作成しますか?", vbYesNo) = vbNo Then Exit Sub

                Worksheets(1).Copy after:=Worksheets(Worksheets.Count)
            Set NewWS = Worksheets(Worksheets.Count)
         Do
                 NewWS.Range("a6", "o6").Value = InputBox("作成日を入力してください。月/日")
         For i = 1 To Worksheets.Count
             If Worksheets(i).Name = NewWS.Range("a6").Value Then
             MsgBox ("同名のシートがあります。")
             NewWS.Range("a6", "o6").ClearContents
             End If
         Next i
     Loop While NewWS.Range("a6").Value = ""
     NewWS.Name = NewWS.Range("a6").Value & "集計"   ←この部分がエラーになります。

     NewWS.Tab.ColorIndex = i + 1

End Sub


 NewWS.Range("a6").Value →NewWS.Range("a6").Text
 でいかがでしょう?
 (MARBIN)

 出来ました。もうひとつお聞きしたいのですが、
 新規シートが出来た際に、
 直前のシートの【M41】(本日残金)の値を
 新規シートの【A41】(前日繰越金額)へコピーするにはどうすればいいでしょうか?(hisa)

 SheetのIndexを変数にして、それから -1 してやれば、
 一つ左側のシートを参照できます。
 例:
 dim x
 x=NewWS.Index - 1
 NewWS.Range("a41").value=sheets(x).range("m41").value
 (seiya)

 未検証ですが↓でいけると思います。

 Dim OldWS as worksheet

  set OldWS = Worksheets(Worksheets.Count)
 ・
 ・
 ・
 Oldes.Range("M41").Cpopy NewWS.Range("A41")
 (MARBIN)

 ありがとうございます。
 ごめんなさい。。。すごい初心者なんですけど、
 ・・・には何が入るのでしょうか?

 もう一つ問題があります。
 同じシート名にしてしまったばあい、同名のシートが・・・と表示されるはずなのですが、
 表示されません。その代わり、
 NewWS.Name = NewWS.Range("a6").Value & "集計"   ←この部分がエラーになります。

 月が変わった場合新しいbookを作成したいのですが、
  Sub Macro3()

    Sheets("原紙").Select
    Sheets("原紙").Copy
 End Sub

 ここまでは出来たのですが、
 インプットboxを使ってファイル名をつける場合
 ○○月集計の○○を任意で入力できるようにしたいのですが、
 教えていただけませんか?


 同名シートのエラーの件だけ、、。

 If Worksheets(i).Name = NewWS.Range("a6").Value Then
                     ↓
 If Worksheets(i).Name = NewWS.Range("a6").Text & "集計" Then

 とすればいいのかと。
(純丸)(o^-')b

 メッセージは表示されたのですが、
 NewWS.Range("a6", "o6").ClearContents ←ここがエラーになってしまいます。
 (hisa)


 こちらでは新規ブックで検証してますがエラーにはなりません。
 なのでちょっと原因はわからないです。
(純丸)(o^-')b

 >入力した日付が【A6】と【O6】のセルに入力されるように
 >NewWS.Range("a6", "o6").Value = InputBox("作成日を入力してください。月/日")
  NewWS.Range("a6,o6").Value = InputBox("作成日を入力してください。月/日")

 >             NewWS.Range("a6", "o6").ClearContents
               NewWS.Range("a6,o6").ClearContents
 (やっちん)


 返事が遅くなり申し訳ありません。
 もう一度やってみます。
 (hisa)

 出来ました。セルが統合されてました。(hisa)


コメント返信:

[ 一覧(最新更新順) ]


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