
Private Sub Form_Load()
With Form1.Text1
.Text = "2"
.Alignment = 2 'CENTER
Call subF(Form1.Text1, 5, 2)
End With
End Sub
Private Sub subF(ByRef TextBox As TextBox, ByVal lngMAX As Long, ByVal lngMIN As Long)
TextBox.MaxLength = lngMAX - lngMIN
End Sub
With~End Withの中で指定しているオブジェクト(例の場合「Form1.Text」)のそれ自身をパラメータとして渡したい場合、
どのように記述すれば良いでしょうか?
Meを指定しましたが当然エラーになります。イメージはMeに近いと思うですが。。。
どうか宜しくお願いします。
期待していない回答(1)
With Form1
.Text1.Text = "2"
.Text1.Alignment = 2 'CENTER
Call subF(.Text1, 5, 2)
End With
期待していない回答(2)
戻り値をMaxLengthの関数にすればよい。等々
With Form1.Text1
.Text = "2"
.Alignment = 2 'CENTER
.MaxLength = functionF(5, 2)
End With
期待していない回答(3)
withステートメントはそもそもプロパティーの設定に使うべきであって、
そのような使い方は間違っている。等々
No.4ベストアンサー
- 回答日時:
もしやりたいことが、コントロール名を変更したなどの際に
With XXXX
~~~~~~~
Call subF(XXXX, 5, 2)
End With
のXXXX 部分をすべて書き直す必要があるのを避けたい。
ということであれば、以下の方法が考えられます。
'テキストボックスへの参照を格納するコントロール変数
Dim tmpTextBoxAs TextBox
'参照するテキストボックスを設定する
Set tmpTextBox = Form1.Text1'コントロール名が変更になった場合、合わせて変更する
'以下すべてtmpTextBox経由でコントロールを操作する
With tmpTextBox
.Text = "2"
.Alignment = 2 'CENTER
Call subF(tmpTextBox, 5, 2)
End With
No.3
- 回答日時:
かなりアクロバティックですが
With Form1.Text1
.Text = "2"
.Alignment = 2 'CENTER
Call subF(.Parent.Controls(.Name), 5, 2)
End With
とする方法があります。意味があるかどうかかなり微妙な表記ですけど(笑)
要は「Form1("Text1")」や「Form1.Controls("Text1")」と一緒です。
※ もしText1がコントロール配列の場合は困りますが。。。
またWithブロックを入れ子にする(期待していない回答(1)の発展形)
With Form1
With .Text1
.Text = "2"
.Alignment = 2 'CENTER
End With
Call subF(.Text1, 5, 2)
End With
というのもありますが
可読性が良くないですね。
>期待していない回答(3)
悪気は無いのかもしれませんが
これはちょっと余計でしたね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAのコントロールの種類...
-
EXCELでactivexコントロールを...
-
VBA ユーザーフォームの Keypre...
-
WEBユーザーコントロール
-
vb.netで画面のコントロールId...
-
'ckbl' コントロールは作成され...
-
コンポーネント名を変数で指定
-
同じコンボボックスを二つ以上...
-
カメラスクロールするのを動画...
-
ACCESS2010のVBAでフォーム内ク...
-
【VB】テキストボックスのキー...
-
C# FlowLayoutPanelにて
-
Winsockのオブジェクトエラー
-
トグルボタン一部を一度にON OF...
-
エクセルVBAでオプションボタン...
-
シートに2つ以上のActiveXコン...
-
エクセル・VBA CheckBoxのオブ...
-
エクセル IEをコピーし貼り付け...
-
Excel VBA で Richtextboxを使...
-
Shapeコントロールの.NET移行方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAのコントロールの種類...
-
EXCELでactivexコントロールを...
-
ExcelVBAでListViewが使用できない
-
'ckbl' コントロールは作成され...
-
カメラスクロールするのを動画...
-
VBA ユーザーフォームの Keypre...
-
vb.netで画面のコントロールId...
-
エクセル・VBA CheckBoxのオブ...
-
chr関数の呼び出しで「プロ...
-
エクセルVBAでオプションボタン...
-
Groupboxの配下のコントロール...
-
エクセル コントロールツール...
-
Labelコントロールの(左右)余...
-
チェックボックスをオンにした...
-
Excel VBA で Richtextboxを使...
-
アクセス特有の書き方?
-
(VBA)スピンボタンの大量...
-
ActiveX DLL と ActiveXコント...
-
C# ユーザコントロール内のボタ...
-
Excel VBA 動的に作成したチェ...
おすすめ情報