エクセルVBAについての質問です。次のようなマクロを作ろうと思ったのですがうまくいきません。

①ワークシートを挿入
②そのワークシート名は本日の日付と曜日とする。ただし西暦はいれない。(例)5月18日(木)

実際に動くものを作ってください。よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/05/18 05:07:25
  • 終了:2006/05/18 06:31:10

回答(1件)

id:villain No.1

villain回答回数174ベストアンサー獲得回数122006/05/18 06:16:24

ポイント60pt

どう上手く動かなかったのかは分かりませんが以下でいいのでは?

Sub AddSheets()
    NowDate = Date
    Name = Mid(NowDate, 6, 2) & "月" _
    & Mid(NowDate, 9, 2) & "日" & _
    "(" & Mid(WeekdayName(Weekday(Date)), 1, 1) & ")"
    For i = 1 To Sheets.Count
        If Sheets(i).Name = Name Then
            MsgBox Name & ": 既に存在しています。"
            Sheets(i).Activate
            Exit Sub
        End If
    Next i
    Sheets.Add.Name = Name
End Sub

http://q.hatena.ne.jp/1147896445

id:taroemon

完全に理想としていたものです。

ありがとうございました。

2006/05/18 06:30:33
  • id:villain
    すみません。
    ちょっとしたバグです。

    > "(" & Mid(WeekdayName(Weekday(Date)), 1, 1) & ")"

    の行は

    "(" & Mid(WeekdayName(Weekday(NowDate)), 1, 1) & ")"

    とした方がいいです。
    実際には「絶対に」実行中に日付が変わらない保証があるなら

    > NowDate = Date

    は消してしまって「NowDate」の部分をすべて「Data」にしても
    いいのですが、念のため。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません