基本的な質問で、失礼します。
化けてしまった年月日の「シリアル値」を元号年月日に変えたいです。
元号から始まる場合は処理をせず、シリアル値であれば、元号年月日に変えセル値を置き換えたいです。
下記の
ActiveCell.Value = ipt 'ここが問題。
で、アクティブセルが「平成 27年 2月26日」に置き換わらないで、シリアル値のままです。
VBAのステップインで次式の「If InStr(1, ipt, "明") = 1 Or ・・・」に処理が移ったところで上式の値を見ると、
左辺が38683のシリアル値、右辺がFormat(ipt, "ggge年mm月dd日")で変換された平成17年11月27日になっています。
「38683」が「平成17年11月27日」に置き換わるはずなのに変わっていません。
よろしくお願いします。
Sub Macro1()
Dim ipt As String
'年月日を取得し、(1860/6/19)等を削除(旧暦の処理)
Range("F1").Select
新件数 = 10
ActiveCell.Offset(新件数 + 1, 0).Range("A1").Select
For 行 = 新件数 + 1 To 2 Step -1
ActiveCell.Offset(-1, 0).Range("A1").Select
ipt = ActiveCell.Value
'
If ipt = "" Then GoTo 99
If InStr(1, ipt, "明") = 1 Or InStr(1, ipt, "大") = 1 Or InStr(1, ipt, "昭") = 1 Or InStr(1, ipt, "平") = 1 Or InStr(1, ipt, "令") = 1 Then GoTo 99
' 年月日の「シリアル値」を元号年月日に変える 2020/11/21 変更
ipt = Format(ipt, "ggge年mm月dd日") ActiveCell.Value = ipt 'ここが問題。アクティブセルが「平成 27年 2月26日」に置き換わらない。 If InStr(1, ipt, "明") = 1 Or InStr(1, ipt, "大") = 1 Or InStr(1, ipt, "昭") = 1 Or InStr(1, ipt, "平") = 1 Or InStr(1, ipt, "令") = 1 Then GoTo 99 Else End If
99 Next 行
回答2件
あなたの回答
tips
プレビュー