ベストアンサー VBの型宣言の場所について 2002/02/05 22:06 VBでは、型宣言がどこでもできますが、 プログラムはじめに型宣言をかためたものと の差はあるものなのでしょうか?実行速度が速いとか? みんなの回答 (2) 専門家の回答 質問者が選んだベストアンサー ベストアンサー sssohei ベストアンサー率33% (33/98) 2002/02/07 23:50 回答No.2 > ひとつの関数内 グローバル変数に関する部分を除いて読んで頂ければ、と思います。 いずれにせよ、必要なところで、必要なだけ宣言するべきなことに変わりはありません。 はじめにまとめた方がわかりやすいかな?と言うことがあれば、はじめにまとめても良いですが^^; 質問者 お礼 2002/10/27 00:29 ありがとうございました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (1) sssohei ベストアンサー率33% (33/98) 2002/02/06 18:19 回答No.1 本当に必要な場所で、必要な物のみを宣言します。 不用意にグローバル変数などを使うと何処でも変更出来るのですが、その反面、どこで変更されるか分かったもんじゃないと言う危険があります。 また、クラスなどは生成時に初期化処理があったりするので、必要ないのに生成すると余分な処理が行われることになります。 ただし、何度も必要となる変数で、値の取得に時間がかかるもの(プロパティやAPIの返し値など)はグローバル変数にした方が速い場合がありますが、はっきり効果の現れることは少ないので、どうしても、、と言うとき以外は使わない方がよいと思います。 必要なところに必要なだけ宣言するべきです。 どうしても必要なところのみグローバル変数を使用するべきです。 質問者 補足 2002/02/07 23:22 すいません。言葉足らずでした。 どこでもというのは、 ひとつの関数内で dim a 処理1 dim b 処理2 というように、書けるという意味で、 はじめというのは、関数内の先頭という意味です。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発その他(プログラミング・開発) 関連するQ&A VBの宣言について ACCESS VBAをはじめて使っています。FORMのコードを読んでいるのですが、宣言されていない変数を見つけました。それでプロジェクト内で宣言されているかどうか探したら、標準モジュールの中で宣言されていました。VBは同一プロジェクトの中でpublicで宣言していればimportとかincludeとか何か取り込む宣言をしなくても自動で変数を認識してくれるのでしょうか? VB宣言について VB6.0について質問です。 GlovalとPublic宣言ではどのように使い分けたらいいですか? いまいち二つの違いがわからないのでそれぞれの特徴を教えて頂けたら助かります>< Javaでの型宣言について はじめまして。 初投稿となります。 最近Javaの学習をはじめたのですが、 疑問があります。 Javaでは型の宣言を曖昧にすることってできますか? ActionScriptで例えると var obj:*; というように、 明示的に型宣言するのではなく、 汎用的に変数を扱うことはできますか? ご教授お願いいたします。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム 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 } vb.netって変数宣言、不要ですよね? vb.netって変数宣言、不要ですよね? For i = 1 To 10 MsgBox(Str(i)) Next このコードで動いちゃいました。 型宣言に現れる * [] () の構文要素名は? 型宣言の中に現れる "*","[]","()" (関数型を表す丸括弧) などは, 文法上は何という名前なのでしょうか? 例えば次の型宣言 (定義) char **p; int q[8]; において,手元の「ANSI C/C++ 辞典」によると, char や int は型指定子 (type specifier), **p はポインタ宣言子 (pointer declarator), q[8] は配列宣言子 (array declarator) になると思いますが, "*","[]" 単独の構文要素名は見あたりません. 個人的には * [] () のことを「型派生子」とか,曖昧に「(型派生)演算子」と呼んでいますが, 前者は上記の本にも載っていないし,検索しても全くヒットしません. 単に「演算子」だと他人に説明するとき誤解を招きそうだし…. AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム JAVAで型を宣言するときの質問です JAVAで型を宣言するとき CarFactory factory = new BusFactory(); のように 宣言の型はCarFactoryで、newで実際に代入するのは BusFactory()というのは どういう意味なのでしょうか? 式の左側と右側で違うクラスを書く場合は どのような点に気をつけなければならないでしょうか? ちなみにこちらのサイトにあったコードです ttp://www.syboos.jp/sysdesign/doc/20080609224443186.html GTKプログラミングで型宣言するときにgintとかgdoubleなどと GTKプログラミングで型宣言するときにgintとかgdoubleなどとgをつけて型宣言をしていますが、なぜgを付けるんでしょうか? 初心者ゆえに分からず困っています。 よろしくお願いします。 String""から型'Double'への変換は無効です。 とエラーが出ます。 こんにちわ。初心者です。よろしくお願いします。 VB2005においてプログラムを実行したところ、 「String""から型'Double'への変換は無効です。」 というエラーが出ます。対処法を教えていただけると助かります。 どうかよろしくお願いします。 型を定義しないと被る被害を明確にする方法 VBで型宣言しないで使っていますが、型宣言をしないと具体的にどういったデメリットがあるのでしょう。 個人で使っている分には全くデメリットを感じないのですが、本やサイトでは宣言することを強く勧めています。 また、パブリック変数も出来るだけ使わないようにとあるのですが、それを使うことによって被るデメリットがいまひとつ分かりません。 会社等で開発する人たちにとってそうであり、個人で使う分には特に気にする必要はないのでしょうか。 宣言をしなかったり、パブリック変数を使うことで生じるデメリットを具体的に試す方法ってありますか? VB6.0⇒VB2008のコンバートについて ある端末でVB6.0のプログラムをVB2008へコンバートしました。 その後、別のVB6.0がインストールされていない端末でプログラムを実行しようとしたところ、"COMExceptionはハンドルされませんでした。"とエラーが発生しました。 上記のコンバートしたプログラムではソケット通信でwinsockを利用していました。 そのためプログラムを修正して、winsockを利用しないようにしたところ、エラーがなく実行できました。 おそらく、VB6.0がインストールされていない事が原因だと思うのですが、いまいちわかりません。 どなたかご教授お願いします。 メソッド宣言の戻り値の型にクラス名を使うには? メソッドの戻り値の型にクラス名を使ってるプログラムを見かけたのですが、例えばクラス名を public class Player{ とします。そして Playerクラスのメソッド宣言に private Player(戻り値の型) startRun(メソッド名) { とあります。 これは戻り値の型にクラス型の変数を使ってユーザー定義してると思うのですが使い方が分かりません。 javaのサイトはできるだけ調べたのですが戻り値の型にクラス名を使うにはどうすればいいか分かりませんでした。 この使い方を教えてくれるサイトを教えてください。 基本型と参照型のStringクラスについて教えてくれるサイトはたくさん見かけたのですが…。 お願いします。 VC6.0で作ったライブラリをVBで呼び出したい Vc++6.0で作ったライブラリをVBで呼び出そうとしています。 void*型の引数を呼び込みたいのですが、宣言部でどのように書けばよいのでしょうか? 呼び出し時引数をどのような形で渡せば良いのでしょうか? また返り値をPVOID型とするとどのように宣言部で書いて、呼び出したらよいのでしょうか? 例 void DeleteDllClass( PVOID oBj );という関数を VBから呼び出すと? PVOID CreateDllClass();をVBから呼び出すと? 調べてみましたがイマイチ分からなくて・・・・ VBに詳しい方に質問です VBではdouble型等の型を持つ関数は宣言できるのでしょうか? C#だちできると思うのですが・・・。 また、VBでも Dim hoge as doubleなど、変数ならできると思うのですが・・。 ご存知の方、お願いします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
ありがとうございました。