VBAにおける「dispMsg」につきまして


仕事でAccessやExcelのVBAを読む機会が多いのですが。
「dispMsg」というのが変数なのか、それとも●●オブジェクトの〇〇メソッド等のあらかじめ用意されている関数なのかが,不明でして。
dispMsg()のように、"()"があるということは何らかのメソッドの気がするのですが…。
変数として利用されているのであれば、どこかに「Dim dispMsg」みたいに宣言されたり、値を代入する式みたいなのもある気がするのですが。
どうもそれが見当たらず…いや、見つけられていないのかもですが…。

VBAにおけるdispMsgの正体につきまして、お教えいただけますと幸いです。
よろしくお願い致します。

回答の条件
  • 1人20回まで
  • 登録:2019/10/09 07:10:18
  • 終了:2019/10/28 07:10:18
id:moon-fondu

他の言語でしたら、「dispMsg」で検索すると、たくさんの記事がヒットしました。

・Cプログラミング診断室/文字処理は得意/メッセージ
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.7.3.html
・vim script 入門 – 関数 | 技術者魂
http://engineerspirit.com/2017/01/14/post-620/
・データベースを開く - データベースの作成 - Androidプログラミング入門 | JavaDrive
https://www.javadrive.jp/android/sqlite_database/index2.html
・Javaでprivateなfieldやmethodにアクセスする
http://www.takaiwa.net/2013/01/javaprivatefieldmethod.html
・Kotlin - Javaの静的メソッド/フィールドのrepalcementとして使用 | kotlin Tutorial
https://riptutorial.com/ja/kotlin/example/31114/java%E3%81%AE%E9%9D%99%E7%9A%84%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89-%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AErepalcement%E3%81%A8%E3%81%97%E3%81%A6%E4%BD%BF%E7%94%A8
・引数を使って関数へ値を渡す - 関数 - JavaScript入門
https://www.javadrive.jp/javascript/function/index3.html
・ローディング : システム開発参考サイト(サンプルプログラム集など)
http://learningserver.blog.jp/archives/1064203856.html

なぜかVBAでは、「vba dispmsg microsoft」「dispmsg 関数 vba」等で検索してもヒットせず…。

・フォームオープン後メッセージボックスを最前面に表示したい --Access Club VBA Tips フォーラム--
http://www.accessclub.jp/bbs5/0011/vba3063.html

は、VBAの話題ですが、dispMsgが何なのかという説明は見当たらず、消化不良であります…。

回答(2件)

id:rsc96074 No.1

rsc回答回数4430ベストアンサー獲得回数4142019/10/09 16:35:43

ポイント500pt

 「質問者から」の最後のURLの『・フォームオープン後メッセージボックスを最前面に表示したい --Access Club VBA Tips フォーラム--』のとこのdispMsgは、

Private Function dispMsg() As Integer

で定義されているので、ユーザー定義関数のようです。(^_^;
 下記の参考URLによると、VBAでは、返り値を使わないときは、かっこが省略できるようです。引数もないし単独で、ぽんと現ると、変数っぽく見える場合もあるかも知れませんね。(^_^;
※参考URL
Office TANAKA - 今さら聞けないVBA[括弧()はどんなときに使うの?]

他1件のコメントを見る
id:rsc96074

 そう言われればそうですね。値を返さないから、「Subプロシージャ」でいいような気もします。(^_^;
 その前の「AAA」は

Private Function AAA() As Integer

で、始めて、

End Sub

で、終わってます。何か怪しいですね。(^_^;

2019/10/14 00:37:26
id:moon-fondu

rscさんがそう言ってくださると安心しました!
subプロシージャでも代用できる気がします。
本には「Subプロシージャには戻り値がなく、Functionプロシージャには戻り値がある」という違いのようでしたので。
ありがとうございました。

2019/10/19 06:56:46
id:kaoato No.2

kaoato回答回数181ベストアンサー獲得回数732019/10/12 09:12:54

ポイント500pt

Sub プロシージャと Function プロシージャの呼び出し (VBA) | Microsoft Docs
https://docs.microsoft.com/ja-jp/office/vba/language/concepts/getting-started/calling-sub-and-function-procedures


ユーザー定義の「サブルーチン」か「関数」だと思う。


>それとも●●オブジェクトの〇〇メソッド等のあらかじめ用意されている関数なのかが,不明でして。
>dispMsg()のように、"()"があるということは何らかのメソッドの気がするのですが…


VBAは、オブジェクトなしに、関数やサブルーチンを書ける

他1件のコメントを見る
id:kaoato

>Private Function dispMsg() As Integer
>引数もないのに「Private Function dispMsg() As Integer」と
>関数をわざわざ作る理由につきまして、お教えいただけないでしょうか。


引数ありなしは関係ない。引数無しの関数も普通に存歳する

戻り値がありなしが、関数とサブルーチンの違い


>>|
Private Function dispMsg() As Integer
MsgBox "ABC"
End Function
||<

たとえば、上記のようなコードは、関数である必要はない。

MsgBox 関数 (Visual Basic for Applications) | Microsoft Docs
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/msgbox-function


ただし、MsgBox関数(VBAの標準関数) って戻り値があるんですね。


将来的に、OK、NOとかのメッセージボックスに変更するなら、
そのメッセージの戻り値を返すように変更することもできるとか・・。

2019/10/15 20:29:38
id:moon-fondu

kaoatoさんありがとうございます。
そうですよね、引数無しの関数もありますよね、勘違いしておりました。
リンクありがとうございます、「vbOK」って定数だったんですか!
やたらvbOKがコード内にあるので、「これ変数宣言もしてないのに、何なんだ…」と、悩んでいたところでした。

関数にしなくてもできる単純な挙動も、戻り値無しの関数で記述されている場合がある…と理解しておきます。
ありがとうございました。

rscさんがそう言ってくださると安心しました!
subプロシージャでも代用できる気がします。
本には「Subプロシージャには戻り値がなく、Functionプロシージャには戻り値がある」という違いのようでしたので。
ありがとうございました。

2019/10/19 07:12:55
  • id:moon-fondu
    Yoshiyaさんコメントいただいていたのに…すみません。消えてますね。私が確認するのが遅く、恐れ入ります。また気が向きましたら、再掲載いただけますとありがたいです!よろしくお願い致します<m(__)m>

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません