Excel VBA質問箱 IV

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

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


3802 / 76735 ←次へ | 前へ→

【78562】和暦を西暦に置換え、年齢・勤続年数算出
質問  マクロ初心者  - 16/11/11(金) 10:16 -

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

6 hits

【78562】和暦を西暦に置換え、年齢・勤続年数算出 マクロ初心者 16/11/11(金) 10:16 質問[未読]
【78563】Re:和暦を西暦に置換え、年齢・勤続年数算出 β 16/11/11(金) 13:33 発言[未読]
【78564】Re:和暦を西暦に置換え、年齢・勤続年数算出 マクロ初心者 16/11/11(金) 13:44 発言[未読]
【78565】Re:和暦を西暦に置換え、年齢・勤続年数算出 β 16/11/11(金) 14:04 発言[未読]
【78566】Re:和暦を西暦に置換え、年齢・勤続年数算出 マクロ初心者 16/11/11(金) 14:19 発言[未読]
【78567】Re:和暦を西暦に置換え、年齢・勤続年数算出 β 16/11/11(金) 15:06 発言[未読]
【78568】Re:和暦を西暦に置換え、年齢・勤続年数算出 マクロ初心者 16/11/12(土) 16:16 発言[未読]

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