
No.6ベストアンサー
- 回答日時:
こんにちは。
私の場合は自己流ですが、ネットなど見て他の方を参考にして今日に至っています。
ルールは簡単で変数に何を(何の型)格納するかによって変えています。
・長整数の数字を格納する場合:Dim lngXXX as Long
・文字列を格納する場合:Dim strXXX as String
・ワークシートを格納する場合:Dim Wsh as WorkSheet
などです。「変数の型」を「変数の名前」に使います。
これで時間が経過した後にプログラムを読み返した時に
思い出しの助けとなります。
「XXX」の部分も同様で変数を使う目的の名前を含ませると、
後で読んだときにさらに助けになると思います。
例えばString型で何からの「名前」を格納するときには
Dim strName as String
などXXX→Nameとすると可読性が上がると思います。
他の方の回答でもあるように日本語の変数は使わないように
しています。
なお、変数名でアルファベット大文字、小文字混在を使うことで
変数を入力時にすべて小文字で入力したときに変数を打ち間違えていると
気づきやすくなりこれも小さい便利です。
No.5
- 回答日時:
有名な話題に、「ハンガリアン記法」というのが在ります。
興味があればゆっくり、Googleで「ハンガリアン記法」で照会して、読んでください。例
ウイキペディア
http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%B3% …
いまは変数だけでなくオブジェクトの命名方法も問題になると思う。
http://ja.wikipedia.org/wiki/%E5%91%BD%E5%90%8D% …
http://social.msdn.microsoft.com/Search/ja-jp/?Q …
ーー
>Dim i As Long
のようにiをよく見かけます。
はメモリを節約するために変数名を2文字以内とかに制限した言語の時代があり(Fortran?初期Basic)、数値といえば代表的なのが整数で、整数はIntegerなのでその頭文字のiが良く使われ、その次はj、k・・と使われた。
これがカウンター変数などに習慣的に今も残っている。
コボルでは当初から30文字とか長くてもよくて内容的に説明志向だったと思う。
No.4
- 回答日時:
こんにちは。
後から、書くと、とても書きにくいものです。前回の人のように、自分と違うことを書いたからといって、感情的になられても、こちらは困ってしまいます。
基本的には、VBAは、プライベートでチームで作成するわけでもありませんし、何をどうしてもかまわないのです。そういう状況下で可読性という点を追求しても、意味があるとは思いませんが、VBAやVBには、一定の基準があると思っても良いと思います。#3さんのおっしゃるように、String 型には、あまり規定がないのは、その意味を表す単語を入れることが多いからだと思います。
全体的なことから書かせていただくと、変数名は、インクリメントするものは、i,j とか使うという暗黙?のルールがあります。(それは、Microsoft がレールを敷いているのです。)困ったことに、チャールズ・シモニーが、Microsoftを退社してから、会社の一般的な記法が変わったような気がします。根本的には、.Net FrameWork などの登場が原因にあるのだと思います。
これは、.Net FrameWorkの問題ですから、従う必要はないとは思いますが、「ハンガリー表記法は使用しない。」とされています。ただ、VBAも将来的なことを考えると、数値型の int やlng のプレフィックスは、混乱の原因になりますから、やめたほうが良いかもしれません。
それで、本題の
>文字列型の変数名の一般的な文字に何が使われているのかわかりません。
>(str?moji?など?)
すくなくとも、str のプレフィックスを単独で使うのは間違いです。これについては、自分で分からないと、いくら、自称プロだといえども、VBAやVBは良く分かっていないと思います。時々、プロパティが、value とか、text と全部小文字になっている人がいますが、変数の書き方のミスが原因です。VBAには、予約語として入力できない文字は、そんなに多くあるわけではありませんが、使わないほうがよいものはいくつか存在しています。
変数は、なるべく英語を使い、ローマ字や省略形は頻繁に使ってはいけないと言われます。たとえば、num (numberの省略)は、推奨されないといわれますが、Microsoft サポートでも使っているようです。良く知られているものなら、かまいません。たとえば、sh は、シートのことです。x, y などは、x は、縦の長さを表し、y は横の長さを表すとか、ret は、return (戻り値)、c は、セル(Cells)、v は、Value 、Ar は、Array(配列)の略です。t やbuf は、テンポラリ(temporary)の変数に使われます。
文字型は、strValue や、strText、私は、sText という書き方をしたりすることもあります。変数はキャメル(らくだ)型にします。もし、意味がはっきりしているなら、sWords やstrLineも使うことがあります。文字型には、そのものを表す単語を書いても良いかもしれません。私は、変数の中には「_ アンダーバー」は入れません。とても扱いにくくなるからです。文字型は、他人からみて、大雑把に変数に何が入れているのか想像つくレベルで良いと思います。
ただし、変数の2バイト文字はいけません。なぜいけないかというと、特別な開発の環境下にある場合、いまだに検索をするときに、文字はインプットボックスに入力さえ出来ないからです。
直接、VBAの表記ルールや記法があるわけではありませんが、いくつかの本は参考にしています。私は、なるべく、Microsoft 側の書き方には沿うようにはしたいと思っています。
No.3
- 回答日時:
i,j,k,l,m,nは、大昔のBASICで「単精度整数型」が指定されていた
関係上、ループのインデックスなど「integer型」で使うのが通常に
なっていますが、最近のプログラマーは特段そういった発想は無い
みたいで、よくそれ以外の指定をしていたりしますね。私のような
古い人間はこれをやられると結構戸惑います。
ですが、文字列や実数型などは、特段の「暗黙の約束事」は無いです。
むしろ、そのプログラム環境での外部的な取り決め(納品先の仕様とか
自社の設計基準とか)で決まる場合が多いです。逆に言えば、そういう
のが無い「自分専用のプログラム」の場合、自分で勝手に決めてしまえ
ばいいんですね。
まあ、一般的には、変数タイプを変数名に明示的に表示する場合は、
DIMのAS以下の3文字を使う事が多いみたいです。例えば str_* とか
dbl_* とか・・・ですね。
でも、私自身も某納品先も「テーブル(データベース)」単位で変数名
が決まることが多く、あまり変数タイプを明示する文字列を先頭に持って
来ることはない、と思いますけど・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) VBA B列にある前から10文字のみ表示 3 2023/08/07 11:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
nullと""、\\0とEOFの違いにつ...
-
%dなどの違い
-
C#でstringをポインタとして渡す
-
プログラムによく出てくるst...
-
C#で質問があります。
-
Perlでの文字列操作について
-
バイナリファイル中の日本語文...
-
C言語のプログラムについて
-
TCL言語で文字列検索方法を教え...
-
文字列にある特定文字の数
-
sprintf関数での文字列変換につ...
-
引用符と二重引用符
-
_tcscpy_s(wcscpy_s)の第二引数...
-
CSVファイルの「”」について
-
C++で入力した文字列から数字を...
-
char型配列の最大要素数
-
fgetsで配列に数字を入れる。
-
VB6.0でのバイナリデータの扱い...
-
Shift_JIS(16進)を文字に変換す...
-
関数から配列を返すには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WSH(VBS)でJSONの文字列を読み...
-
バイナリファイル中の日本語文...
-
nullと""、\\0とEOFの違いにつ...
-
C#でstringをポインタとして渡す
-
%dなどの違い
-
_tcscpy_s(wcscpy_s)の第二引数...
-
プログラムによく出てくるst...
-
TCL言語で文字列検索方法を教え...
-
構造体→文字列→構造体 をする方法
-
プログラム問題・・・
-
C++で入力した文字列から数字を...
-
16進数を2文字ずつ配列に格納し...
-
[C++]WCHARの1文字目しか表示で...
-
シリアル通信で0x00を送信した...
-
char型配列の最大要素数
-
VB6.0でのバイナリデータの扱い...
-
sprintf関数での文字列変換につ...
-
Excelシートを固定長のテキスト...
-
c#で他のアプリの文字入力フォ...
-
CSVファイルの「”」について
おすすめ情報