こちらのグループではいつも有用な情報に感謝してます.
さて,
初歩的な質問かもしれず恐縮ですがよろしくお願いします.
Win98SEで,Excel2000 を使用しています.
その質問ですが,
UserFormのコード記述部から,標準Module の呼び出し方法
が解からなくて,どなたかご教授をお願いしたいと考えてい
ます.
UserForm作成後,UserFormコード記述部にコード記述してい
ますが,ここから,Module への Declare Function 宣言
(Option Explicit部に記述)がエラー表示になるのは,VBAの仕
様でしょうか?
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
あ,やりたいことは,
UserForm上のコマンドクリックイベントが発生したら,
標準Moduleで作成してある Function プロシージャを動かした
い(使いたい)のです.
上記の標準Moduleで作成してある Function プロシージャを,
UserFormコード記述部に書き直したら,希望通りに動いたの
ですが,そうすると,今まで作った標準Moduleのコード部を,
全部UserFormコード記述部に書き直さなければならないし...
-- Thanks in advance...
和久井♪和希 mailto:wakui...@mail.goo.ne.jp
"WAKUI Kazuki" <wakui...@mail.goo.ne.jp> wrote in message
news:boek7k$ig8$1...@news511.nifty.com...
> その質問ですが,
> UserFormのコード記述部から,標準Module の呼び出し方法
> が解からなくて,どなたかご教授をお願いしたいと考えてい
> ます.
標準Moduleの所定関数がpublic宣言されていますか?
--
----------------------------------------------------
Naoto Zushi(厨子 直人) <news-...@muzik.gr.jp>
fj.*:第10期選挙管理委員会が始動しました。
公式web:http://muzik.gr.jp/fj/election/2003/
----------------------------------------------------
WAKUI Kazuki wrote:
> UserFormのコード記述部から,標準Module の呼び出し方法
> が解からなくて,どなたかご教授をお願いしたいと考えてい
> ます.
>
プロシージャレベルでごく普通に Call するとどうなります?
# 標準モジュールって、同じ Bookにあるんでしょ?
--
いまいち、言われていることがよく分からないのですが、UserFormコードのエラー表
示になるとかいうModule への Declare Function 宣言部分とModule側のFunction 宣
言の部分のみでも投稿してはどうでしょうか。その方が、的確なアドバイスを得られ
ると思います。
ところで、Module への Declare Function 宣言って何を意味しているのだろう?。
Declare Functionは普通DLLの呼び出し時に使用すると思うけど、DLLなら元記
事に書いてるようなコード部分を書き写すなんてことはできないと思うし。
>
> あ,やりたいことは,
> UserForm上のコマンドクリックイベントが発生したら,
> 標準Moduleで作成してある Function プロシージャを動かした
> い(使いたい)のです.
単に、Function名を書くだけで、普通は動くと思いますが。関数にprivate宣言さえ
していなければですが。
--
******************************
keizi kounoike
******************************
at Sat, 8 Nov 2003 12:31:07 +0900,
<koun...@mbh.nifty.com> wrote:
Message-ID: <boho8p$pvr$1...@news511.nifty.com>
>ところで、Module への Declare Function 宣言って何を意味しているのだろう
>?。
>Declare Functionは普通DLLの呼び出し時に使用すると思うけど、DLLな
>ら元記
>事に書いてるようなコード部分を書き写すなんてことはできないと思うし。
>
"Naoto Zushi"さん,
"Y.Sone"さん,
koun...@mbh.nifty.comさん,
すみません.
わたくしがかなりお馬鹿な思い違いをしていたみたいです.
ズッと以前に,QuickBasic 使ったことあって,
プログラムの先頭部分で,Declare Function とか,
Declare Subって,自動生成や,宣言していた記憶があって,
"Naoto Zushi" <news-...@muzik.gr.jp> wrote:
Message-ID: <bofnhi$9i4$1...@cala.muzik.gr.jp>
>
> 標準Moduleの所定関数がpublic宣言されていますか?
>
とか,ご指摘のように,関数や変数のスコープをかなり
意識してちゃんと宣言しないと動いてくれないの?とか
思ったり.
で,宣言文書いてもエラー表示になるし...
作った関数に適宜記述すればよいということで,
先頭部分に記述宣言する必要はないのですね.
次のような簡単なサンプルを作って,確認してみたら,
特に宣言しなくても動いてくれました.
恥ずかしい限りです.すみませんでした.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
UserForm部
Option Explicit
Const OK As Integer = -1
Const NG As Integer = 0
Private Sub CommandButton1_Click()
Dim i As Integer
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
MsgBox .List(i)
End If
Next i
End With
End Sub
Private Sub CommandButton2_Click()
Dim a As Integer
a = 1
If OK = testcall("てすと") Then
Stop
Else
Stop
End If
''''call testcall("てすと")
''''If a = testcall("てすと") Then
'''' Stop
''''Else
'''' Stop
''''End If
End Sub
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
標準Module部
Option Explicit
Function testcall(dat As String) As Integer
MsgBox dat
testcall = -1
End Function
>単に、Function名を書くだけで、普通は動くと思いますが。関数にprivate宣言
>さえ
>していなければですが。
>
記述はしてませんでしたが,気づいていませんでした.
記述がないと,defaultでPublicが暗黙の宣言になっていると
いうことでしょうか.
実は,上に書いたconst宣言なども,
Publicって宣言が *したくって* 記述追記すると,
エラー表示になってしまうことも,悩んでいました...
みなさんごめんなさい.そしてありがとうございます.