[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートの名前』(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.