過去ログ

                                Page     347
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼オブジェクト変数の設定  みんと 02/11/15(金) 8:57
   ┗Re:オブジェクト変数の設定  つん 02/11/15(金) 9:22
      ┗Re:オブジェクト変数の設定  みんと 02/11/15(金) 9:43
         ┗オートシェイプ  つん 02/11/15(金) 10:03
            ┗なるほどっ!  みんと 02/11/15(金) 10:26

 ───────────────────────────────────────
 ■題名 : オブジェクト変数の設定
 ■名前 : みんと
 ■日付 : 02/11/15(金) 8:57
 -------------------------------------------------------------------------
   いつもお世話になってますです。
もしかして,ものすごく単純なことなのかもしれませんが・・・。

オブジェクト変数を使って,テキストボックスを指定しようと思っている
のですが,型が違う(エラー13)がでて,怒られちゃいます。

Dim TxtCurr As TextBox
Set TxtCurr = TextBox1

1行目をobjectとかcontrol型にするとエラーにはなりません。
MSFormsを使う場合もあるのかもしれませんが,いまいち分かってないです。

2行目のsetでエラーとなりますが,UserForm1.TextBox1としても,変化なし
です。(当然か)

コンボボックスでは同様の処理ができるんですけど,なぜかテキストボックス
ではできません。
どなたか,よろしくご教授ください。VBAは6.0です。
 ───────────────────────────────────────  ■題名 : Re:オブジェクト変数の設定  ■名前 : つん <honey@sweetparty.ne.jp>  ■日付 : 02/11/15(金) 9:22  -------------------------------------------------------------------------
   みんと さん、おはようございます。

>Dim TxtCurr As TextBox
>Set TxtCurr = TextBox1

Dim TxtCurr As MSForms.TextBox

ってしてみたらどうですか?

こちらで、

Private TxtCurr As MSForms.TextBox

Private Sub CommandButton1_Click()
  MsgBox TxtCurr.Text
End Sub

Private Sub UserForm_Initialize()
  Set TxtCurr = TextBox1
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  Set TxtCurr = Nothing
End Sub

としてテストしてみたら、ちゃんと動きましたよん♪
 ───────────────────────────────────────  ■題名 : Re:オブジェクト変数の設定  ■名前 : みんと  ■日付 : 02/11/15(金) 9:43  -------------------------------------------------------------------------
   ▼つん さん:
おはようございます!
朝早くから,ありがとうございます。

Dim TxtCurr As MSForms.TextBox
でチャレンジしてみました。
ご指摘のように,ちゃんと動きます♪
ありがとうございます。
MSFormsを使いかたが,いまいち分かってなかったので,助かりましたん。
とりあえず,これでいってみますです。

でも,
Dim TxtCurr As TextBox
だと,ナニがいけないんでしょう? MSFormsのときとナニが違うの?
スッキリしない〜〜! 教えて〜〜〜!(笑)
 ───────────────────────────────────────  ■題名 : オートシェイプ  ■名前 : つん <honey@sweetparty.ne.jp>  ■日付 : 02/11/15(金) 10:03  -------------------------------------------------------------------------
   >Dim TxtCurr As TextBox
>だと,ナニがいけないんでしょう? MSFormsのときとナニが違うの?
>スッキリしない〜〜! 教えて〜〜〜!(笑)

えっとねー・・・TextBoxだけだと、オートシェイプのTextBoxのことになると思うねんけど・・・
試しに、

オートシェープのテキストボックスつくって、適当な言葉いれて、
以下実行してみたら、

Sub test()

  Dim test As TextBox
  Set test = Selection  
  MsgBox test.Text  
  Set test = Nothing

End Sub

OKでした。
そういや、むかし私もこれで悩んだことがあったような気がします。
記憶はおぼろ〜なんやけど・・・
 ───────────────────────────────────────  ■題名 : なるほどっ!  ■名前 : みんと  ■日付 : 02/11/15(金) 10:26  -------------------------------------------------------------------------
   ▼つん さん:
たびたび,ありがとうございます。

ん〜〜〜,そうだったのか。>オートシェイプのテキストボックス
なっとくです。
コンボボックスとかは,オートシェイブと間違えることがないから,
ダイレクトに定義してもおっけーってことですね。

サンプルコードも試してみましたん♪
あ,テキストボックスを選択状態にしとかないとエラーに
なっちゃうんですね。(笑)

ありがとうございましたっ!
あー,スッキリしたっ!!!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 347