Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9639 / 13646 ツリー ←次へ | 前へ→

【26260】setステートメントについて masaou 05/6/29(水) 20:21 質問[未読]
【26261】Re:setステートメントについて kobasan 05/6/29(水) 20:41 回答[未読]
【26262】Re:setステートメントについて ichinose 05/6/29(水) 20:53 発言[未読]
【26264】Re:setステートメントについて masaou 05/6/29(水) 21:56 お礼[未読]

【26260】setステートメントについて
質問  masaou  - 05/6/29(水) 20:21 -

引用なし
パスワード
   初めて質問します。
setステートメントを使って以下のような記述をして実行したのですが、「オブジェクトが必要です」のエラーが出てしまいます。
set はプロシージャ毎じゃないと駄目なのでしょうか?
同じシート何度も使うので、一回で済まないのかな?と悩んでおります。
よろしくお願いいたします。
--------------------------------------------------------------
Sub Sheet()
  Dim WS1 As Object

  Set WS1 = Worksheets("SHEET1")

End Sub

Private Sub UserForm_Activate()
  Call Sheet

  text1.Text = WS1.Range("a1")
End Sub

【26261】Re:setステートメントについて
回答  kobasan  - 05/6/29(水) 20:41 -

引用なし
パスワード
   ▼masaou さん:
今晩は

>set はプロシージャ毎じゃないと駄目なのでしょうか?

これでいけるはずです

Private Sub UserForm_Activate()
  Dim WS1 As Worksheet

  Set WS1 = ActiveWorkbook.Worksheets("SHEET1")

  text1.Text = WS1.Range("a1").Text
End Sub

【26262】Re:setステートメントについて
発言  ichinose  - 05/6/29(水) 20:53 -

引用なし
パスワード
   ▼masaou さん、kobasanさん、こんばんは。
>初めて質問します。
>setステートメントを使って以下のような記述をして実行したのですが、「オブジェクトが必要です」のエラーが出てしまいます。
>set はプロシージャ毎じゃないと駄目なのでしょうか?
>同じシート何度も使うので、一回で済まないのかな?と悩んでおります。
>よろしくお願いいたします。
>--------------------------------------------------------------
private ws1 as worksheet
>Sub Sheet()
'  Dim WS1 As Object ←削除
>
>  Set WS1 = Worksheets("SHEET1")
>
>End Sub
>
>Private Sub UserForm_Activate()
>  Call Sheet
>
>  text1.Text = WS1.Range("a1")
>End Sub
というようにプロシジャーの外でWS1を宣言します。

【26264】Re:setステートメントについて
お礼  masaou  - 05/6/29(水) 21:56 -

引用なし
パスワード
   kobasanさん、ichinoseさん
早速のご回答、ありがとうございました。
動作としては、ichinoseさんからいただいた回答が私が希望していた物でした。
VBAはまだ初心者の域から脱していないもので、質問もわかりづらかったと思います。申し訳ありませんでした。
何より、今日、会社で悩んでいた一日が吹っ切れました。
本当にありがとうございました。

9639 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free