2016-09-03 16 views
-1

私は引数を持たないユーザ定義関数を多く持っています。私はこの記事のCUdfHelper http://www.jkp-ads.com/articles/RegisterUDF00.aspを登録機能として使用します。引数なしでExcel UDFを登録する

登録された関数は、たとえそうでないとしても引数の引数を要求します。

例引数なしで私のfuction:

Public Function getProjects() 
    getProjects = Utils.execute("getProjects", "getWSEntitiesData") 
End Function 

MyFunction.c

#include <windows.h> 

#define DLL_EXPORT __declspec(dllexport) 


DLL_EXPORT void getProjects() { 
    return; 
} 

で、私は、これらのパラメータを持つ関数を登録MyFunction.dll

にコンパイルします。

SetGlobalName = Application.ExecuteExcel4Macro("MyFunction.dll", "getProjets", "P", "getProjects", "", 1, "MyFunctionCategory", "", "", "Return list projects") 

私は

SetGlobalName = Application.ExecuteExcel4Macro("MyFunction.dll", "getProjets", "P", "getProjects",, 1, "MyFunctionCategory", "", "", "Return list projects") 

として登録した場合は関数の引数]ダイアログが全て同じ表示されます。

関数の引数]ダイアログボックスが表示されていない

SetGlobalName = Application.ExecuteExcel4Macro("MyFunction.dll", "getProjets", "P", "getProjects",, 1, "MyFunctionCategory") 

として私が登録していないが、説明が使用できなくなった場合。

REGISTER()の引数

    あなたは
  1. タイプ文字列
  2. あなたがExcelのセル
  3. に使用する名前を呼び出したい関数のDLL
  4. 名の
  5. パスと名前
  6. 関数ウィザードで使用する引数のリスト
  7. マクロタイプ(関数の場合は2、コマンドの場合は2)
  8. 関数が登録されている場合
  9. ショートカットテキストに機能を追加するためのウィザードカテゴリが関数ウィザード

11に表示するファイル

  • 機能のヘルプを支援するためのコマンド
  • パスで機能
  • -30以降では、関数ウィザードの各引数のテキストを助けます。

    私は問題が引数にあると思います。デフォルトでは空の文字列に設定されているため、パラメータを関数に変更する方法がわかりません。正しくウィンドウが表示されないようにパラメータを設定し、説明を格納する方法CUdfHelper

    ' structure definition 
    Private Type REGARG 
        sDllName As String 
        sDllProc As String 
        sArgType As String 
        sFunText As String 
        **sArgText As String** 
        iMacType As Integer 
        vCatName As Variant 
        sKeyText As String 
        sHlpPath As String 
        **sFunHelp As String** 
        aArgHelp(1 To 20) As String 
    End Type 
    

  • +1

    にして下さい。しかし、あなたの質問は全く明らかではありません。また、使用しているコードは一切提供していません。 [良い質問をするにはどうすればよいですか]のヘルプトピック(http://stackoverflow.com/help/how-to-ask)、[最小限で完全で検証可能なサンプルを作成する方法](http ://stackoverflow.com/help/mcve) –

    +0

    @RonRosenfeldありがとう、私は私の質問を更新します。 – martinixs

    +0

    Excel 2010とは異なる方法があるようです。http://www.jkp-ads.com/Articles/RegisterUDF01.asp – Slai

    答えて

    0

    登録がExecuteExcel4Macroで機能し、機能説明を設定している場合。ただし、XLLアドインでは、Excel APIのバグに遭遇する可能性があります。Descriptionプロパティに空でない文字列を持つADXExcelFunctionDescriptorにパラメータのない関数が記述されている場合、バグが表示されます。この場合、別のバージョンの関数引数ダイアログが表示されます。

    つまり、この問題を回避するには、ADXExcelFunctionDescriptor.Descriptionプロパティを空のままにする必要があります。

    あなたのコードを変更することによって、またはそれを登録しないことにより、おそらくhttps://www.add-in-express.com/docs/net-excel-udf-tips.php

    関連する問題