トップ «前の日記(2005-06-08) 最新 次の日記(2005-06-10)» 編集

日々の破片

著作一覧

2005-06-09

_ CallByName

spamに紛れて危うく削除するところだったが、久々にASRのバグ指摘が来た。 っていうか、CallByNameなんて関数は存在自体を知らなかったよorz。

Private Sub Command1_Click()
    Set fso = CreateObject("Scripting.FileSystemObject")
    For Each d In fso.drives
        MsgBox CallByName(d, "DriveLetter", VbGet)
    Next
    Set fso = Nothing
End Sub

なるほど。文字通りだな。

と存在はわかったもののいつ見りゃいいんだ?

_ 再現しないぞ?

VBLifeで試した。

VBLife.rbに以下を追加

def about
  "vb life"
end

LifeCanvasのForm_Loadの最後に以下を追加した。

MsgBox CallByName(life, "about", VbGet)

おお、ちゃんとメッセージボックスにvb lifeって表示されるぞ。というか、うまく動いちゃだめなんだが。

で、第3引数を変えてみるか

MsgBox CallByName(life, "about", VbMethod)

やっぱり動くな。引数が必要なのかな

def about(a, b)
  "vb life" + a + b
end

としてから

MsgBox CallByName(life, "about", VbMethod, "a", "b")

う、ちゃんと"vb lifeab"と出てくる……

再現パターンを問い合わせることにしよう。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|

ジェズイットを見習え