

エクセルを利用しています。
元号と年から西暦年を求める関数がわかりません。
VBEで関数を作成したいのですが
' @summary 元号gと年yから西暦年を求める
' @param g 元号
' @param y 年
' @z 西暦年
' @pre g = /^(明治|大正|昭和|平成)$/ And y >= 1
' @post z >= 1868 Or z = -1 (エラー時)
Function toSeireki(g As String, y As Integer) As Integer
○○○○
End Function
○○○○にどのように入れればいいのかわかりません
なので方法を知っている方いれば教えていただきたいです
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
セルに日付シリアル値がある場合
見た目を西暦に変えるなら書式yyyy/mm/ddを設定。
文字列にするなら別セルに =TEXT(A3,"yyyy/mm/dd")。
VBAならFormat関数
ーー
昭和29年とかある場合
Sub test01()
a = "昭和29年"
a = "昭和29年"
b = Format(DateValue(a & "1月1日"), "yyyy/mm/dd")
MsgBox b
MsgBox Left(b, 4)
End Sub
29は半角・全角数字でもOKでした。
ーー
平成1年1月1日は昭和でしたがOK[でした。
Sub test02()
a = "平成1年"
b = Format(DateValue(a & "1月1日"), "yyyy/mm/dd")
MsgBox b
MsgBox Left(b, 4)
End Sub
ーー
平成元年はダメでした。昭和も同じ。1月1日を全角化してもダメ。
Sub test02()
a = "平成元年"
b = Format(DateValue(a & "1月1日"), "yyyy/mm/dd")
MsgBox b
MsgBox Left(b, 4)
End Sub
ーー
Sub test04()
a = "平成19年"
nen = Val(Mid(a, 3, Len(a) - 3))
MsgBox nen
s = Mid(a, 1, 2)
Select Case s
Case "平成"
snen = nen + 1988
Case "昭和"
snen = nen + 1925
Case "大正"
snen = nen + 1911
Case "明治"
snen = nen + 1867
End Select
MsgBox snen
End Sub
を参考に関数化してください。
No.1
- 回答日時:
日付型に変換してYearを求めれば良いだけでは?
Function toSeireki(g As String, y As Integer) As Integer
On Error Resume Next
toSeireki = -1
toSeireki = Year(DateValue(g & y & "/1/1"))
End Function
Sub Test()
MsgBox toSeireki("平成", 19)
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
住宅にカナを入力する際に丁目...
-
VBA 文字に半角が含まれて...
-
IEからEdgeへの移行に伴うIMEの...
-
COBOL・全角判定
-
メモ帳の段落の揃え方
-
明細書の英数字の全角・半角に...
-
「一角」って何でしょうか
-
COBOLでの全角文字の判定をした...
-
Accessのテキストボックスの入...
-
エクセルにMicrosoft Barcode C...
-
VBで、String型のデータが、...
-
全角英数字の必要性が理解できない
-
EXCELで、A01をA1と表記させ...
-
VBA 「,」・空白・カタカナ等...
-
capeofdragonと申します Excel2...
-
VB.net、テキストボックス入力...
-
[Excel VBA] ODBCによる外部デ...
-
全角スペース
-
CSVファイルの中で、「 , 」カ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
住宅にカナを入力する際に丁目...
-
英数字のみ全角から半角に変換
-
VBA 文字に半角が含まれて...
-
IEからEdgeへの移行に伴うIMEの...
-
全角英数字の必要性が理解できない
-
COBOL・全角判定
-
word差し込み印刷 半角カタカ...
-
VB.net、テキストボックス入力...
-
char型全角数字から、int型半角...
-
プログラミングでは、半角括弧...
-
メモ帳の段落の揃え方
-
エクセルにMicrosoft Barcode C...
-
エクセルの検索が正しくできな...
-
封筒の宛先で縦書きの書き方
-
エクセルでの”々”の扱い
-
全角/半角キーをSendkeys関数で...
-
.NET3.5におけるキーボードの「...
-
VBで、String型のデータが、...
-
Accessで日付や数値を全角で表...
-
明細書の英数字の全角・半角に...
おすすめ情報