• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで二つの構文を繋げるには)

VBAで二つの構文を繋げるには

このQ&Aのポイント
  • A1に数値化した日付を入力するとシート名表示に反映される。例えば2014/07/31でA1には20140731と入力するとシート名にも20140731が表示されます。
  • 複数のシートから今日のシート名になっているシートの色付けを行います。
  • 各月をまとめたシートで1~12のシート名に色付けします。

質問者が選んだベストアンサー

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.2

追加です。 (1)についてですが、そのままでも動作はするとおもいますが・・・ (1ヶ所間違いがありましたので直しています:3行目) 既に使用されている名前であったり、シート名に設定出来ない文字の場合はエラーになるかとおもいます。 以下のようにすることでエラーを回避できます。 (無効な名前が入力された場合はダイアログが表示され、名前は変わりません) (1)のコード Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Address = "$A$1" Then   Call StName_change(Sh, Target.Value) End If End Sub Private Sub StName_change(Sh As Object, word As String) On Error GoTo era   Sh.Name = word Exit Sub era: MsgBox word & "は無効な名前です" End Sub

dorasuke
質問者

お礼

早速にご丁寧な御指導誠に有難うございました。 色々試したもののなかなかうまく行かず困っていました。 ご質問して良かったです。

その他の回答 (1)

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

(1)はそのままに (2)と(3)を合わせています。 Private Sub Workbook_Open() Dim mySheet As Worksheet For Each mySheet In Worksheets   mySheet.Tab.ColorIndex = xlNone   If mySheet.Name = Format(Now(), "yyyymmdd") Or mySheet.Name = Month(Now) Then     mySheet.Tab.ColorIndex = 3   End If Next End Sub