• ベストアンサー

VBA超初心者の質問ですけど・・・

imogasiの回答

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

変数と定数 質問に○数と数がついた言葉が4つありますが、算術の数のイメージを捨ててください。算数の数直線をイメージしてください。それがメモリーのイメージです。メモリーの一部(したがってスタートポイントがあり)が何バイトか(したがって終わりがある)確保されている。1バイトを最小にして何バイトかの領域が確保される。何バイトになるかは変数の型で決まり、言語仕様で決まる。個々の変数は変数名を持ち、メモリー上に(スタートアドレスと長さ)を持ち、変数(名)はスタートアドレスに名前をつけ扱い憶えやすくして、長さを(陰に)背負わせたものといえる。コンピュータはその領域に値をセットできる仕組みがあり、上書きすれば前の内容は消え、上書きした内容に置き換わる。Basicは徹底してアドレスの考え、それを指し示すポインターの考えを隠しており、長さもLen,Midなど関数を考えるときに意識するぐらいでこれが初心者向けといわれる1つの理由と思う。 定数は変数にプログラマーの指定する内容をセットしたものと考えられる。ただVBではConst a=2 a=3はエラーにしている。それは そのルーチン(スコープ)中は内容を変えないという考えを具現しているに過ぎない。代入式の右辺に書く値そのものを「リテラル」と言うことにすれば、Constを使わなくてもc=1とかc=”a”のリテラル表記をその言語がゆるせば、目的は達せられる。自分で変えなければ良いのだから。 変数に内容をセットする仕方は (1)ファイルから読みこみ Input#1,a (2)キーボードから入力してa=Inputbox(”a=”) (3)演算して a=b+2 (4)他の部分より移送 a=c  (5)リテラル利用 a=3 a=”abc” (6)定数利用 Const a=3.14 (7)システムから a=Today() 定数を使う場面は (1)数学の定数と同じく演算式 y=a*x+cのa,c (2)比較の右辺 If a=c Then のc (3)VbRedやxlThinなどの実は決めたコードを単語らしく表現 (4)具体的に順序数として a(c) のc For i=1 To 3 と Start=1 End=3 For i=Start to End と は同じなのだが、何かが違うと思う

関連するQ&A

  • VBAでの戻り値と引数について

    最近VBAでプログラムを勉強しています。 引数と戻り値について教えてください。 定義としては、 引数:プロシージャに渡される定数、変数、および式。 戻り値:呼び出し元に処理の結果を戻す値。 となっているのですがいまいちピンときません。 SubプロシージャとFunctionプロシージャでその違いがあると思うのですが、具体的にどれが引数でどれが戻り値なのかわかりません。 他のプログラミングも全く経験がない初心者で初歩的な質問ですみませんがご教授お願いします。

  • 関数と変数と定数と式をまとめて [C言語]

    はじめまして。私はC言語初心者です。 C言語では、関数の引数や変数への代入や配列の添え字などに、変数や定数や、式や関数の値を利用できるじゃないですか。私は今C言語について勉強したことをファイルにまとめていっているのですが、上記のようなことを説明するたびに「関数と変数と定数と式」と書くと長ったらしくなってしまいます。そこで、これらをまとめていう言葉があったら教えて欲しいのです。 回答よろしくお願いします。

  • VBA 引数の簡単な命名規則ありますか?

    Excel VBAで 簡単なプロシージャを作る時に引数名で詰まります。 関数化するなら引数は別に名前を付けたい。でも単純すぎてわざわざ別名が 思いつかない…できれば呼びだし元の変数名をそのまま使いたい hoge(text,loop) sub hoge( _text, _loop ) とかできればいいんですが先頭_(アンダーバー)ってダメなんですよね 最後_(アンダーバー)は行継続と紛らわしいし… いまんとこ、 定数UPPER 関数UpperCamelCase 変数loweCamelCase と簡単な程度なんですがなにか短くて気楽な引数の命名規則は無いもんでしょうか?

  • VBAの中でユーザー定義関数を使うときに

    VBAの中でユーザー定義関数を引数に変数を持たせて使いたいのですが、変数をうまく認識してくれません。 VBAの中でユーザー定義関数を使うにはどうしたらいいのでしょうか? よろしくお願いします。

  • VB初心者の私に教えてください!

    最近VBを始めたんですけど、関数 定数 変数 引数 の意味がよく理解できません・・・。値を返すとか戻り値とか、あとプロシージャを作るってどういうことですか?なにかにたとえて教えてくれればうれしいです! お願いします(^。^)

  • VBAで

    VBAで モジュールAで定義された変数を、モジュールBに引継ぐ事はできますか? モジュールAである値の入っているセルを検索し、その行番号を変数 HitRowNo に入れます。 この変数 HitRowNo をモジュールBでも使いたいんですが、変数(の値?)を引継ぐことは可能ですか? 質問の意味がわかりずらいかもしれませんが、よろしくお願いします。

  • VBA 変数・定数名の付け方

    いつもお世話になっております。 現在VBAを勉強中の初心者です。 変数や定数名について質問させていただきます。 自分でコードを作成した場合、変数名や定数名について、『何にしようか?』と結構な時間迷ってしまします。 決められたルールの中であれば、自由に命名して良いのでしょうが、参考書等を見ると同じような役割の変数・定数には似通った名前がつけられているように見受けられます(まあ当然かもしれませんが・・・) 私も今後の事を考えて、規則?に沿った名称を使って行きたいと考えています。 何か参考となるサイトなどはありますでしょうか? どうぞよろしくお願いいたします。

  • VBAの質問です2

    たびたび申し訳ありません。 繰り返し処理の中でSUM関数を使うときに、引数をA1のような書き方ではなくて(1,1)のようにしたいのですが、そうするとエラーになってしまいます。 これはVBAの問題ではなくて単にSUM関数の引数を(1,1)のように書きたいときにはどうすればいいかという問題だと思いますが。 =SUM((30*I-18,5):(30*I+8,5)) ではだめなんです。 よろしくお願いいたします。

  • ExcelのVBA。public変数の値が消える

    VBAについて。Excelの2003や2007を使っています。標準モジュールで public 変数を定義しました。 ユーザーformを使い、パブリック変数に値を入れたり変更し、標準モジュールに戻ったとき、そのpabulic変数が resetされてしまっている事があります。全く同じマクロで、この現象が起こることと、起こらないことがあります。excelの2003でも2007でも、同じ現象が起こります。簡単なマクロで再現性のある具体的なものを示したいと思い、試しましたが、できませんでした。簡単なマクロでは、きちんとパブリック変数は保持されています。問題のあるマクロはかなり長いものなので、とても示せません。問題がどこにあるのかわかりません。このマクロで不都合があるという具体的なマクロを示すことができない状態での質問で、申し訳ありません。 また、このようなプログラミングをしていて思ったのですが、ユーザーフォームに対してユーザーが任意の引数を渡す方法あるいは、ユーザーフォームから引数を受け取る方法はあるのですか?今は、pubulic変数を用いたり、具体的なセルに値を代入したりしていますが、どう考えてもそれはエレガントではないし、汎用性もないと思います。引数で引き渡すのが一番綺麗でいいとは思うのですが、それが可能かどうかわかりません。

  • EXCELのVBAで、あるワークシートでのみ使うユーザーフォームを作り

    EXCELのVBAで、あるワークシートでのみ使うユーザーフォームを作りました。そのワークシート上での定数や、プロシージャや関数をワークシートのモジュールに置いています。そして、その定数や関数などをユーザーフォームのイニシャライズなどで使いたいと思いますが、ユーザーフォームのモジュールはワークシートのモジュールとは別なので、使えません。他への影響を考えると、標準モジュールには、置くのは不適切だと思います。 特定のワークシート上でのみ使うユーザーフォームと、そのワークシートとで、共通の定数や関数などを使う方法は、あるのでしょうか。どのようにすればよいのでしょうか。