|    | 
     従業員の名簿の作成をエクセルにて行っているのですが 
所属ごとのシートがありそれぞれのシートの構成は同じで 
A〜AEまで情報が入力されています。 
 
質問1. 
K列及びM列の3行目以降に日付が入力されているのですが 
すべて和暦の為、これらを西暦(YYYY/MM/DD)に置換えしたいのですが 
色々調べたマクロを編集し、下記のマクロを作成したのですが 
うまくいきません…。 
K列の和暦をL列で一度西暦に置換え、別のマクロにてK列に貼り付けようと思ったのですが 
もっと簡単にできる方法などあればご教授頂けないでしょうか? 
 
Sub 和暦を西暦に変換() 
 
  Dim i As Integer, j As Integer, l_r As Long 
  For i = 1 To Worksheets.Count 
  With Worksheets(i) 
    l_r = .Range("K" & Rows.Count).End(xlUp).Row '最終行数をカウント 
    For j = 3 To l_r '最終行から3行目まで繰り返す 
      Range("L" & l_r).Value = Format$(Range("K" & l_r).Value, "yyyy/mm/dd") 
    Next 
  End With 
Next i 
 
 End Sub 
 
 
質問2. 
L列及びN列の3行目以降にDATEDIF関数を使用してL列に年齢、 
N列に勤続年数を求めたいのですが 
下記のマクロではうまくいきませんでした。 
それぞれのシートでK列及びM列にデータがある場合 
L列及びN列に上記の年数を求めたいと思っています。 
可能であればL列のセルの表示形式を「数値」に 
N列のセルは勤続年数なので表示を「●年●ヶ月」にしたいと考えています。 
 
尚、年齢・勤続年数を計算する基となる日付はそれぞれのシートAF1に入力しております。 
 
マクロの知識もほとんどないような者ですが 
何卒お力添えを頂ければと思います。 
 
 
Sub 勤続年数年齢計算() 
 
 Dim myDate1 As String 
 Dim myDate2 As String 
 myDate1 = Range("K3").Value 
 myDate2 = Range("AF1").Value 
 If myDate1 = "" Or myDate2 = "" Then 
  MsgBox "日付が指定されておりません。" 
  Exit Sub 
 Else 
  Range("L3").Value = DateDiff("YYYY", myDate1, myDate2) 
  End If 
 
End Sub 
 | 
     
    
   |