プロが教えるわが家の防犯対策術!

おはようございます。

サンプルコードで
数値型の変数名は
Dim i As Long
のようにiをよく見かけます。

ただ、私が勉強不足のため
文字列型の変数名の一般的な文字に何が使われているのかわかりません。
(str?moji?など?)

サンプルコードを書くときに使用する
文字列型の変数名を教えてください!

教えて!goo グレード

A 回答 (6件)

こんにちは。

私の場合は自己流ですが、ネットなど見て他の方を
参考にして今日に至っています。

ルールは簡単で変数に何を(何の型)格納するかによって変えています。
・長整数の数字を格納する場合:Dim lngXXX as Long
・文字列を格納する場合:Dim strXXX as String
・ワークシートを格納する場合:Dim Wsh as WorkSheet

などです。「変数の型」を「変数の名前」に使います。
これで時間が経過した後にプログラムを読み返した時に
思い出しの助けとなります。
「XXX」の部分も同様で変数を使う目的の名前を含ませると、
後で読んだときにさらに助けになると思います。
例えばString型で何からの「名前」を格納するときには
Dim strName as String
などXXX→Nameとすると可読性が上がると思います。
他の方の回答でもあるように日本語の変数は使わないように
しています。

なお、変数名でアルファベット大文字、小文字混在を使うことで
変数を入力時にすべて小文字で入力したときに変数を打ち間違えていると
気づきやすくなりこれも小さい便利です。
    • good
    • 0
この回答へのお礼

変数の型を参考にするのですね。
ご回答ありがとうございます。参考になりました。

お礼日時:2009/12/22 22:15

有名な話題に、「ハンガリアン記法」というのが在ります。

興味があればゆっくり、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文字とか長くてもよくて内容的に説明志向だったと思う。
    • good
    • 0
この回答へのお礼

理由がわかり勉強になりました。ありがとうございます。

お礼日時:2009/12/19 13:49

こんにちは。



後から、書くと、とても書きにくいものです。前回の人のように、自分と違うことを書いたからといって、感情的になられても、こちらは困ってしまいます。

基本的には、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 側の書き方には沿うようにはしたいと思っています。
    • good
    • 0
この回答へのお礼

2バイトは使わないようにします。
ありがとうございます。

お礼日時:2009/12/19 13:48

i,j,k,l,m,nは、大昔のBASICで「単精度整数型」が指定されていた


関係上、ループのインデックスなど「integer型」で使うのが通常に
なっていますが、最近のプログラマーは特段そういった発想は無い
みたいで、よくそれ以外の指定をしていたりしますね。私のような
古い人間はこれをやられると結構戸惑います。

ですが、文字列や実数型などは、特段の「暗黙の約束事」は無いです。
むしろ、そのプログラム環境での外部的な取り決め(納品先の仕様とか
自社の設計基準とか)で決まる場合が多いです。逆に言えば、そういう
のが無い「自分専用のプログラム」の場合、自分で勝手に決めてしまえ
ばいいんですね。

まあ、一般的には、変数タイプを変数名に明示的に表示する場合は、
DIMのAS以下の3文字を使う事が多いみたいです。例えば str_* とか
dbl_* とか・・・ですね。

でも、私自身も某納品先も「テーブル(データベース)」単位で変数名
が決まることが多く、あまり変数タイプを明示する文字列を先頭に持って
来ることはない、と思いますけど・・・。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2009/12/19 13:48

サンプルコードの場合は特に規約があるわけでもないですから何でもいいとは思います。

個人的には変数名の頭に「str」や「s」を付けると、判りやすいかなぁと思って居ます。
    • good
    • 0
この回答へのお礼

sはわかりやすいですね。
ありがとうございます。

お礼日時:2009/12/19 13:47

変数名はなんでもよいですが、定義文では


Dim p as string
とします。

VBAでの文字列は、単にダブルクォーテーション(”)でくくるだけで使えます。
p="いろは"
    • good
    • 0
この回答へのお礼

pですか。
ありがとうございます。

お礼日時:2009/12/19 13:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

教えて!goo グレード

人気Q&Aランキング