アプリ版:「スタンプのみでお礼する」機能のリリースについて

WindowsXP Proffessional OFFICE2003の構成でエクセルを使用していてサービスパックも入れています。

自分でユーザー関数を作って使用しているのですが標準、モジュールのほうで大文字で関数を書いているのにワークシートのほうで使用すると勝手に小文字に書き換えられてしまいます。
標準モジュール一つだけ関数マクロがあるだけでシートのほうには何も記述していません。

ちょっと前まで標準モジュール内の関数を大文字に指定していても小文字に戻されてしまうので、わざとシートのほうに大文字で関数を書くと標準モジュール内の関数が自動的に変わって問題は解決したと思ったのですが、エクセル本体?の関数が変わっておりません。
関数そのものの動きは思った通りに動いています。

こういうときはみなさんはどうなさいますか?

A 回答 (1件)

>大文字で関数を書いているのに


どういう意味?関数名のこと。ユーザー定義関数の中の変数名のこと?
あるいはその他の名称?ステートメント?コメント?
はっきり書いて。
>ワークシートのほうで使用すると勝手に
使用するのは何?目的語を明確に。関数(関数名のこと?)を=関数名()で
使っているのか。
実際の標準モジュールの関数定義の名前に換えられてませんか。
色んな名前の命名でVB系では大文字・小文字は区別されないと思ったほうが良い。
シート名、変数名など
http://officetanaka.net/excel/vba/tips/tips93.htm
http://www.accessclub.jp/vba/help/b02.html

この回答への補足

返事が遅れて申し訳ありません。
>どういう意味?関数名のこと。ユーザー定義関数の中の変数名のこと?
ユーザー定義関数の「関数名」です。
シート上では大文字ででセルに
=VLCOUNTIF
としたつもりがすぐに勝手に
=vlcountif
に変えられてしまうのです。

標準モジュール上では
Public Function VLCNTIF(ParamArray FindStr() As Variant) As Variant
としております。

内容はプライバシーの問題があるので詳しく明かせませんが、例えて言うならVLookupで単価表の商品番号の価格を取得し、COUNTIFで商品の数を数えてかけ算したものを合計するみたいなことをするためにVBAでユーザー定義関数を作っていてVLCOUNTIFという関数を作っていたのです。
いろいろ実験してみたところ、例え「VL」を付けていたとしても「COUNTIF」の部分が問題だったようでVLCNTIFなどとしたら、普通に=vlcntif等と入力してもきちんと=VLCNTIFで修正されて事なきを得ました。
大変お騒がせしました。

補足日時:2011/11/28 00:10
    • good
    • 0
この回答へのお礼

標準モジュール上では
×Public Function VLCNTIF(ParamArray FindStr() As Variant) As Variant
○Public Function VLCOUNTIF(ParamArray FindStr() As Variant) As Variant
としております(していました)。
先ほどの補足の内容の修正です。
見苦しくてすみません。

ありがとうございました。

お礼日時:2011/11/28 00:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!