こんばんわ!
VB6.0からの移行でVB.net2012に挑戦中なんですが、グローバル変数の宣言の仕方で分からないことがあり質問しに着ました!
内容
モジュール内で
public hoge as string="aaa"
と宣言するのと
モジュール内で
public hoge as string
と宣言しておいて
フォーム起動時に
hoge="aaa"
と宣言するのにどのような違いがあるのでしょうか?
hogeの変数を変更したいのですが、上記の方法だと動いて、下記の方法だと動かないのですが・・・
まだ良く分かっていないので、程度の低い質問で申し訳ないのですが、アドバイスのほどよろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
> グローバルで変数として一箇所のみで宣言しているのですが、それで別の変数になることはあるのでしょうか?
hoge が本当は text とかなら有り得ます。この場合、フォームの Text プロパティが変更されます。
別のクラスなどを Imports していて、そちらに同名の変数がある場合も有り得るかも知れません。
ただし、スコープが同じ変数が複数あると↓文法エラーが出るはず。
http://msdn.microsoft.com/ja-jp/library/856b0w3t …
http://msdn.microsoft.com/ja-jp/library/03x63w1z …
上記の現象の確認には、変数を使用している場所で右クリックメニューから「定義へ移動」で
その変数がどこで宣言されたものを参照しているか分かります。
変数のスコープが狭いものが優先して使用されるため、ローカル宣言や、自分が定義していなくとも
既に VB.NET で宣言されているものとかぶってはだめです。
>意味合い自体は同じであると認識しているのですが、あっていますか?
変数宣言は同じで、初期値が違います。…見たまんまだと思いますが。
>「 public hoge as string」と宣言したhoge
>動かないのは配列の項目数(例えば、hoge_arra(hoge)のように)使用しているのですが
配列の添字を文字列型にするなど話になりません。問題外です。
数値型にして下さい。
定義へ移動は便利ですね^^
使わせてもらいますw
>変数宣言は同じで、初期値が違います。…見たまんまだと思いますが。
ですよね~そのはずなのに動かないです・・・。
>「 public hoge as string」と宣言したhoge
はミスですw失礼しましたw実際はintegerで宣言してますw
色々試して、初期値を入れておいて、改めて別の数値をいれると動いたので、それでやってみます。
本当にナンなんだろう・・・
No.4
- 回答日時:
>色々試して、初期値を入れておいて、改めて別の数値をいれると動いたので、それでやってみます。
つまり変数の宣言の問題ではなくて、初期値の設定の問題だという事ですよね。
フォームのロード前か、フォームのロード時でも初期値の設定のコードの実行前に
使用しているということでは?
モジュール側で配列をグローバル宣言してると、モジュールが呼ばれた際に初期化の
処理が全て走ってしまうからフォームのロードイベントに書いてある初期値設定の
コードを実行する前にモジュール側で初期化しようとしているとか。
プログラムの開始から1行1行ステップ実行すれば分かるのでは?
No.1
- 回答日時:
・form起動より先にhogeを参照するような、動作になっている
・名前空間が違うなどで、「 public hoge as string」と宣言したhogeと、「フォーム起動時にhoge="aaa"」とは別の変数になっている
などが考えられます。
「動かない」とは具体的にどのような状態なのでしょうか?
・form起動より先にhogeを参照するような、動作になっている
なっていないんですToT
・名前空間が違うなどで、「 public hoge as string」と宣言したhogeと、「フォーム起動時にhoge="aaa"」とは別の変数になっている
グローバルで変数として一箇所のみで宣言しているのですが、それで別の変数になることはあるのでしょうか?
動かないのは配列の項目数(例えば、hoge_arra(hoge)のように)使用しているのですが、エラーが出ます・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- JavaScript JavaScriptで「〇以上▲まで」の書き方 1 2022/07/20 14:44
- C言語・C++・C# 競技プログラミングに関する質問です。 3 2022/04/03 19:51
- JavaScript javascriptで文字分割は、 split() などメソッド不要??? 4 2023/02/06 22:50
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) Excel マクロで For 文のインデックスを先に宣言する理由 7 2022/08/27 00:26
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- HTML・CSS 全部のアクセスを指定したページに転送させたい 2 2022/06/28 16:33
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBでグローバル変数を宣言するには
Visual Basic(VBA)
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
-
4
DBから取得した値を配列へ代入する
Visual Basic(VBA)
-
5
VB.NETでのnothing の意義について
Visual Basic(VBA)
-
6
VBのReturnの使い方
Visual Basic(VBA)
-
7
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
8
VBでファイルが開かれているかどうかを確認したい
Visual Basic(VBA)
-
9
Visual Basic.NETの、Form 間での引数の引渡し方法を教えてください。
Visual Basic(VBA)
-
10
VB.NET でのLaod/unLoad について
Visual Basic(VBA)
-
11
textboxユーザーコントロールのコピー&ペースト制御
Visual Basic(VBA)
-
12
FriendとPublicの違い。。。
Visual Basic(VBA)
-
13
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
14
データリーダーからのデータ読み出し方法(VB)
Visual Basic(VBA)
-
15
VB.net 任意の例外を発生させるには・・・
Visual Basic(VBA)
-
16
VB.netでDLLを読み込んで実行する際に、スタックを不安定にしていますというエラーが出ます。
Visual Basic(VBA)
-
17
CloseとDisposeの違い
Visual Basic(VBA)
-
18
他のモジュールのプロシージャの呼び出したい。
Visual Basic(VBA)
-
19
共通モジュールでDBへの接続と利用方法
Visual Basic(VBA)
-
20
VBの「As String * 128」とは?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Boolean型配列中のTrueの有無を...
-
Linux バイナリ実行できない "...
-
Excel VBA の ChangeFileAccess
-
Vb.netのグローバル変数の宣言...
-
「オブジェクトが必要です。」...
-
アンカーリンクをクリックさせ...
-
awk内でsystem関数を使用しfunc...
-
VC++のちらつき防止方法
-
HTTPSのとき":"が"%3A"ではなく...
-
【Jquery】changeイベント毎にa...
-
ボタンをクリックすると数が増...
-
ASP+アクセスでのSQLコメントに...
-
ifreamをリロードしたい
-
C# .NET DataGridView の行を追...
-
同じ型【ハイフンと数字】だけ...
-
正規表現で半角数字1桁のみを全...
-
onclick指定関数の引数へローカ...
-
ActiveXobjectが作成できない
-
JavaScript window.openで開く...
-
C#テキストボックスの文字を配...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【正規表現】【javascript】CR...
-
Linux バイナリ実行できない "...
-
ASP+アクセスでのSQLコメントに...
-
Boolean型配列中のTrueの有無を...
-
Excel VBA の ChangeFileAccess
-
【Jquery】changeイベント毎にa...
-
Vb.netのグローバル変数の宣言...
-
static constメンバ変数(配列)...
-
同じ型【ハイフンと数字】だけ...
-
class指定したHTML要素の背景色...
-
onclick指定関数の引数へローカ...
-
ボタンをクリックすると数が増...
-
HTTPSのとき":"が"%3A"ではなく...
-
「オブジェクトが必要です。」...
-
MFCのキャプション変更
-
ページ離脱時のalertボタンで処...
-
アンカーリンクをクリックさせ...
-
VC++のちらつき防止方法
-
C# .NET DataGridView の行を追...
-
2次元のJSON形式の配列の展開
おすすめ情報