![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_11.png?e8efa67)
エクセルを利用しています。
元号と年から西暦年を求める関数がわかりません。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- 日本語 「2025年」のことを何と言いますか? 「2025年」=「西暦年」ではないので西暦年のひとつですか? 6 2022/05/07 16:18
- Excel(エクセル) Excel 年月日を元号・年・月・日に分けるには? 2 2023/01/05 16:40
- 戸籍・住民票・身分証明書 運転免許証の更新期日って何でわざわざ元号(令和)表紙なんでしょうか? 特に元号が変わった時前の元号が 3 2023/05/04 12:45
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Excel(エクセル) エクセル365の関数。誕生日表記がおかしい 2 2022/10/17 18:52
- Visual Basic(VBA) VBAでファイル名を指定して保存するとき 4 2023/03/26 21:55
- C言語・C++・C# C言語のwhileを使ってプログラムを組みたいです!自分でやってみたのですが答えが合わないので教えて 3 2022/06/30 18:08
- Excel(エクセル) Excelで、昭和の西暦換算 6 2023/03/23 11:29
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
全角入力
-
住宅にカナを入力する際に丁目...
-
全角英数字の必要性が理解できない
-
全角/半角キーをSendkeys関数で...
-
Accessのテキストボックスの入...
-
半角→全角変換
-
全角スペース
-
ACCESS97 : レコードが長いファ...
-
エクセルにMicrosoft Barcode C...
-
LaTeXで半角カンマと全角カンマ...
-
大文字と全角文字は同じ意味で...
-
いまスマホからカードの申込み...
-
Excelの中に全角ひらがな、漢字...
-
VB.net、テキストボックス入力...
-
CString Format にて全角空白文...
-
正しいメールアドレスの形式で...
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
正規表現の否定先読みで、複数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
VBA 文字に半角が含まれて...
-
住宅にカナを入力する際に丁目...
-
全角英数字の必要性が理解できない
-
vba アクティブシートの名前変...
-
IEからEdgeへの移行に伴うIMEの...
-
エクセルにMicrosoft Barcode C...
-
word差し込み印刷 半角カタカ...
-
プログラミングでは、半角括弧...
-
COBOL・全角判定
-
VBで、String型のデータが、...
-
全角入力
-
VB.net、テキストボックス入力...
-
Accessのテキストボックスの入...
-
CString Format にて全角空白文...
-
メモ帳の段落の揃え方
-
エクセルでの”々”の扱い
-
封筒の宛先で縦書きの書き方
-
正規表現で、全角文字を半角文...
-
全角英数字を半角英数字に変換...
おすすめ情報