• ベストアンサー

VBの型宣言の場所について

VBでは、型宣言がどこでもできますが、 プログラムはじめに型宣言をかためたものと の差はあるものなのでしょうか?実行速度が速いとか?

  • lmi
  • お礼率17% (17/95)

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

  • ベストアンサー
  • sssohei
  • ベストアンサー率33% (33/98)
回答No.2

> ひとつの関数内 グローバル変数に関する部分を除いて読んで頂ければ、と思います。 いずれにせよ、必要なところで、必要なだけ宣言するべきなことに変わりはありません。 はじめにまとめた方がわかりやすいかな?と言うことがあれば、はじめにまとめても良いですが^^;

lmi
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • sssohei
  • ベストアンサー率33% (33/98)
回答No.1

本当に必要な場所で、必要な物のみを宣言します。 不用意にグローバル変数などを使うと何処でも変更出来るのですが、その反面、どこで変更されるか分かったもんじゃないと言う危険があります。 また、クラスなどは生成時に初期化処理があったりするので、必要ないのに生成すると余分な処理が行われることになります。 ただし、何度も必要となる変数で、値の取得に時間がかかるもの(プロパティやAPIの返し値など)はグローバル変数にした方が速い場合がありますが、はっきり効果の現れることは少ないので、どうしても、、と言うとき以外は使わない方がよいと思います。 必要なところに必要なだけ宣言するべきです。 どうしても必要なところのみグローバル変数を使用するべきです。

lmi
質問者

補足

すいません。言葉足らずでした。 どこでもというのは、 ひとつの関数内で dim a 処理1 dim b 処理2 というように、書けるという意味で、 はじめというのは、関数内の先頭という意味です。

関連するQ&A

  • VBの宣言について

    ACCESS VBAをはじめて使っています。FORMのコードを読んでいるのですが、宣言されていない変数を見つけました。それでプロジェクト内で宣言されているかどうか探したら、標準モジュールの中で宣言されていました。VBは同一プロジェクトの中でpublicで宣言していればimportとかincludeとか何か取り込む宣言をしなくても自動で変数を認識してくれるのでしょうか?

  • VB宣言について

    VB6.0について質問です。 GlovalとPublic宣言ではどのように使い分けたらいいですか? いまいち二つの違いがわからないのでそれぞれの特徴を教えて頂けたら助かります><

  • Javaでの型宣言について

    はじめまして。 初投稿となります。 最近Javaの学習をはじめたのですが、 疑問があります。 Javaでは型の宣言を曖昧にすることってできますか? ActionScriptで例えると var obj:*; というように、 明示的に型宣言するのではなく、 汎用的に変数を扱うことはできますか? ご教授お願いいたします。

    • ベストアンサー
    • Java
  • ASPで型宣言

    ASPにおいて変数宣言するとき dim xxx as String などの型宣言はできないでしょうか?? よろしくお願いします!!!

  • VB2010で、変数の宣言がわかりません。

    VB2010で、変数の宣言がわかりません。 Option Explicit Public i, j, k, l As Long Public ii, jj, kk, ll As Long Public lngFileSuu As Long Public strTemp As String ・ ・ ・ と標準モジュールに宣言すると エラーがでています。 VB6.0とは宣言方法が違うのでしょうか? 教えてください。よろしくお願いします。

  • Object型じゃない型で宣言したいです。

    Function MyDesktop() Dim WSH Set WSH = CreateObject("Wscript.Shell") MyDesktop = WSH.SpecialFolders("Desktop") Set WSH = Nothing End Function このコードの Dim WSH に、ちゃんと変数の宣言をしてあげたいのですが 何で変数の宣言をして、どこに参照設定をすればいいのでしょうか? Object型じゃない型で宣言したいです。

  • VB6の変数宣言について

    VB6で変数を宣言するときにいちいち新しいプロシージャのたびに新しく宣言しなおすのがすごく不便です。 Dim A As Integer A = 12345 と毎回宣言すると見た目も悪いですしいろいろと不便です。 どのプロシージャにも A と書けば必ず 12345 を呼び出してくれるようにはできないのでしょうか?

  • 宣言した変数、配列をプログラム実行中なるべくたやすく初期化したい。

    VB.Net2003を使用しています。 最初プログラムを実行中、宣言した変数、配列をプログラムをなるべくたやすくまとめて初期化する方法はありませんか。

  • VBでグローバル変数を宣言するには

    VB初心者ですが。クイズゲームのようなものを作成したいと考えてます。 Private Sub ~ End Sub の中で宣言した変数って他のところに呼び出したり(戻り値として渡す)出来るのでしょうか? どこでも、いつでも呼び足せるグローバル変数の宣言とはどのようにやるのか、具体的に教えていただけないでしょうか?

  • 型宣言の場合分け

    下記のようなプログラムを作成しようと色々試行錯誤しているのですが、うまくいきません。trueとfalseで場合分けして関数を2つ作れば目的は達成されるのですが、プログラムが冗長になってしまい釈然としないのです。以下、私が試してみた方法を載せておきます。 (試行1) sengen関数の頭で  if (togle) float a;  else double a; としてみる。 結果 >> if文内でしか宣言されず、以後の処理でundeclared (試行2) まず、ソースの頭で #define SENGEN float とし、 sengen関数の頭で SENGEN a; とする。 次に、関数2の実行直前に #define SENGEN double と定義を上書きすることで関数1ではfloat宣言を、関数2ではdouble宣言を狙う。 結果 >> ディレクティブはプログラムの一番初めに実行されるらしく、両方ともdouble宣言になってしまって撃沈 完全にお手上げです。解決法を思いつく方いらっしゃいましたら助けてください   //目的とするプログラム void sengen(bool togle){   // togle==true ならば float a;   // togle==false ならば double a; ...適宜処理 } int main(){   sengen(true);   // 関数1   sengen(false);   // 関数2 }

専門家に質問してみよう