Excel VBA質問箱 IV

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

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


28692 / 76734 ←次へ | 前へ→

【53334】Re:複数のプロシージャで
発言  かみちゃん  - 08/1/2(水) 7:48 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>と書きました。実行するとエラーがでて、
>Sub inputTxt(box1 As String, box2 As String)
>  TextBox1←変数が定義されてません

inputTxt TextBox1.Text, TextBox2.Text
Call inputTxt(box1, box2)
の部分は、
box1 = TextBox1.Text
TextBox1.Text = TextBox2.Text
TextBox1.Text = box1
でいいのではないでしょうか?

inputTxt "", ""
Call inputTxt(box1, box2)
の部分は、
TextBox1.Text = ""
TextBox1.Text = ""
でいいのではないでしょうか?

または、UserFormモジュールに
Sub inputTxt(box1 As String, box2 As String)
  TextBox1.Text = box2
  TextBox2.Text = box1
End Sub
と書いておいてもいいと思います。

さらに、UserFormモジュールのほうには、
Call inputTxt〜
という記述は不要です。
なぜなら、UserFormモジュール内で、変数box1、box2の代入が行なわれていないからです。

一方、
> 標準モジュールに
書きたい場合は、
UserFormモジュールの
inputTxt TextBox1.Text, TextBox2.Text
の部分は、
inputTxt Me, TextBox1.Text, TextBox2.Text
に、
inputTxt "", ""
の部分は、
inputTxt Me, "", ""
として、

標準モジュールには、
Sub inputTxt(obj As Object, box1 As String, box2 As String)
  obj.TextBox1.Text = box2
  obj.TextBox2.Text = box1
End Sub
とすればできると思います。

2 hits

【53333】複数のプロシージャで white 08/1/2(水) 4:19 質問
【53334】Re:複数のプロシージャで かみちゃん 08/1/2(水) 7:48 発言
【53335】Re:複数のプロシージャで りん 08/1/2(水) 9:44 回答
【53336】Re:複数のプロシージャで かみちゃん 08/1/2(水) 10:27 発言
【53338】Re:複数のプロシージャで りん 08/1/2(水) 11:53 発言
【53339】Re:複数のプロシージャで white 08/1/2(水) 16:40 お礼

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