C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: エクセル上のVBプログラム(初心者)


(過去ログ 98 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■58404 / inTopicNo.1)  エクセル上のVBプログラム(初心者)
  
□投稿者/ k.okada (1回)-(2011/04/03(Sun) 14:24:48)

分類:[その他の言語] 

windows xp 上でエクセルを動かしています。 Sub Macro1() ・・・ EndSub の中に 簡単なプログラム Sheet3.Cells(5,8)=1/3
を書き、三角マークを押したら オブジェクトがありませんという”エラーあり”の答えが返ってきた。
同じような簡単なプログラム p=1/3 のみを書いた場合には何もエラーがないらしく、素直に終わる。何故だろう? 
テキストを開いても クラスだの インスタンスだの用語が全然分からなく、質問をする事にしました。少しだけプログラムの経験がありますが、
初心者ですので、よろしくお願いします。
引用返信 編集キー/
■58406 / inTopicNo.2)  Re[1]: エクセル上のVBプログラム(初心者)
□投稿者/ やじゅ (1874回)-(2011/04/03(Sun) 18:20:55)
やじゅ さんの Web サイト
No58404 (k.okada さん) に返信
> windows xp 上でエクセルを動かしています。 Sub Macro1() ・・・ EndSub の中に 簡単なプログラム Sheet3.Cells(5,8)=1/3
> を書き、三角マークを押したら オブジェクトがありませんという”エラーあり”の答えが返ってきた。

値をセットするなら、「.Value」が必要と思われます。
Sheet3.Cells(5,8).Value =1/3
引用返信 編集キー/
■58407 / inTopicNo.3)  Re[1]: エクセル上のVBプログラム(初心者)
□投稿者/ Azulean (724回)-(2011/04/03(Sun) 18:30:59)
No58404 (k.okada さん) に返信
> 三角マークを押したら オブジェクトがありませんという”エラーあり”の答えが返ってきた。

エラーが出たときに、行あるいは単語が何か選択されていたり、強調されていませんか?
その行・単語付近に間違いがあるということになります。

> 同じような簡単なプログラム p=1/3 のみを書いた場合には何もエラーがないらしく、素直に終わる。何故だろう? 

正しく動くものと、そうでないものがあるのであれば、その差を考えてみませんか?
今回の場合、左辺の Sheet3.Cells(5,8) ではダメと言うことでしょう。
(すでに別の方からもアドバイスがついていますが)


以下、余談。
少し厳しい言い方になるかもしれませんが、少しでも心に響くことがあれば幸いです。

> 初心者ですので、よろしくお願いします。

「初心者ですので、よろしくお願いします」とは何をお願いしているのでしょうか。

質問者の方にわかるように説明できることが理想ではありますが、回答・アドバイスをしようとする人々と質問者はたいていの場合、お互いを全く知らない間柄であり、インターネット越しに提供された文面でコミュニケーションを取らざる得ません。
このような状況で「初心者」という 3 文字の表現は、あまり役に立ちません(相手の理解度・経験などが全くつかめない)。それを元に「よろしくお願いします」と書いても、何も効果はないと思ってください。

それよりも、何がわかって・何がわからないとか、どういったことを考えたけど実際の動きが合わないとか、具体的なところを明示する形で質問した方がより有益です。
引用返信 編集キー/
■58413 / inTopicNo.4)  Re[1]: エクセル上のVBプログラム(初心者)
□投稿者/ shu (599回)-(2011/04/04(Mon) 07:44:43)
Sheet3がないとか?
引用返信 編集キー/
■58417 / inTopicNo.5)  Re[2]: エクセル上のVBプログラム(初心者)
□投稿者/ PATIO (106回)-(2011/04/04(Mon) 13:28:09)
2011/04/04(Mon) 13:29:48 編集(投稿者)

多分、エクセル上で動かしているマクロの事を言っていると思いますが、

この場合、VBAという括りが該当すると思います。
で、分からないので一から教えてくださいと言うのは掲示板上では無理です。
少なくともエクセルのVBAについての入門書等を手元に置いた上で
それを読んで基本的な部分はある程度理解していないと掲示板上での
やり取りが成り立ちません。
なので、質問をするにしてもそういった入門書である程度勉強した上で
実際のVBAのプログラムの状況を出来る限り具体的に説明する事と、
差支えが無いのであればプログラムその物を掲示板上に提示してみると言う方法が良いと思います。
漠然と質問したい所だけを書いても状況が伝わりません。
あなたの状況を何も知らない人に説明するにはどうしたらわかってもらえるかと
考えて説明をして見てください。
そうする事で自分の頭の中が整理されて質問しなくてもよくなる可能性もありますよ。

引用返信 編集キー/
■58434 / inTopicNo.6)  Re[2]: エクセル上のVBプログラム(初心者)
□投稿者/ じゃんぬねっと (64回)-(2011/04/05(Tue) 02:59:09)
じゃんぬねっと さんの Web サイト
No58406 (やじゅ さん) に返信
> 値をセットするなら、「.Value」が必要と思われます。
> Sheet3.Cells(5,8).Value =1/3

VBA ちゃんですから VB6 以前ベースですよね。
ということは、Value プロパティはデフォルト プロパティですので省略しても動作上は問題ないです。
(可読性としては、もちろん省略すべきではない、ですが... いや、でも "1/3" 自体の方が個人的には気になるかもw)

# このデフォルト プロパティのせいで、VB6 ちゃんにはインスタンスそのものと
# デフォルト プロパティを区別するために、Set ステートメントなんてものが存在していたりするのですよね。

私も shu さんと同意見で、Sheet3. がダメなのだと思います。
コードを記述している個所が Sheet そのものなら、Me. で良いのではないでしょうか?
引用返信 編集キー/
■58438 / inTopicNo.7)  Re[3]: エクセル上のVBプログラム(初心者)
□投稿者/ shu (604回)-(2011/04/05(Tue) 07:59:30)
もし一度Sheet3という名前がついていたシートを削除してしまって、
残っているシート、または追加したシートの名前を'Sheet3'に変更した
場合、それはSheet3でアクセス出来るとは限りません。
VBAの画面にシート一覧が表示されているのでその名前でアクセスする
必要があります。
例 
Microsoft Excel Object
 ├Sheet1(Sheet3)
 ├Sheet2(Sheet4)
 └ThisWorkBook

と表示されていたら、Sheet1とSheet2が現在あるシートでその表示名が'Sheet3'と'Sheet4'
ということになります。Sheet1,Sheet2ではアクセス出来ますが、Sheet3,Sheet4ではアクセスが出来ません。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -