Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAで日付データから年を取得する-Year関数・Format関数

VBAで日付データから年を取得する-Year関数・Format関数

対象:Excel2007, Excel2010, Excel2013

「エクセル vba 入力セル日付値から年を取り出す」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

セルに入力されている日付データから、年だけを取得する、VBA(Visual Basic for Applications)のコードを探している方による検索です。

日付データからワークシート関数のYEARを使うと、年を表す数値を取得できることをご紹介していますが、これのVBA版を探している方による検索です。

[スポンサードリンク]

日付データから年を取得するサンプルマクロ

参考になりそうな簡単なマクロをご紹介しておきます。

Sub セルに入力された日付データから年を取得する()

 Dim tmp As Variant

 tmp = ActiveCell.Value
 If Not IsDate(tmp) Then Exit Sub

 MsgBox Year(tmp)
 MsgBox Format(tmp, "ggge")

End Sub

例えば「2015/1/2」というデータの入力されているセルがアクティブな状態で、上記のマクロを実行すると、
 「2015」
 「平成27」
とそれぞれ記載されたメッセージボックスが表示されます。

サンプルマクロの解説

変数・tmpにアクティブセルの値を格納して、
 tmp = ActiveCell.Value

もし日付データでなかった場合にはマクロを終了します。
 If Not IsDate(tmp) Then Exit Sub

一つ目のメッセージボックスでは、変数・tmpから、Year関数を使って年だけを取得した数値を表示しています。
 MsgBox Year(tmp)

二つ目のメッセージボックスでは、変数・tmpから、Format関数を使って、元号付きの年を作成して表示しています。
 MsgBox Format(tmp, "ggge")

「日付データから年を取得したい」という要望をそのまま受け取る場合は、Year関数でいいはずです。

和暦の年が欲しいといった要望をいただくこともあるので、参考までにFormat関数を使った例も入れておきました。

Format関数の第2引数に指定する文字列は、[セルの書式設定]ダイアログでユーザー定義書式を指定するときに使える文字列と概ね同じです。

関連語句
日付から年を取り出したい

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAで日付データから年を取得する-Year関数・Format関数

「VBA関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.