プロが教えるわが家の防犯対策術!

初心者ながら医療業務用マクロを作っています。
テキストボックス内の1行目のみ取消線を解除する方法を教えてください。
UserForm1.TextBox12.Lines(1).Font.Strikethrough = False
これではさすがにエラーが出ました;
何卒よろしくお願いします。

A 回答 (3件)

こんにちは。

お邪魔します。

MSForms.TextBoxには、
フォント設定を部分的に変更する機能は用意されていません。
無論、テキストの一部を行として指定することも出来ません。

なので、代替え案を検討された方がいいです。

#私が実際にテストしていたのもend-uさんと同趣旨のものだったりしたのですが
 直接の回答としてはNo.1のご回答で十分だと思います。

私が気になったのは、
 実際にやりたいこと、
と、
 TextBoxの扱いを含めた全体の設計

 目的に合ったものになっているか、
ということです。
# TextBox で改行しながら手入力って個人的に違和感があるもので、、、。

ご提示のコードに出てくる TextBox12 というのは、
■手作業での入力(編集)に用いているものなのでしょうか?■
もしも、
■ただ単に表示させる目的だけでTextBox12を用いているなら■
目的に合ったツール選びが出来ていないのかも知れません。
また、
■取り消し線でなければいけないのでしょうか?■
■"1行目"にあたるテキストの一部だけを他とは差別して表示する■
ということで足りるとか?
例えば、表示だけが必要で手入力はしないのなら、
WebBrowserコントロールを使う方法が妥当に思います。
加えて、取り消し線である必要がないなら、
ListBoxコントロール(.ListStyle=1)を使うのが簡便でしょう。
手入力をするのなら、必要な項目(行)の数だけ TextBox を
縦に隣接させて並べるのが現実的だと思います。

#一昔前ならRichTextBoxコントロールとか
Office Web Components SpreadSheetとかで容易に解決できたのですが、
現在は使えないようですので。
 
 
ご自身で目的を明確にして設計を見直すことから、あらためてチャレンジしてみてください。

この回答への補足

アドバイスを参考に、テキストボックスの上にテキストラベルを配置することで解決しました。丁寧に説明していただきありがとうございました。

補足日時:2013/06/20 10:18
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2013/06/20 10:21

よろしくお願いしますと言われても。

-"-
>MSForms.TextBoxでは無理ですね。
>そういったプロパティがない。
    • good
    • 0

MSForms.TextBoxでは無理ですね。


そういったプロパティがない。
1行ごとに分割して複数のTextBoxを使ってそれらしく見せるしかないような気がします。

# ユーザー編集が必要なくて、表示のみだったらいいんでしょうけど。
# その場合は、WebBrowserコントロール使って何とか.....
# 新規UserFormにTextBox1,WebBrowser1,CommandButton1配置してテスト。
'UserForm1Module
Option Explicit
Private Sub UserForm_Initialize()
  With Me.TextBox1
    .MultiLine = True
    .Font.Strikethrough = True
    .Text = "1行目" & vbLf & "2行目" & vbLf & "3行目"
  End With
End Sub
Private Sub CommandButton1_Click()
  Dim s As String
  Dim v
  v = Split(Me.TextBox1.Text, vbLf)
  s = v(0)
  v(0) = ""
  With Me.WebBrowser1
    .Navigate "about:blank"
    .Navigate "javascript:document.write(" _
        & "'<body bgcolor=""#FFFFFF"" topmargin=0 scroll=no>" _
        & "<font size=2>" _
        & s & "<del>" & Join(v, "<br>") & "</del>" _
        & "</font>" _
        & "</body>');"
  End With
End Sub

この回答への補足

返答ありがとうございます。やはり無理なんですね・・・
1行目の最後が改行なので、改行以前に適応という方法はだめですか??
よろしくお願いします。

補足日時:2013/06/19 22:24
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2013/06/20 10:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!