Excelノート 21-1 日付・時間

HOME  検索  索引  もくじ  関数目次ージへ        次ページへ

タイトル欄のアドレスは、エクセルファンクラブの該当する頁へのリンク先です。
詳しい事は、こちらの
お願いをご覧になってください。

1  1ヵ月後の日付を表示するには
2  指定月の月末の日付と曜日を知るには?
3  セルに色をつけ1マスを15分で認識し、合計時間を表示するには 
4  日付の経過ごとに色を変えるには?
5  22:00以降の時間の表示を赤色で表示するには
6  月数から月末を表示するには
7  A1に日付を入れ、B1に曜日を表示するには
8  セルに入れた日付に、曜日を付けるには
9  ヘッダーに、今日の日付、今日の月数を入れるには
10 ヘッダーに既定以外の形式で日付を入れるには
11 第一・第三月曜だけセルの色をかえるには??
12 生年月日から年齢を表示させるには?
13 生年月日から学年を表示するには
14 セルに入力したら、A列に今日の日付を表示
15 カレンダーの日付、曜日を簡単に入力するには
16 ボタンをクリックして、現在時刻をセルに入力するには?
17 1年後の前日の日付を表示するには?
18 今日の日付を表示するには
19 ファイルの最終保存日を表示するには?
20 60分以上を、時間と分に分けて表示するには?

1 1ヵ月後の日付を表示するには
http://www.keep-on.com/~excelyou/2000lng2/200005/00050003.txt
  「一ヶ月後の日付を求めるには」 【関数ラウンジ】
Excel97、Excel2000 共通
 ツール→アドイン→分析ツールにチェックを入れます。
 A1に、例えば、2000/12/24 と入れ、B1に =EDATE(A1,1) と入れてB1を選択し、
 書式、セル、表示形式、分類で日付を選択、種類のところで表示したい形式にします。
2 指定月の月末の日付と曜日を知るには?
Sub test()
 Dim aa As Integer
 aa = Application.InputBox(Prompt:="入力してください", Type:=1)
 MsgBox aa & "月の最終日:" & DateSerial(2000, aa + 1, 0)
 MsgBox aa & "月の最終日:" & Format(DateSerial(2000, aa + 1, 0), "yyyy/mm/dd (aaa)")
End Sub
3 セルに色をつけ1マスを15分で認識し、合計時間を表示するには
http://www.keep-on.com/~excelyou/2000lng1/200007/00070054.txt
  「色付きシートの1マスを数値で認識するには」 【編集ラウンジ】
[色をつける範囲のセル]
 条件付書式で、1に等しいときにセルに色をつける
 表示形式 ;;;
[合計のセル]
 =SUM(範囲)*"0:15"
 表示形式 [h]:mm
1.シートの一列目(A列)は「氏名」、二列目(B列)は「達成時間」とし、
セルに色をつけるのは三列目(C列)以降とします。
2.一行目は項目見出しとします。
3.B2セルに =SUM(C2:IV2)*15/1440 と記入し、下方のセルにコピー
4.B列を選び、[書式]−[セル]でセルの書式をユーザー定義とし、種類欄に [h]:mm と記入
5.下のコードを貼り付け、C列以降をダプルクリックするとセルが塗りつぶされ、
  B列に合計時間が表示されます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
 If Target.Column = 1 Or Target.Column = 2 Then Exit Sub
  If Target.Row = 1 Then Exit Sub
   If Target.Interior.ColorIndex = xlNone Then
    If Int(Target.Row / 2) = Target.Row / 2 Then
     Target.Interior.ColorIndex = 3
     Target = 1
     Target.Font.ColorIndex = 3
    Else
     Target.Interior.ColorIndex = 5
     Target = 1
     Target.Font.ColorIndex = 5
    End If
   Else
    Target.Clear
   End If
 Cancel = True
End Sub

  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。
4 日付の経過ごとに色を変えるには?
A列に年月日を入れ、そのシートを開くたびに、
A列の作成年月日より1週間経過すると"緑"、2週間経過すると"ピンク"、3週間経過すると"青"、
4週間経過すると"オレンジ"1ヶ月経過すると"赤"1ヶ月以上経過すると"紫"というように
日数の経過ごとにセルの色を変更します。
Private Sub Worksheet_Activate()
 Const cst緑 As Long = &HFF00&
 Const cstピンク As Long = &HFF00FF
 Const cst青 As Long = &HFFFF00
 Const cstオレンジ As Long = &HCCFF&
 Const cst赤 As Long = &HFF&
 Const cst紫 As Long = &HFF99CC
 Dim LastRow As Long
 Dim i As Long
 Dim rng範囲 As Range
 Dim Today As Date
 Dim date1週間前 As Date
 Dim date2週間前 As Date
 Dim date3週間前 As Date
 Dim date4週間前 As Date
 Dim date1月前 As Date
 Dim date2月前 As Date
 Today = Now
 date1週間前 = DateAdd("ww", -1, Today)
 date2週間前 = DateAdd("ww", -2, Today)
 date3週間前 = DateAdd("ww", -3, Today)
 date4週間前 = DateAdd("ww", -4, Today)
 date1月前 = DateAdd("m", -1, Today)
 date2月前 = DateAdd("m", -2, Today)
 With ActiveSheet
  LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
  For i = 1 To LastRow
   Set rng範囲 = .Range(.Cells(i, 1), .Cells(i, 1))
   ' 文字色の場合
   ' If (.Cells(i, 1).Value <= date2月前) Then
   ' rng範囲.Font.Color = cst紫
   ' ElseIf (.Cells(i, 1).Value <= date1月前) Then
   ' rng範囲.Font.Color = cst赤
   ' ElseIf (.Cells(i, 1).Value <= date4週間前) Then
   ' rng範囲.Font.Color = cstオレンジ
   ' ElseIf (.Cells(i, 1).Value <= date3週間前) Then
   ' rng範囲.Font.Color = cst青
   ' ElseIf (.Cells(i, 1).Value <= date2週間前) Then
   ' rng範囲.Font.Color = cstピンク
   ' ElseIf (.Cells(i, 1).Value <= date1週間前) Then
   ' rng範囲.Font.Color = cst緑
   ' End If
   '背景色の場合

   If (.Cells(i, 1).Value <= date2月前) Then
    rng範囲.Interior.Color = cst紫
   ElseIf (.Cells(i, 1).Value <= date1月前) Then
    rng範囲.Interior.Color = cst赤
   ElseIf (.Cells(i, 1).Value <= date4週間前) Then
    rng範囲.Interior.Color = cstオレンジ
   ElseIf (.Cells(i, 1).Value <= date3週間前) Then
    rng範囲.Interior.Color = cst青
   ElseIf (.Cells(i, 1).Value <= date2週間前) Then
    rng範囲.Interior.Color = cstピンク
   ElseIf (.Cells(i, 1).Value <= date1週間前) Then
    rng範囲.Interior.Color = cst緑
   End If
  Next i
 End With
End Sub

  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。
5 22:00以降の時間の表示を赤色で表示するには
データ範囲選択し、[書式]、[条件付き書式]、[セルの値が] を [数式が] に変更して、数式入力窓に
=MOD(A1,1)>=TIMEVALUE("22:00:00")
と入れて、「書式」ボタンを押して、文字色を「赤」に設定します。
6 月数から月末を表示するには
http://cgi.fuji.ne.jp/~fj2094/cgi-bin2/wwwlng.cgi?print+200101/01010119.txt
  「月末を表示するには」 【関数ラウンジ】
A1に 1 と入れたら、他のセルに1月31日と表示します。
 セルの書式設定、表示形式を「日付」の「3月4日」として、
 =DATE(TEXT(A1&"/1","yyyy"),A1+1,)
 全角(文字列)で1と入れて、1月31と表示する場合は、
 =JIS(TEXT(DATE(TEXT(SUBSTITUTE(A1,"月",)&"/1","yyyy"),SUBSTITUTE(A1,"月",)+1,),"m月d日"))
7 A1に日付(2000/12/1)を入れ、B1に曜日を表示するには
=TEXT(A1,"aaa")    と表示されます
=TEXT(A1,"aaaa")
  水曜日 と表示されます
=IF(A1="","",A1)  
と数式を入れ、書式、セル、表示形式で、ユーザー定義、種類の所に
aaa  と入れると、と表示されます。
aaaa と入れると、水曜日 と表示されます
8 セルに入れた日付に、曜日を付けるには
書式、セル、表示形式で、分類を「ユーザー定義」を選択し、種類のところに、
 yyyy/m/d(aaa)  と入力すると、 2000/8/28(月)
 yyyy/m/d(aaaa)  と入力すると、 2000/8/28(月曜日)
と、表示されます。
9 ヘッダーに、今日の日付、今日の月数を入れるには
Sub ヘッダーに今日の日付()
  ActiveSheet.PageSetup.CenterHeader = "&D"
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
Sub ヘッダーに今日の月数()
  MyMonth = Month(Date)
  ActiveSheet.PageSetup.CenterHeader = MyMonth & "月"
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
10 ヘッダーに和暦で日付を入れるには
Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.PageSetup.CenterHeader = Format(Date, "ggge年m月")
End Sub
  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.PageSetup.RightHeader = Format(Now, "ggge年m月d日 h:mm")
End Sub
  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。
11 第二・第四土曜だけセルの色をかえるには??
[書式]-[条件付き書式]-[数式が] で、したの数式を入れ
 =AND(OR(ROUNDUP(DAY(A1)/7,0)=2,ROUNDUP(DAY(A1)/7,0)=4),WEEKDAY(A1)=7)
セルの書式を設定する。青字のところが、第二、第四、土曜日の指定です。
12 生年月日から年齢を表示させるには?
A1に生年月日、B1に基準日とすると、
 =DATEDIF(A1,B1,"y")
 =DATEDIF(A1,B1+1,"Y")&"歳"&DATEDIF(A1,B1+1,"YM")&"ヶ月"

ただし、この関数は関数の貼り付けボックスの中には入っていません。
直接セルに入力して使いますが、使えない場合は【ツール】【アドイン】【分析ツール】にチェックを入れてください。
[XL]DATEDIF 関数が [関数ウィザ-ド] の関数名一覧に含まれていない
  http://www.microsoft.com/JAPAN/support/kb/articles/J013/8/19.htm?LN=JA&SD=SO&FR=0
13 生年月日から学年を表示するには
http://www.keep-on.com/~excelyou/2000lng2/200006/00060138.txt
  「生年月日から学年を自動表示したい。」 【関数ラウンジ】
A1に、1990/4/6 と入力、他のセルに
=CHOOSE(DATEDIF(A1,DATE(IF(MONTH(TODAY())<4,YEAR(TODAY())-1,YEAR(TODAY())),4,1),"y")-5,"小1","小2","小3","小4","小5","小6","中1","中2","中3","高1","高2","高3","大1","大2","大3","大4")
と入力すると、小4と表示されます。
14 セルに入力したら、A列に今日の日付を表示
http://www.keep-on.com/~excelyou/2000lng4/200011/00110309.txt
  「目的のシートの Changeイベントに書き込みするには?」 【VBAラウンジ】
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Row > 1 And Target.Column > 1 Then
        'A列 で 1行目 ではなければ
 Cells(Target.Row, 1).Value = Now()             
 'A列に本日の日付を記入
 Cells(Target.Row, 1).NumberFormatLocal = "ge.m.d"   
'書式設定
 End If
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Row > 1 And Target.Column > 1 Then
      'A列 で 1行目 ではなければ
 Cells(Target.Row, 1).Value = Format$(Date)
        'A列に本日の日付を記入
 End If
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。
15 カレンダーの日付、曜日を簡単に入力するには
Excel97、Excel2000 共通
まず、ツール、アドインで、分析ツールにチェックを入れてOKします。
A列に****年**月、B列上の行に日付、下の行に曜日を表示します。
A2に元になる日付を入力するだけで、数式の入ったすべてのセルの値がそれに対応して変更されます。
 A2に 2001/2/1 と入力し、【書式】【セル】【表示形式】を、【日付】【1997年3月】にします。
 B2に =A2 、 C2に =IF(B2="","",IF(B2+1>EOMONTH($B2,0),"",B2+1)) と入力し、
 B2からC2を選択し、【書式】【セル】【表示形式】を【ユーザー定義】【d】にします。
 B3に =IF(B2="","",B2) 、【書式】【セル】【表示形式】を【ユーザー定義】【aaa】とします。
 B3をC3にコビーし、C2とC3を選択して、AF列まで、オートフィルでコピーします。
 A4に =EDATE(A2,1) と入力し、【書式】【セル】【表示形式】を、【日付】【1997年3月】
 次に、A4とA5を選択し、下方向にオートフィルでコピーします。
 B2からAFまでを選択し、下方向にオートフィルでコピーします。
これで、A2の値を変更すると、すべての値がそれに対応して変更されます。
16 ボタンをクリックして、現在時刻をセルに入力するには?
http://www.ae.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200106/01060307.txt
  「ボタンを押すたび現在時間がセルに入力されるには?」 【VBAラウンジ】
シートにコントロールツールボックスのボタンを貼り付けます。ボタンをクリックすると、B列に現在の日付と時刻をどんどん記入します。
 Private Sub CommandButton1_Click()
  If IsEmpty(Cells(1, 2)) Then
   Cells(1, 2).Value = Time
  Else
   Cells(Rows.Count, 2).End(xlUp).Offset(1).Value = Time
  End If
 End Sub

  このコードの使い方は、マクロの使い方(2)該当するシートのモジュールにあります。
17 1年後の前日の日付を表示するには?
http://www.keep-on.com/~excelyou/2000lng2/200009/00090069.txt
  「年数計算についての質問です。」 【関数ラウンジ】
A1に日付をいれ、他のセルに表示します。
 =DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)-1)
 =MIN(DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)),DATE(YEAR(A1)+1,MONTH(A1)+1,1)-1)-1
 =MIN(DATE(YEAR(A1)+1,MONTH(A1),DAY(A1)),DATE(YEAR(A1)+1,MONTH(A1)+1,0))-1

アドインの分析ツールをインストールしてあれば、EDATE関数が使えます。
インストール後、【ツール】【アドイン】【分析ツール】にチェックを入れてください。
 =EDATE(A1,12)-1

18 今日の日付を表示するには
=TODAY()                       2001/7/11
=TEXT(TODAY(),"ggge年m月d日")        
平成13年7月11日
=TEXT(TODAY(),"ge.m.d")             
H13.7.11
=TEXT(TODAY(),"yyyy/m/d")           
2001/7/11
=TEXT(TODAY(),"yyyy年m月d日")        
2001年7月11日
19 60分以上を、時間と分に分けて表示するには?
A1に、「65」と入力されている場合他のセルに、
 =A1/1440 と入力し、セルの書式形式を、[h]:mm にします。
上の方法を、選択範囲のセル全てに一気に処理するマクロです。
Sub test4()
 Dim c As Range
 
'選択対象がセルでなければ、マクロを中止
 If Not TypeName(Selection) = "Range" Then Exit Sub
 For Each c In Selection   
'選択したセル全てを処理
 c.NumberFormatLocal = "[h]:mm"
 c = c / 1440
 Next
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。

HOME  検索  索引  もくじ  関数目次ージへ        次ページへ

このページのTOPへ

 

 

 

 

inserted by FC2 system