1は1じゃないし、2も2じゃない?

Evaluate って、てっきり定数の場合はそのまんま返すだろうと思っていたのですが、そうとは限らないと今頃知りました。

Sub Macro1()
  Debug.Print Application.Evaluate("1")
  Debug.Print Application.Evaluate("2")
  Debug.Print Application.Evaluate("3")
  Debug.Print Application.Evaluate("4")
End Sub

を、Excel2007 で実行したら、

 -4146 
 1 
 3 
 4 

になって、ちょっとびっくりです。
 
 
 
話の元ネタはこちら。
MOUG ExcelVBA掲示板 2007/08/07(火)22:53:22
『セルの計算式を表示する関数』
http://www2.moug.net/bbs/exvba/20070807000033.htm
 
ちなみにココで作ったユーザー定義関数は、我ながらなかなかいいじゃんと思っていたりして。
# そのうち、どっかに控えておこう。
  
※.Excel World の 2007年8月9日 01:04 の日記をコピーしています。
http://excel.sns.fc2.com/excel/