
No.2ベストアンサー
- 回答日時:
こんにちは。
KenKen_SP です。ご質問のように変数にプレフィックスを付ける表記をハンガリアン表記法
と呼び、MS がかつて推奨していたものです。特に Visual Basic 6.0 まで
広く使われていました。
これに従うならば、ご質問にある変数名で良いと思います。
しかし、現在は MS は推奨していません。それどころか、一転してハンガ
リアン表記法はむしろ MSDN にある名前付けのガイドラインに違反した
表記法とされています。
詳しくは、MSDN ライブラリを参照して下さい。
これには賛否両論があり、どちらが良いのかは議論がなされている最中です
が、今後 MS がハンガリアン表記法を推奨しないことを考えれば、いずれは
使われなくなく表記法ですね。
どちらが良いのか、その是非については述べません。ご自身が判断するべき
ことだからです。何より大切なポイントは自分が見ても、他人がみても
「変数名はわかりやすく」
です。このような表記法の変化に振り回されて、このポイントがおろそかに
なるようではどんな表記法も無意味です。その意味で #1 ご回答の
> 1)見たら判る、(2)一貫している、ならばOKではと考えます。
は、的確でまさにその通りだと思います。
個人的な好みの話をすれば、私は通常変数にはプレフィックスを付け、
構造体のメンバには付けません。
Private Type STAFFINFO
ID As Long
Name As String
Address As String
Tel As String
End Type
Sub xxxx()
Dim udtSI as STAFFINFO
With udtSI
.ID = 1
.Name = "名前"
.Address = "住所"
.Tel = "012-3456-7890"
End With
End Sub
のような感じですが、プレフィックスを付けると
With udtSI
.lngID = 1
.strName = "名前"
.strAddress = "住所"
.strTel = "012-3456-7890"
End With
となって、通常変数なのか構造体のメンバなのか見難くなるからです。
余談ですが、構造体のことを VB では「ユーザー定義型」と表現してます。
私見でした。
No.1
- 回答日時:
マイクロソフトが推奨している命名規則に関する質問であれば、それで宜しいと思います。
が、私は、
Dim mudtMenu AS MENU_TYPE
でなく
Dim MyMenu As MENU
としています。
Dim typMenu As MENU
も、「ありかなー」と思います。
要は、(1)見たら判る、(2)一貫している、ならばOKではと考えます。
Private Type MENU
TitleCaption As String * 24 ' トップメニュータイトル
MenuCount As Integer ' メニュー総数
SubItems(5) As Integer ' 各メニューの項目数
MenuNames(5) As String * 16 ' 主メニュー名
' ----+----1----+----2----
LargeIcons(5, 19) As String * 24 ' Icons\Large\xxxxxxxx.ico
SmallIcons(5, 19) As String * 24 ' Icons\Large\xxxxxxxx.ico
IconTexts(5, 19) As String * 12 ' アイコンテキスト
AppTypes(5, 19) As String * 1 ' アプリケーションの種類
AppNames(5, 19) As String * 20 ' アプリケーション名
AppDescs(5, 19) As String * 32 ' アプリケーションの説明
ViewMode As Integer ' 表示モード
End Type
Dim MyMenu As MENU
PCが動かなくなり、IDが分からなくなってしまって
お礼が遅れてしまいました。
ご回答どうもありがとうございました。
参考にさせていただきます(^^)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
在宅ワークのリアルをインタビュー
ベテラン在宅ワーカーと 在宅ビギナーの方々に、在宅ワークの実情をお教えいただきました。
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
構造体配列の特定のメンバーをFor~Eachで
Visual Basic(VBA)
-
VBA コレクションに2次元配列を追加して取り出す方法
Visual Basic(VBA)
-
4
プロシージャ名の取得
Visual Basic(VBA)
-
5
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
6
'Range'メソッドは失敗しました
Excel(エクセル)
-
7
COMコンポーネントって何?
Visual Basic(VBA)
-
8
Range(A1")⇔cells(1,1)の変換。"
Excel(エクセル)
-
9
他のフォームから別のフォームのサブルーチンを呼び出す
Visual Basic(VBA)
-
10
実数の整数部,小数部の取得
Visual Basic(VBA)
-
11
定数配列の書き方
Visual Basic(VBA)
-
12
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
13
VB6でユーザー定義型がNothingかどうか調べるには?
Visual Basic(VBA)
-
14
定数を構造体で・・・
Visual Basic(VBA)
-
15
VBA プロシージャの名前の取得
その他(Microsoft Office)
-
16
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
17
SQLでSUMなどの関数でデータが無い時に0を返したい。
Oracle
-
18
データベースのINT型項目にNULLはNG?
MySQL
-
19
VBAのエラー発生場所をメッセージBOXに表示
Visual Basic(VBA)
-
20
参照設定は2.8と6.0 6.1とどちらにチェッ
その他(Microsoft Office)
関連するQ&A
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
構造体の代入と比較
-
5
VBAにてcolorindexを変数に格納...
-
6
異なる構造体のデータのコピー
-
7
VBAの変数のデータ型を変更する...
-
8
OpenCV「cv::bitwise_and」につ...
-
9
ユーザー定義型変数の一括初期化
-
10
構造体にする理由・利点・使用例
-
11
charとucharの違い
-
12
構造体のデータを丸ごとコピー...
-
13
VB6.0の変数、関数の定義位置か...
-
14
構造体の継承?再定義?
-
15
C++ 構造体の一括初期化 {0}
-
16
VB.NETのStructureというのはど...
-
17
C言語 構造体の中に共用体を定...
-
18
typedefをプログラム中で解除す...
-
19
int型とchar型について
-
20
10進数の変換方法
おすすめ情報