2018年4月16日月曜日

テキストボックスをラベルみたいに扱う

ボクは閲覧する画面で編集できてしまうなんて仕組みは怖いと思っている。

しかし、帳票フォームやデータシート形式+レコードソースで連結の形は、
大変便利で、使わざるを得ない。てゆか、コレがあるからAccessはタダのRDBではない。

そんなわけで、通常作られるテキストボックスを【コントロールの種類の変更】
してラベルにしてみたら、連結がとけやがりました( ゚-゚)~゚

そこで、TextBoxをLavelのようにしてみよう。ってのがコレ。

Public Sub Txtbox_Like_Lavel(obj As TextBox)
  With obj
    .TabStop = False
    .IMEHold = False
    .IMEMode = acImeModeOff
    .Locked = True
    .Enabled = False
    .BackStyle = 0
    .BorderColor = 0
    .BorderStyle = 0
  End With
End Sub

タブストップ外したり、色を変えたり、
入力できないようにプロパティを一括変換しています。
IMEとか関係ないけど、イヤだからOFF( ゚-゚)~゚(なにが?

ワクとか背景とかの色などお好みで変更可。
サイズの統一化とかもプロパティ追加すればOK。

そんなわけで使い方。
まずこのmoduleを、標準モジュールに置きます。
ボクは今後も使うので、CommonModuleって大胆な名前をつけました。

そして、フォームモジュール内から、
  Call Txtbox_Like_Lavel(名前)
※[名前]はコントロール名
てな感じに呼び出すだけ。

ちなみに、一回呼び出して、フォームを保存してしまえば、毎回呼ぶ必要はないので
ってごめんなさい!!VBAで設定できてもフォーム保存で保存されない、
 フォームデザインでしか設定できないプロパティがあります!
 てゆか、たくさんあります!!
 毎回呼び出すか、フォームデザインで頑張ってくださいorz

Private Sub Form_Formatting()
  Call Txtbox_Like_Lavel(ID)
  Call Txtbox_Like_Lavel(名前)
End Sub

個人的には、とかしておいて、以降どこからも呼ばれないけど、
こんな設定したゼぉぅぃぇ的モジュールをメモ代わりに残しておくのが好みです。

だってほら、フォームビューって、可読性最悪じゃん?( ゚-゚)~゚

0 件のコメント:

コメントを投稿