Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


38809 / 76732 ←次へ | 前へ→

【43053】Re:1と入力で1月1日と表示
発言  ichinose  - 06/9/30(土) 17:48 -

引用なし
パスワード
   こんにちは。
>
>>シート1のセルA1に1と入力でシート2のセルA1に1月1日と表示
>>また、シート1のセルA1に2と入力でシート2のセルA1に2月1日と表示
>>つまり1と入れたら1月1日、2と入れたら2月1日、3と入れたら3月1日、
>>・・・・・12と入れたら12月1日と表示するには。
>>また数式バーで見た時は年月日が表示するようにお願いします。
>>ただし、12月になって1と入れた時は、来年の年月日で表示するように。

当該シートのシートモジュールに

'==========================================================
Private Sub Worksheet_Change(ByVal Target As Range)
  Const addr = "$a$1"
  Dim rng As Range
  With Application
    .EnableEvents = False
    Set rng = .Intersect(Range(addr), Target)
    If Not rng Is Nothing Then
     With Target
       .NumberFormatLocal = "標準"
       If Val(.Value) >= 1 And Val(.Value) <= 12 Then
        .Value = DateSerial(IIf(Month(Date) = 12 And Val(.Value) <> 12, _
              Year(Date) + 1, Year(Date)), Val(.Value), 1)
       Else
         MsgBox "nogood"
         End If
       End With
     End If
    .EnableEvents = True
    Set rng = Nothing
    End With
End Sub

として試してみてください
尚、例のコードは、当該シートのセルA1に1〜12を入力した時に
イベントプロシジャーで処理されるコードです。
セルを変更される場合はコードのaddrを代えてください。

それと仕様は現在の月が12月の時のみ、
任意の月数字を入れたら来年の年にする ということですか?

現在の月が9の時、1と入力されたときは??
2007/1/1? 2006/1/1?

例のコードは、現在の月が12月のみ例外処理にしてありますが・・・。
0 hits

【43049】1と入力で1月1日と表示 kazu 06/9/30(土) 16:20 質問
【43050】Re:1と入力で1月1日と表示 かみちゃん 06/9/30(土) 16:51 発言
【43053】Re:1と入力で1月1日と表示 ichinose 06/9/30(土) 17:48 発言
【43057】Re:1と入力で1月1日と表示 kazu 06/9/30(土) 23:07 お礼
【43056】Re:1と入力で1月1日と表示 kazu 06/9/30(土) 22:43 お礼

38809 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free