Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » ワークシートのTIMEとVBAのTimeは違う関数で似ているのはTimeSerial関数

ワークシートのTIMEとVBAのTimeは違う関数で似ているのはTimeSerial関数

対象:Excel2003, Excel2007, Excel2010, Excel2013

「excel vba time関数の利用」
「excel vba time関数因数省略」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。

細かい話ですが「因数」というのは「引数」(ひきすう)のTYPOでしょうね。

この検索だけでは、何を求めているのか正直なところわからないのですが、ここでは、ワークシート関数のTIMEと、VBA(Visual Basic for Applications)のTime関数の違いについてまとめておきます。

[スポンサードリンク]

ワークシートのTIME関数とVBAのTime関数はまったく違う

Excelのワークシート関数に慣れた方が、Excelマクロ・Excel VBAの学習をはじめたときに、最初に躓くポイントの一つとして、関数の違いがあげられます。

ワークシート関数とVBAの関数は、
 同じ名前であっても違う結果を返すことがあり
 同じような結果を返す関数でも違う名前のことが
あります。

というより、ワークシート関数とVBAの関数は名前が違うことが普通で、偶然同じ名前になっている関数がいくつかある、と考えるほうがいいでしょう。

TIME関数とTime関数も、スペルは同じ「time」ですが、機能的にはまったく異なる関数です。

▼ワークシートのTIME関数とVBAのTime関数の違い
ワークシートのTIME関数
 時・分・秒に該当する3つの引数を指定すると
 対応する時刻に該当する小数が返される

VBAのTime関数
 時刻が返される(引数は指定しない)

ワークシート関数のTIMEは、例えば、
「=TIME(12, 34, 56)」
という数式を入力すると「12時34分56秒」という時刻データになります。(セルにどう表示されるかはセルの表示形式によって変わります)

これに対してVBAのTime関数は、例えば
「Range("A1").Value = Time」
というコードを実行するとA1セルに、実行した時刻が入力されます。(VBAでは、引数を指定しないときにカッコをつける必要はありませんから、Timeの後は何もつけなくてOKです)

このように同じ「time」というスペルですが、ワークシートのTIME関数とVBAのTime関数はまったく別物です。

VBAでワークシートのTIME関数と似ているのはTimeSerial関数

ワークシート関数のTIMEと同じような関数は、VBAでは存在しないのかというと、そんなことはありません。似たような関数がVBAにも存在しています。

ワークシートのTIME関数と似たVBAの関数は、TimeSerial関数です。

例えば、
「Range("A2").Value = TimeSerial(12, 34, 56)」
というコードを実行するとA2セルに、「12時34分56秒」という時刻データが入力されます。(セルにどう表示されるかはセルの表示形式によって変わります)

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » ワークシートのTIMEとVBAのTimeは違う関数で似ているのはTimeSerial関数

「VBA関数」の記事一覧

検索


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

.