Excel VBA質問箱 IV

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

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


23901 / 76732 ←次へ | 前へ→

【58186】Re:Tagプロパティの使い方
発言  ichinose  - 08/10/8(水) 12:39 -

引用なし
パスワード
   ▼ようたん さん:
こんにちは。

>実行するのは、フォームMainFormのボタンを押すとフォームSubForm
>が表示され、SubFormのTextBoxに数値を入力し同フォームのボタン
>を押すとそのフォームが閉じてMainFormのTextBoxにSubFormから値が
>渡されて表示されるという動作です。

>以下TagプロパティとPropertyプロシージャを使った2例のうちで
>それともどちらでも問題がないものなのでしょうか?

作動しているという事なら、どちらも問題がないですが、
厳密にみると・・・、

私なら、Tagプロパティを使ったコードですかねえ・・・。

これは、Tagプロパティを使っているから良いとか、
Propertyプロシージャを使うことがNG 等と言うことではありません。

本当は、

SubForm.show myChk

とShowメソッドでパラメータ渡しが出来たら ベストですよね?

これが出来ないから、ここの手続きを出来る限り明確に且つ、汎用的に
定義するべきだ という立場として意見ですが、

2のPropertyプロシージャを使った例では、

Private Sub CommandButton1_Click()

   MainForm.atai = TextBox1.Text
  
   Unload Me
  
 End Sub

とSubformの出力データの以降先がMainForm.atai と固定された手続きになってしまい、
汎用性が1に比べると劣るように思えました。

上記の理由ですから、Propertyプロシージャを使う、使わないの問題ではないです。


尚、1に関しても

Private Sub CommandButton1_Click( )

   Dim myChk As String
  
   With SubForm
     .Show
     myChk = .Textbox1.Text
   End With
  
   Unload SubForm
  
   If IsNumeric(myChk) Then
     TextBox1.Text = myChk
   End If

 End Sub

では、問題があるのでしょうかねえ!!
Tagというプロパティで中身が想像しやすいなら、これでも良いですけどね!!


以上、気が付いた点です、というより、ざっとみた感想です。


>
>1、Tag の例
>
> MainForm ///////////////////////////////
>
> Private Sub CommandButton1_Click( )
>
>   Dim myChk As String
>  
>   With SubForm
>     .Show
>     myChk = .Tag
>   End With
>  
>   Unload SubForm
>  
>   If IsNumeric(myChk) Then
>     TextBox1.Text = myChk
>   End If
>
> End Sub
>
> SubForm ///////////////////////////////
>
> Private Sub CommandButton1_Click( )
>
>   With Me
>     .Tag = TextBox1.Text
>    . Hide
>   End With
>
> End Sub
>
>
>1、Property の例
>
> MainForm ///////////////////////////////
>
> Dim myChk As String
>
>
> Public Property Let atai(ByVal newdata As String)
>
>   myChk = newdata
>
> End Property
>
> Private Sub CommandButton1_Click()
>  
>   SubForm.Show
>  
>   If IsNumeric(myChk) Then
>     TextBox1.Text = myChk
>   End If
>
> End Sub
>
> SubForm ///////////////////////////////
>
> Private Sub CommandButton1_Click()
>
>   MainForm.atai = TextBox1.Text
>  
>   Unload Me
>  
> End Sub

0 hits

【58172】Tagプロパティの使い方 ようたん 08/10/7(火) 11:49 質問
【58186】Re:Tagプロパティの使い方 ichinose 08/10/8(水) 12:39 発言
【58194】Re:Tagプロパティの使い方 ようたん 08/10/9(木) 0:49 お礼
【58188】Re:Tagプロパティの使い方 neptune 08/10/8(水) 13:57 発言
【58195】Re:Tagプロパティの使い方 ようたん 08/10/9(木) 0:51 お礼

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