2017-03-18 10 views
1

ユーザー定義関数(UDF)を追加するExcel VBAアドインがあります。これらの関数はすべて、結果の計算に関しては正常に機能します。Excel VBA UDFが誤った大文字小文字の改訂

MacroOptionsを使用して関数ウィザードに入力します。

ワークシートでそれらを使用する場合、caseの関数名を自動修正します。たとえば、関数の名前がMyFunctionで、ユーザーが関数をmyfunctionとして入力すると、数式を入力すると関数名の大文字小文字がMyFunctionに自動修正されます。 Excelのビルトインワークシート機能と同様に、たとえば次のように入力します。中央値はMEDIANに自動修正されます。

ただし、そのオートコレクトが間違っているUDFが1つあります。私はそれが欲しいです。 MyFunctionは、ユーザーがそれを入力したとしても、すべての小文字のmyfunctionに自動修正されます。

私はすべての関連するコード行を見てきましたが、それは理由が見つかりません。コードは、関数名、関数の説明、および関数自体のコードとパラメーター以外のすべての他のUDFについても同じです。

その1つのUDFが関数名を別々に自動修正する理由は何ですか?ここで

はMacroOptionsラインの例です:

Application.MacroOptions "MyAddin.xla!MyFunction", "Description of MyFunction for the Excel's Function Wizard.", , , , , "Custom category in Function Wizard" 

そして、UDF自体は、次のようになります。

再び
Public Function MyFunction(param1 As Long, param2 As Long) As Long 
    'MyFunction's code here... 
End Function 

、UDFが正しく計算されます。問題は関数名の自動修正にあります。

私はaddinを閉じてから、影響を受ける関数と同じ関数名を持つ新しいUDFを新しいデフォルトのExcelブックに作成しようとしました。それは正しく機能しました - それは正しい場合に自動修正されました。しかし、私はそれを閉じて、アドインに戻って、問題が戻った。

UPDATE:アドインワークブックのIsAddinプロパティをfalseに設定してくださいを

  1. :ここ

    は(!おかげで、チャールズ・ウィリアムズ)の問題を解決するために私のために働いた手順です。それがワークブックになるので、ワークシートを手に入れます。

  2. [ファイル]> [名前を付けて保存]をクリックし、新しいxlsmブックとして保存します。重要:影響を受ける関数名を含む数式がワークシートに存在しないことを確認してください。そうでなければ、このステップに戻ります。
  3. [ファイル]> [オプション]> [アドイン]> [移動]をクリックして、Excelの起動時に読み込まないようにアドインをオフにします。
  4. Excelを終了して再起動します。
  5. 新しいxlsmブックを開きます。
  6. 関数名を含む数式を大文字で入力してください。誤った大文字小文字に自動修正しないでください。
  7. 数式を削除します。
  8. xlsmブックを保存します。
  9. 上書きしようとしているので、元のアドインのバックアップを作成します。
  10. xlsmを新しいxlaアドインとして保存し、古いものを上書きします(これはxlamでもうまく動作しますが、試していないと仮定します)。
  11. [ファイル]> [オプション]> [アドイン]> [移動]をクリックして、Excelの起動時に読み込むようにアドインを再チェックします。
  12. Excelを再起動します。問題のテスト。問題は修正する必要があります。

答えて

4

Excelは、初めてUDFが式に入力されたときに使用された大文字を覚えておくことを唱えています。

私はUDFの名前を変更することを除いて、これをリセットする賢明な方法を発見していません。

XLAMのワークシートにUDFを参照する数式が含まれている場合、その参照は大文字に固定されます。 XLAMのワークシートにUDFを参照する数式が含まれていない場合は、Excelセッションで使用する最初のワークブックから設定されます。異なる資本化を持つ2つの保存されたブックがあり、両方が開かれている場合、2番目の大文字の大文字は最初の大文字から上書きされます。

+0

ありがとう、xlaファイルには数式が含まれていません。Excelを再起動して新規の既定のブックに数式を入力すると、問題はまだ残ります。説明されています。他のいずれかのUDFで式を入力し、その他のUDFをすべて小文字で入力すると、正しい場合に自動的に修正されます。 –

+0

試してみてください - 新しいExcelセッションを開始してください - ブックのプロパティを使用してアドインを非アドインに戻してください - 正しい大文字で式を入力してください - Addinに戻って再保存してください –

+0

ありがとうございました!最初は動作しませんでしたが、いくつかの追加ステップが必要でした。私は元の質問に私のために働いた手順を行います。 –

関連する問題