android のレイアウトxmlだと、
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=""
android:hint="ここに入力してください" />
上記のようなedit textに
ユーザーに対してhintを表示できますが、
同じような設定を
ms access 2021のフォームのテキストボックスに対しては
どのように行えばいいのでしょうか?
Microsoft Access 2021のフォームで、
テキストボックスに対してAndroidの `android:hint` のようなヒント
(プレースホルダー)を表示する方法は、
以下のいずれかの方法を使います。
---
### **方法 1: "既定の値" プロパティを使う**
テキストボックスの `既定の値` にヒントテキストを設定し、
フォーカスを得たら削除する方法。
#### **設定手順**
1. **フォームのデザインビュー** で対象のテキストボックスを選択。
2. **プロパティシート** を開く。
3. **「データ」タブの「既定の値」** に
`""ここに入力してください""` を設定。
4. **「イベント」タブの「クリック時」
または「フォーカス取得時」** に以下のVBAコードを記述。
```vba
Private Sub テキストボックス名_GotFocus()
If Me.テキストボックス名.Value = "ここに入力してください" Then
Me.テキストボックス名.Value = ""
End If
End Sub
```
5. **「フォーカス失った時」** に元のヒントを戻す。
```vba
Private Sub テキストボックス名_LostFocus()
If Me.テキストボックス名.Value = "" Then
Me.テキストボックス名.Value = "ここに入力してください"
End If
End Sub
```
---
### **方法 2: 「入力ヒント」プロパティを使う**
Access の「入力ヒント (ControlTipText)」を設定すれば、
マウスをテキストボックス上に乗せたときに
ヒントがツールチップとして表示される。
#### **設定手順**
1. **フォームのデザインビュー** で対象のテキストボックスを選択。
2. **プロパティシート** を開く。
3. **「その他」タブの「入力ヒント (ControlTipText)」** に
`"ここに入力してください"` を設定。
この方法では、Androidの `android:hint` のように
常に表示されるわけではなく、
マウスホバー時にのみヒントが表示されます。
---
### **方法 3: ラベルを使う**
ヒントを常に表示したい場合、
テキストボックスの前や内部にラベルを配置する方法もあります。
#### **設定手順**
1. **フォームのデザインビュー** で、
テキストボックスの上や内部にラベル (`Label`) を配置。
2. ラベルのキャプションを `"ここに入力してください"` にする。
3. **「クリック時」または「フォーカス取得時」** の
イベントでラベルを非表示にするVBAを追加。
```vba
Private Sub テキストボックス名_GotFocus()
Me.ラベル名.Visible = False
End Sub
```
4. **「フォーカス失った時」** のイベントで、空欄ならラベルを再表示。
```vba
Private Sub テキストボックス名_LostFocus()
If Me.テキストボックス名.Value = "" Then
Me.ラベル名.Visible = True
End If
End Sub
```
---
### **どの方法を選ぶべきか?**
- **Androidの `hint` に一番近いのは方法1 (既定値+VBA)**
- **マウスホバーで表示するなら方法2 (ControlTipText)**
- **常にヒントを表示したいなら方法3 (ラベル)**
どの方法を使うかは、使いやすさやデザインの好みによります。
コメント
コメントを投稿