|
ご回答ありがとうございます。
ご指摘いただいた点:
(1) 既にそのブックを開いているなら、Application.Run() の引数は "Book2.xls!Test" でいい
(2) Book2.xls!Test の型が正しく指定されていない
について、ご指摘いただいたとおりに修正してみました。
……でも、ダメでした… orz
「実行時エラー 1004 マクロ'Book2.xls!Test" が見つかりません」
と言われてしまいます。別な方からのご回答も頂き、そちらも試してみましたが、やはり同じ状況です。
どうもBook2.xlsの function Test() が見つけられていないように見えます…。
▼つん さん:
>▼tsgross さん:
>こんにちは
>
>>■症状
>>二つのブック(Book1.xls, Book2.xls)を作ります。
>>Book1.xls から Book2.xls 上にある Function を呼び出したいと思うのですが、
>>「実行時エラー 1004
>>マクロ 'C:\Documents and Settings\First-Last\My Documents\excel\Book2.xls!Test' が見つかりません」
>>と言われて Book2.xls にある Test() という Function が呼び出せません。
>>
>>■マクロ
>>■■Book1.xls
>>Private Sub Command_Button1_Click()
>> Workbooks.Open("C:\Documents and Settings\First-Last\My Documents\excel\Book2.xls")
>> dim x as Long
>ここ↓
>> x = Application.Run( "C:\Documents and Settings\First-Last\My Documents\excel\Book2.xls!Test )
>x = Application.Run("Book2.xls!Test")
>でいいと思います。
>
>>End Sub
>>
>>■■Book2.xls
>>Public Function Test()
>> Dim wb as Workbook
>> set wb = ThisWorkbook
>> MsgBox( "僕は" & wb.Name )
>>End Function
>
>それから、Functionだと
>
>Public Function Test() As String
>
> Dim wb As Workbook
> Set wb = ThisWorkbook
> Test = "僕は" & wb.Name
>
>End Function
>
>こういう形ですよね。
>で、文字列を返してるから、
>Book1で受けるのも
>
>> dim x as Long
>
>じゃなくて、「String型」にしないとダメやないかな?
|
|