「エクセル vba 入力セル日付値から年を取り出す」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
セルに入力されている日付データから、年だけを取得する、VBA(Visual Basic for Applications)のコードを探している方による検索です。
日付データからワークシート関数のYEARを使うと、年を表す数値を取得できることをご紹介していますが、これのVBA版を探している方による検索です。
日付データから年を取得するサンプルマクロ
参考になりそうな簡単なマクロをご紹介しておきます。
Dim tmp As Variant
tmp = ActiveCell.Value
If Not IsDate(tmp) Then Exit Sub
MsgBox Year(tmp)
MsgBox Format(tmp, "ggge")
例えば「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引数に指定する文字列は、[セルの書式設定]ダイアログでユーザー定義書式を指定するときに使える文字列と概ね同じです。
- Newer:Word VBAでアクティブページを選択する
- Older:インストラクターのネタ帳の2014(平成26)年の人気ページ
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAで日付データから年を取得する-Year関数・Format関数