プロシージャの外に記した変数があるのですが、
(Dim IniFileName as string = "myapp.ini")など
Public Shared Sub 内でIniFileNameを使おうとすると
---------
クラスの明示的なインスタンスを指定しないで、共有メソッドまたは共有メンバ初期化子内からクラスのインスタンス メンバへ参照することはできません。
---------
というエラーが出てしまいます。
クラスの明示的なインスタンスを指定したいのですが、
意味がさっぱり分かりません。
class.IniFileNameとかForm1.IniFileNameなどとしてみたのですが違うようです。
一つ正解をご教示頂けたらと思います。
宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
参考URLの「インスタンスを作成せずに呼び出せるメソッド 」が参考になるかもしれません。
Sharedをつけると、インスタンス生成しなくても呼び出せるメソッドになるので、インスタンスに属するメンバ変数などにアクセスできません。
Sharedメソッドから参照したいのであれば、
そのSharedメソッドと同じクラス内でShared変数とするか、Sharedメソッドの引数にするかなどで対応できます。
参考URL:http://www.atmarkit.co.jp/fdotnet/vb6tonet2/vbne …
No.2
- 回答日時:
つまり、shared(クラス)メソッドから、インスタンスのメンバをインスタンスを作成もしてないのにアクセスしようとしているというようなことですかね?
sharedなプロシジャー(メソッド)が呼び出されるとき、アクセスしようとしているインスタンスがあるとは限りません。(引数として渡せばべつだけど)
何にアクセスしようとしているかよく考えるべきだと思います。
同じくsharedな変数(クラスの中で共有される)ならアクセスできると思いますが、それをsharedなメンバにするかインスタンスのメンバにするかは自分で決めねばなりません。
多分、共有変数的な使い方をするのでしょうからsharedにすればいいと思います。
やりたいことがわからないとどれが正解ということは言えないと思います。
No.1
- 回答日時:
Sharedしているからではないでしょうか。
(1)Sharedするのをやめる
(2)Dim IniFileName as string = "myapp.ini"
をプロシージャー内で宣言する
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
asp.NET初心者です。「 ’Context’は’○○○’のメンバで
Microsoft ASP
-
-
4
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
5
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
6
【VB】タブ切り替え時のイベント
Visual Basic(VBA)
-
7
【VB.NET】App.configにファイルパスを設定して読み込みたい
Microsoft ASP
-
8
データセットのレコード更新がしたい
Visual Basic(VBA)
-
9
VB.NETでのイベントの途中終了
Visual Basic(VBA)
-
10
CloseとDisposeの違い
Visual Basic(VBA)
-
11
VB.NETでコンボボックスの1行目を空白にしたい
Visual Basic(VBA)
-
12
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
13
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
14
フォームの再読み込み
Visual Basic(VBA)
-
15
値を返さないコード パス
Visual Basic(VBA)
-
16
VB.NET Excelを読み込んでDataTableに格納し、DBにデータをINSERTする
Microsoft ASP
-
17
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
18
小数点を含む数値かどうか判断の判断方法
Visual Basic(VBA)
-
19
型 varchar から型 numeric への変換エラー。
その他(データベース)
-
20
VBからEXCELのセルの値を取得する方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
フォームの存在をチェックする方法
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
生成したインスタンスを削除す...
-
「インスタンス」の意味をわか...
-
C#の構造体の開放のしかた
-
インスタンスを共有するには
-
SQLを連続発行する時の正しい(?...
-
変数の参照でエラーが出てしま...
-
C# インスタンスの破棄
-
エクセル(複数インスタンス)...
-
C#において、同じインスタンス...
-
オブジェクト参照がオブジェク...
-
マルチスレッド間でデータ交換...
-
カンマ区切りの数値文字列を数...
-
データベースから日付型を取得...
-
クラスのインスタンス名をクラ...
-
Objective-C グローバル変数 値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
private static という変数の修飾
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
文字列を日付に変換でParseExce...
-
String a = "a"; と String b =...
-
「インスタンス」の意味をわか...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
SQLを連続発行する時の正しい(?...
-
javaのクラスの作り方、エラー...
-
オブジェクト参照がオブジェク...
-
他のファイルの変数参照
-
C#「オブジェクト参照が必要で...
-
エクセル(複数インスタンス)...
-
VB6.0で、DLLを動的に参照したい
おすすめ情報