• ベストアンサー

"$"記号

関数の末尾に"$"記号が付いてるものそうでないものを見かけるのですが、意味の違いはあるのでしょうか? 例えば、MID$()とMID()とか、Trim$()とTrim()とかのことなのですが。 よろしければ、お教えください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

文字列(String)をあらわす記号だったと思いますよ。 以下に入る文字はString型ですよっていうことを明確にするために 記述されるようですが、VBの場合、"$"を書いても書かなくても結果は変わりません。

rpepper
質問者

お礼

さっそくの回答ありがとうございます。 長い間の疑問が解けてやっとすっきりしました。

その他の回答 (5)

  • qwer021
  • ベストアンサー率24% (70/281)
回答No.6

$付き 文字型 $なし バリアント型 を返します。 文字列に代入するのなら $を付けた方がベストです。 私は なるべく$付を使います、他の人が見た時 解りやすいと思って.... でも 時々文字型でも $を付けるのを忘れる時も有ります。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

昔DOS-Basicのころ、それもはじめの頃、 Dim a as stringなど変数宣言も無く、aという変数が文字列か数値か、その数値も倍精度長かどうかを1文字を変数名にあとにつけていました(%、#、!)。しかも1、2、3文字しか変数名として使わず、$付きかどうかで内容を判読する手掛かりにもなりました。しかし後期になり、処理系の種類によっては無くても良くなったように記憶します。VBになっては、付けない方が主流になりました。一方関数についても同じ事情です。結果(処理時間は知らない)に差が無いことは下記のようなテストをすれば納得出来るかもしれない。 余分ですが「・・B」とBのついたものと、つかないものが出来ました(ありますね)。これは差があります。 「Let」なども早々と使われなくなりましたね。 Private Sub Form_Click() a = " 大阪  " Form1.Print "=" & a & "=" b = Trim(a) Form1.Print "=" & b & "=" c = Trim$(a) Form1.Print "=" & c & "=" End Sub

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.4

MID関数とかに$を付けるのは、知る人ぞ知る最適化テクですね。 実行速度が速くなり、EXEのサイズが小さくなります。 理由は↓を参照。

参考URL:
http://www.ht-net21.ne.jp/~hatagaya/vb/compact_1.htm
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

$は文字というのはもう出てますね。 それ以外にも機能があります。 処理速度が違います。 下のコードを行ってみてください。 Option Explicit Private Declare Function timeGetTime Lib "winmm.dll" () As Long Private Sub Command1_Click()   Dim lngMemoryTime  As Long   Dim strWork     As String   Dim i        As Long      lngMemoryTime = timeGetTime   For i = 1 To 1000000     strWork = Left("ああああ", 4)   Next i   Debug.Print timeGetTime - lngMemoryTime, "処理時間:コマンド1" End Sub Private Sub Command2_Click()   Dim lngMemoryTime  As Long   Dim strWork     As String   Dim i        As Long      lngMemoryTime = timeGetTime   For i = 1 To 1000000     strWork = Left$("ああああ", 4)   Next i   Debug.Print timeGetTime - lngMemoryTime, "処理時間:コマンド2" End Sub コマンドボタン2の方が明らかに早いです。何故かというのは、はっきりわかりません。 私は「$無は収納される変数(strWork)の型にキャストする処理があるからだと勝手に思っておりますが、違うかも知れないので無視してもらっても結構です。

回答No.2

旧マイクロソフトのBASIC言語では $付きは数値じゃなくて文字列変数を表していました その名残にゃん 変数が何に属するか分かりやすくするために今も使ってる人もいます にゃん

rpepper
質問者

お礼

回答ありがとうございます。 昔の名残だったんですね。

関連するQ&A

  • ドル記号のような記号

     ドル記号「$」の上にオーバーラインのような横線が付いている記号は、どういう意味なのでしょうか?  恐らくサイズとかナンバーだと思うのですが。  ちなみに原文は 「($もどき)18/48 joint connect云々」  という感じです。  誰か教えてください。お願いします。

  • スラッシュ記号の定義

    最近、普通の文章中にスラッシュ記号(/)が使われているのをよく見かけますが、この記号の意味はどのように定義できるのでしょうか。 例えば、「?」なら「文章の末尾に付けて疑問を表す」といった感じに言えるでしょうが、「/」はよくわかりません。単に「または」の代わりなのでしょうか。結構あいまいに使われているような気もします。何か納得のいくような定義があれば教えてください。

  • $ ¥ 通貨記号

    通貨記号の$や¥などのは、縦線や横線が1本または、2本ありますが、何か意味があるのですか? 分かる方教えて下さい。

  • 記号の読みと意味について。

    記号の読みと意味について。 記号か単位か分かりませんが、アルファベットの C に縦線を1本重ねたものの「読み方」と「意味」を 教えてください。(例えば、アルファベットの Sに縦線を2本重ねると単位:ドルと読む)

  • CPUの記号について

    CPUについて調べているのですが、intel社のpen4 2.8G socket 478等の「G」「AG」「CG」「EG」等のクロック周波数の末尾の記号の意味が分かりません。メーカーサイトなどで調べてみましたが分からないのでどういう意味なのでしょうか?回答よろしくお願いします。

  • 記号について

    物理ではよく近似などを使いますが、~が上下に二つ並んだ記号はほぼ等しい意味だと言うことは知っているのですが、何て読むのでしょう? それと≒との違いは何なんでしょうか。 ご回答、よろしくお願いします。

  • ― ; : ‘’ ‘‘’’等の記号について

    (1)― (2); (3): (4)‘’ (5)‘‘’’ これらの記号の意味について教えて下さい。 4番は特に5番との違いについて教えて下さい。 5番は会話文などでよく見ますから大体分かるのですが…。

  • Excel関数の記号ですが・・・

    Excel関数の記号でローマ字の”S”に 縦線が二本入っている記号はどういう意味ですか? それと、それはどういう動作をすると出るのですか? おわかりになられる方教えてください。

  • 参照関数

    同じ記号なのにfalseを入れると参照せずエラーとなります。 見た目には同じ記号ですしTRIM関数で空白も取っています。

  • 数学のハット記号の意味がわかりません!

    参考書にいきなり出て来た、関数の上に載っている"^"記号の意味が分かりません。 調べようにもどの本に載ってるのかもわからず、 ネットで調べようにも記号は調べられず、 ハットで検索しても関係ないものばかり出てくるのでわかりません。 どなたかハット記号の意味を教えてください。

専門家に質問してみよう