|
従業員の名簿の作成をエクセルにて行っているのですが
所属ごとのシートがありそれぞれのシートの構成は同じで
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
|
|