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


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

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

回答の条件
  • 1人20回まで
  • 登録:
  • 終了:2019/10/28 07:15:07
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...

・引数を使って関数へ値を渡す - 関数 - 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

回答回数4452ベストアンサー獲得回数422

ポイント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

回答回数196ベストアンサー獲得回数76

ポイント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は、オブジェクトなしに、関数やサブルーチンを書ける

他2件のコメントを見る
id:moon-fondu

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

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

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

2019/10/19 07:12:55
id:kaoato

VBAの言語仕様は、過去の遺産のつぎはぎなので、統一感があまりないというのはある。

現状のVBAなら、subプロシージャがなくて、関数(Function)だけでも問題ない。 

あと、C言語系の人たちは、、subプロシージャでなくて、なんでも関数(Function)で書く傾向にあると思う。

たぶん、何でもFunctionで書いておくほうが、保守性はあがると思う。
プロジェクトのコーディング規約次第。

現状のVBAはオブジェクト指向のはずなのに、過去のオブジェクト指向でない書き方と混在できるのは、過去から仕様を引き継いできたから(上位互換)

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

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

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

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

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