[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/06/22(Fri) 10:58
投稿者名:こう
Eメール:
URL :
タイトル:
メッセージ等の定数定義について
同じメッセージ(例「必須項目を入力してください」など)を多くのフォームで共通して使われている
場合は、モジュールに定数定義しておいたほうがメンテ等あった場合操作しやすいと思います。
しかし、一箇所で使用しているメッセージも定数定義でモジュール等に入れておいたほうがよいのでしょうか?
それとも、そのままコードの中に入れておいたほうがよいのでしょうか?
参考意見あればお聞かせください。よろしくお願いします。

投稿時間:2007/06/22(Fri) 11:37
投稿者名:ダンボ
Eメール:
URL :
タイトル:
Re: メッセージ等の定数定義について
「モジュールに定数定義しておいたほうがメンテ等あった場合操作しやすい」ということについて
『複数箇所同時に直せるから』というメリットしか見えていないのが、質問の背景ですかね。

メッセージ定義をまとめるメリット
・メッセージを修正したときに、該当モジュールへのバグ混入機会が減る。
・メッセージ一覧表が簡単に作れる。
・メッセージ定義は全てここにあるという安心感。
・(当然メッセージIDを付与しているとして、)メッセージ表示箇所を検索するのが容易。
・とにかく何か機械処理をしようとすれば「統一されている」ことが必要。

投稿時間:2007/06/22(Fri) 11:46
投稿者名:こう
Eメール:
URL :
タイトル:
Re^2: メッセージ等の定数定義について
お返事ありがとうございます。

メリット等わかりやすくありがとうございます。

'エラー処理
    sErrMsg = "ログイン画面でエラーが発生しました。" & vbCrLf & _
            Err.Number & " " & Err.Description
    MsgBox sErrMsg, vbCritical, "ログイン"



'エラー処理
    sErrMsg = log_Message & vbCrLf & _
            Err.Number & " " & Err.Description
    MsgBox sErrMsg, vbCritical, log_Title

思ったのは、一箇所しか使っていないメッセージをモジュールにすることによってコードを見直す場合に
見づらいのではないかなと思いまして^^;

投稿時間:2007/06/22(Fri) 12:19
投稿者名:ダンボ
Eメール:
URL :
タイトル:
Re^3: メッセージ等の定数定義について
> 思ったのは、一箇所しか使っていないメッセージをモジュールにすることによってコードを見直す場合に
> 見づらいのではないかなと思いまして^^;

それはね。
システムの規模(会社の納品物)やチョンプロ(社内使用・個人使用)とかにも依りますが。


> 'エラー処理
>     sErrMsg = "ログイン画面でエラーが発生しました。" & vbCrLf & _
>             Err.Number & " " & Err.Description
>     MsgBox sErrMsg, vbCritical, "ログイン"
> 'エラー処理
>     sErrMsg = log_Message & vbCrLf & _
>             Err.Number & " " & Err.Description
>     MsgBox sErrMsg, vbCritical, log_Title

こういう書き方では返って見づらくなっても当然ですわね。MsgBoxをチョコチョコ使うようでは
メッセージ定数定義の心が分かっていません。標準関数MsgOutを定義して、メッセージは必ず
この関数を経由して表示するようにしておけば、あとでどういう拡張要求が来たときでも
対処しやすくなりますよね。
例)表示した内容をログにも吐きたい。
例)あるエラーが起きたらメールを送りたい。


'エラー処理
     Call MsgOut(log_Message001, Err.Number, Err.Description )

投稿時間:2007/06/25(Mon) 17:30
投稿者名:こう
Eメール:
URL :
タイトル:
Re^4: メッセージ等の定数定義について
> 'エラー処理
> Call MsgOut(log_Message001, Err.Number, Err.Description )

遅れましたが、お返事ありがとうございます。もうちょっと、メッセージ定数定義の心等
学ばなければなと思いました。
うまくモジュール等使って色々な要求にも対処していけるようにしていきたいと思います。

投稿時間:2007/06/25(Mon) 20:53
投稿者名:ダンボ
Eメール:
URL :
タイトル:
Re^5: メッセージ等の定数定義について
> 遅れましたが、お返事ありがとうございます。もうちょっと、メッセージ定数定義の心等
> 学ばなければなと思いました。

そんなに偉そうな話じゃないです。経験則です。いっぱいプログラムを作って、顧客に裏切られて
痛い目を見ていけば、うまいコーディング例を集められるというもの。

MsgOut設計のヒント
・引数にメッセージIDは必須。
・付帯情報も表示したいが個数は不定。
・モジュール名とか、場合によってメッセージの小編集もしたい。
・表示形態も指定したい(!や?や一定時間後に自動で消えるとか)
・更に拡張すれば、ユーザからの返答(YES/NO/CANCEL)も入手したい。

などを贅沢に実装するなら、
 Function MsgOut(メッセージID, 表示形態, 返答指定, [付帯情報1, 付帯情報2... ] )
のようになりますね。
メッセージ本文は「MSG001 編集もできるんです。@の値は#.###でした」という感じにしておいて
動的に付帯情報1, 付帯情報2をはめ込む。と。