
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も見ています
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
エクセルVBAでmeに相当するものは?
Excel(エクセル)
-
-
4
変数名の取得
Visual Basic(VBA)
-
5
特定のシートの削除を禁止したい(ブックの保護でなく)
Excel(エクセル)
-
6
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
7
.txtではなく.logの方が良いのでしょうか?
その他(プログラミング・Web制作)
-
8
表にフィルターをかけ、絞ったデータ(可視化セルのみ)を一次元配列として変数に入れるという動作を書きた
Visual Basic(VBA)
-
9
Excel VBA 定義されたプロージャ名、関数名の取得
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELでactivexコントロールを...
-
エクセルVBAでオプションボタン...
-
'ckbl' コントロールは作成され...
-
chr関数の呼び出しで「プロ...
-
カメラスクロールするのを動画...
-
vb.netで画面のコントロールId...
-
VBA ユーザーフォームの Keypre...
-
コントロールを移動できない
-
エクセル・VBA CheckBoxのオブ...
-
ExcelVBAでListViewが使用できない
-
STATICコントロール
-
チェックボックスをオンにした...
-
なかなか、Zオーダーが理解で...
-
全てのオブジェクトのプロパテ...
-
コントロールの絶対位置を取得...
-
vbaマクロで、色の設定ダイアロ...
-
VBAのカレンダーコントロールに...
-
DataGridView、1セルに複数コ...
-
ユーザコントロールでのEnterキ...
-
ExcelVBAのコントロールの種類...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELでactivexコントロールを...
-
エクセル・VBA CheckBoxのオブ...
-
カメラスクロールするのを動画...
-
エクセルVBAでオプションボタン...
-
チェックボックスをオンにした...
-
VBA ユーザーフォームの Keypre...
-
chr関数の呼び出しで「プロ...
-
'ckbl' コントロールは作成され...
-
ExcelVBAでListViewが使用できない
-
全てのオブジェクトのプロパテ...
-
vb.netで画面のコントロールId...
-
間違えて配置してしまったコン...
-
変数をコントロール型で使用す...
-
エクセル コントロールツール...
-
ユーザーフォームで動的(Me.Con...
-
OCXって何ですか?
-
C#で角が丸いテキストボックス
-
Groupboxの配下のコントロール...
-
Labelコントロールの(左右)余...
-
excel vbaでユーザーフォームに...
おすすめ情報