Google グループは Usenet の新規の投稿と購読のサポートを終了しました。過去のコンテンツは引き続き閲覧できます。
表示しない

標準Module の呼び出し方法

閲覧: 0 回
最初の未読メッセージにスキップ

WAKUI Kazuki

未読、
2003/11/06 18:05:512003/11/06
To:

和久井と申します.
followup-to:fj.comp.applications.excelです.


こちらのグループではいつも有用な情報に感謝してます.
さて,
初歩的な質問かもしれず恐縮ですがよろしくお願いします.


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

Naoto Zushi

未読、
2003/11/07 4:10:122003/11/07
To:
 厨子です。

"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/
----------------------------------------------------

Y.Sone

未読、
2003/11/07 11:53:362003/11/07
To:
曽根です。

WAKUI Kazuki wrote:
> UserFormのコード記述部から,標準Module の呼び出し方法
> が解からなくて,どなたかご教授をお願いしたいと考えてい
> ます.
>

プロシージャレベルでごく普通に Call するとどうなります?

# 標準モジュールって、同じ Bookにあるんでしょ?


--

koun...@mbh.nifty.com

未読、
2003/11/07 22:31:072003/11/07
To:
"WAKUI Kazuki" <wakui...@mail.goo.ne.jp> wrote in message
news:boek7k$ig8$1...@news511.nifty.com...
> UserForm作成後,UserFormコード記述部にコード記述してい
> ますが,ここから,Module への Declare Function 宣言
> (Option Explicit部に記述)がエラー表示になるのは,VBAの仕
> 様でしょうか?
>

いまいち、言われていることがよく分からないのですが、UserFormコードのエラー表
示になるとかいうModule への Declare Function 宣言部分とModule側のFunction 宣
言の部分のみでも投稿してはどうでしょうか。その方が、的確なアドバイスを得られ
ると思います。
ところで、Module への Declare Function 宣言って何を意味しているのだろう?。
Declare Functionは普通DLLの呼び出し時に使用すると思うけど、DLLなら元記
事に書いてるようなコード部分を書き写すなんてことはできないと思うし。

>
> あ,やりたいことは,
> UserForm上のコマンドクリックイベントが発生したら,
> 標準Moduleで作成してある Function プロシージャを動かした
> い(使いたい)のです.

単に、Function名を書くだけで、普通は動くと思いますが。関数にprivate宣言さえ
していなければですが。


--
******************************
keizi kounoike
******************************

WAKUI Kazuki

未読、
2003/11/08 23:31:562003/11/08
To:

和久井です.
なんか,とても恥ずかしいです.すみませんでした.

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って宣言が *したくって* 記述追記すると,
エラー表示になってしまうことも,悩んでいました...


みなさんごめんなさい.そしてありがとうございます.

新着メール 0 件