仕事でAccessやExcelのVBAを読む機会が多いのですが。
「dispMsg」というのが変数なのか、それとも●●オブジェクトの〇〇メソッド等のあらかじめ用意されている関数なのかが,不明でして。
dispMsg()のように、"()"があるということは何らかのメソッドの気がするのですが…。
変数として利用されているのであれば、どこかに「Dim dispMsg」みたいに宣言されたり、値を代入する式みたいなのもある気がするのですが。
どうもそれが見当たらず…いや、見つけられていないのかもですが…。
VBAにおけるdispMsgの正体につきまして、お教えいただけますと幸いです。
よろしくお願い致します。
他の言語でしたら、「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が何なのかという説明は見当たらず、消化不良であります…。
「質問者から」の最後のURLの『・フォームオープン後メッセージボックスを最前面に表示したい --Access Club VBA Tips フォーラム--』のとこのdispMsgは、
Private Function dispMsg() As Integer
で定義されているので、ユーザー定義関数のようです。(^_^;
下記の参考URLによると、VBAでは、返り値を使わないときは、かっこが省略できるようです。引数もないし単独で、ぽんと現ると、変数っぽく見える場合もあるかも知れませんね。(^_^;
※参考URL
Office TANAKA - 今さら聞けないVBA[括弧()はどんなときに使うの?]
Sub プロシージャと Function プロシージャの呼び出し (VBA) | Microsoft Docs
https://docs.microsoft.com/ja-jp/office/vba/language/concepts/getting-started/calling-sub-and-function-procedures
ユーザー定義の「サブルーチン」か「関数」だと思う。
>それとも●●オブジェクトの〇〇メソッド等のあらかじめ用意されている関数なのかが,不明でして。
>dispMsg()のように、"()"があるということは何らかのメソッドの気がするのですが…
VBAは、オブジェクトなしに、関数やサブルーチンを書ける
kaoatoさんありがとうございます。
そうですよね、引数無しの関数もありますよね、勘違いしておりました。
リンクありがとうございます、「vbOK」って定数だったんですか!
やたらvbOKがコード内にあるので、「これ変数宣言もしてないのに、何なんだ…」と、悩んでいたところでした。
関数にしなくてもできる単純な挙動も、戻り値無しの関数で記述されている場合がある…と理解しておきます。
ありがとうございました。
rscさんがそう言ってくださると安心しました!
subプロシージャでも代用できる気がします。
本には「Subプロシージャには戻り値がなく、Functionプロシージャには戻り値がある」という違いのようでしたので。
ありがとうございました。
VBAの言語仕様は、過去の遺産のつぎはぎなので、統一感があまりないというのはある。
現状のVBAなら、subプロシージャがなくて、関数(Function)だけでも問題ない。
あと、C言語系の人たちは、、subプロシージャでなくて、なんでも関数(Function)で書く傾向にあると思う。
たぶん、何でもFunctionで書いておくほうが、保守性はあがると思う。
プロジェクトのコーディング規約次第。
現状のVBAはオブジェクト指向のはずなのに、過去のオブジェクト指向でない書き方と混在できるのは、過去から仕様を引き継いできたから(上位互換)
そう言われればそうですね。値を返さないから、「Subプロシージャ」でいいような気もします。(^_^;
その前の「AAA」は
で、始めて、
で、終わってます。何か怪しいですね。(^_^;
2019/10/14 00:37:26rscさんがそう言ってくださると安心しました!
2019/10/19 06:56:46subプロシージャでも代用できる気がします。
本には「Subプロシージャには戻り値がなく、Functionプロシージャには戻り値がある」という違いのようでしたので。
ありがとうございました。