いつも、利用させて頂いています
現在、WindowsXP VS2005で開発をしています
SPREAD for .NETを使用してフォームにスプレッドシートを貼り付けています
シートにデータセットしたり、取り出したりと基本の動作はうまくいくのですが、
作成した関数の引数に配置したシートを設定すると
「オブジェクト参照がオブジェクトインスンタンスに設定されていません」
というエラーがでます
いろいろ、調べて NEWするなど このメッセージがでた場合対処法を試して
みたのですが、一向にうまくいきませんでした。
「オブジェクト参照がオブジェクトインスンタンスに設定されていません」がでるということは、 値がNULLということでしょうか?
初心者なのでうまく説明出来ていないと思いますが、どうかご教授ください
>「オブジェクト参照がオブジェクトインスンタンスに設定されていません」
> がでるということは、 値がNULLということでしょうか?
そうね。デバッグ実行で変数の中身を確認すると Nothing と
表示されるから Nothing と表現しますけど。
参照型の変数はメモリ上のオブジェクトの先頭アドレスを
格納します。オブジェクトは一般的にサイズが大きい
ので、丸々メモリ上を移動させるより先頭アドレスのみ
やり取りするほうが便利だからです。
このため、変数を用意しただけでは中身は空っぽです。
メモリ上に用意された実体(インスタンス)の先頭アドレス
を格納する作業が必要です。こう説明すると、エラーメッセージ
が言いたいことがなんとなく分かるでしょう?
> いろいろ、調べて NEWするなど
確かに、New するっていうのは対処法のひとつですが、
その処理内容は、新規でオブジェクトをメモリ上に作成し
そのアドレスを格納すること、です。
今回の場合、既に表示されているオブジェクト(SPREAD)を操作
したいのでは?だったら、画面に表示されているオブジェクト
から取得する必要があるでしょう。
実際にどんな処理をしてるかまで知らないので、
回答はできませんが、GrapeCity の QA サイト
(http://www.grapecity.com/japan/support/search.asp)
で SPREAD for .NET で検索されるコードを使い
勉強されることをお勧めします。
特攻隊長まるるうさん
回答ありがとうございます
エラーメッセージの意味が良く分かっていなかったのですが、
ああ、なるほど!と納得がいきました
分かりやすい説明ありがとうございます。
解決しました
ありがとうございました
ツイート | ![]() |