テキストボックスに入力した改行を確認する方法

このQ&Aのポイント
  • テキストボックスに文章を入力し、改行された箇所を検出したい場合には、文字列を1文字ずつ反転させる方法があります。
  • 具体的には、ループを使用して文字列を逆順に取得し、改行文字が出現するまで繰り返します。
  • 改行文字が見つかった場合、msgboxを表示することで改行箇所を確認することができます。また、テキストボックスにおいて太字の文字列を検出する場合、Text1.SelBoldプロパティを使用することができます。
回答を見る
  • ベストアンサー

テキストボックスに入力した改行を確認する

例えば、テキストボックスに文章を入力したとします。そして、その文章を入力した時、何回か改行をしたとします。その改行を探したいのですが、方法がわかりません。 ループしながら文字列を1文字ずつ反転させていき、改行されているところまで来たらmsgboxを出す。というような事がしたいのです。むしろ、改行を反転できるのか、そこのところもよくわかりません。 If Text1.SelBold = true Then ↑この様な感じでif文の条件にする方法はないでしょうか。(これは太字ですが) Text1.●● ●●に入れるべきものがわかりません。ご存知の方いらっしゃいましたらご教授願います。そんな方法ないよという事でしたら、その事も教えていただければ幸いです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hawkwind
  • ベストアンサー率34% (160/469)
回答No.1

入力された文字コードは全部記録されています。 改行やTABなどは制御文字といいましてASCIIコードの前半部が該当します。 これらの判定にはASCIIコードで行います。 例えば次の文を実行してみて下さい。 Input A msgbox ASC(A) 色々な文字のASCIIコードが分かると思います。 特殊文字を扱う場合はどこかでASCIIコード表を用意した方が便利です。 条件判定では if asc(A) = vbCRLF then ~ となると思います。 改行はコード上CR(13H)ですが、CRLFになることもあります。 改行を反転させるには、自前で改行マークを用意して、 それを改行コードのあるところへ挿入して反転させます。 こちらの表現方法は色々検討して下さい。

cross22
質問者

お礼

お礼が遅くなってしまいすみませんでした。教えていただいたことを参考に解決することが出来ました。本当にありがとうございました。

関連するQ&A

  • Excel テキストボックス内の改行

    テキストボックス内に文字を書いていて気になったのですが、テキストボックスの折り返し地点(右端)近くで半角英単語を入力すると先頭の文字ごと改行されてしまいます。 例えばSummerと入力する場合、半角英数3文字分のスペースが残っていてもSumまで入って改行されるのではなくSummerごと改行されてしまいます。全角で入力する場合はこのような事はありませんでした。 これは何故でしょうか?

  • Accessテキストボックスの未入力チェック

    いつも参考にさせて頂いております。 Accessテキストボックスの未入力チェックで上手くいかず悩んでいます。過去の情報等調べましたが、わかりませんでした。 どなたか宜しくお願い致します。 フォーム1にテキストボックス1、ボタン1があります。 テキストボックスを何も入力せず、Enter等で移動する時にチェックをかけたいです。 もし、テキストボックスに何も入力がなかったら、メッセージを出し、フォーカスをテキストボックスに戻す。 何か入力があれば、ボタンにフォーカスが移動する。 If IsNull(Me.テキストボックス1) = "" Then msgbox "未入力です。" Me.テキストボックス1.SetFocus End If 宜しくお願い致します。

  • テキストボックスの改行幅

    Wordで図を書く際にテキストボックスを使って文字を入力しています。テキストボックスの改行幅を狭くしたいのですが、どうすればよいでしょうか?

  • ACCESS テキストボックスの入力値削除

    こんにちは。ACCESSの初心者です。 現在ACCESSを使ってとある一覧表の入力フォーマットを作成しております。 早速ですが質問です。 フォームのテキストボックスにて入力チェックをしており、間違った値が入力されると、メッセージボックスを出し、その間違った入力値を削除し、カーソルをそのテキストボックスに戻す、ようにしたいのですがどうすればいいのでしょうか? ちなみに現在以下のようなソースを作成しているのですが、(1)と(2)のところがどうすればいいのかわかりません。 If 正しい入力値 then 次のテキストボックスへ移動 else msgbox("入力値エラー") 入力値削除(1) カーソルを戻す(2) end if よろしくお願いします。  

  • Excel2000VBA テキストボックス内での改行で・・・

    ユーザーフォームにテキストボックスを作り、 テキストボックス内での改行をできるように設定します。 このテキストボックスに入力されたデータをセルに入力すると セルでは改行したところに「・」が入ってしまいます。 例えばテキストボックスに  こんにちは[改行]  いい天気ですね と入力して、これをsheet1のA1に入力します。すると、  こんにちは・  いい天気ですね と入力されてしまいます。 この「・」を表示しないようにする方法はありますか? よろしくお願いします。

  • VBA テキストボックスの改行

    現在、テキストボックスに入力された文字列を セルに入力するプログラムを作っています。 その際、テキストボックス内で あいうえお[改行] かきすけこ と入力された場合、 セル[A1]あいうえお セル[A2]かきすけこ としたいのですが何か方法はありますか? 回答よろしくお願い致します。

  • テキストボックスが未入力のときメッセージを表示したい

    テキストボックスが未入力のときコマンドボタンを押下したらメッセージを表示させるようにしたいんですができません。 教えてください。 (1)テキストボックスを作成。(txt_入力) (2)コマンドボタンを作成。 下記のようにコードを記述。 Private Sub コマンド45_Click() On Error GoTo Err_コマンド45_Click If Me![txt_入力] = "" Then MsgBox "データをいれろ" End If 以下省略 ""をNULLにしても出来ません。お願いします。

  • ソフト改行文字が入らず困っています

     VB6環境で、テキストボックスにEM_FMTLINES(= &HC8)をSendMessageしソフト改行文字を入れた形でテキストを取得したいのですが、希に複数行入力されているにもかかわらず、ソフト改行文字が追加されない場合があります。  MultiLineをtrueにしたテキストボックス「text1」とボタン「Command1」をフォームに貼り付け、以下のようなテストプログラムを作成してみました。(お見苦しいところありましたらすみません) Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const EM_FMTLINES = &HC8 'ソフト改行文字を設定/削除する定数 Private Sub Command1_Click() Dim ret As Boolean Dim str As String ret = True 'ソフト改行文字を付加 Call SendMessage(Text1.hwnd, EM_FMTLINES, 1&, ByVal 0&) str = Text1.Text If InStr(str, vbCr & vbCr & vbLf) = 0 Then MsgBox "失敗!" ret = False End If 'ソフト改行文字を削除 Call SendMessage(Text1.hwnd, EM_FMTLINES, 0&, ByVal 0&) If ret = True Then MsgBox "成功" End If End Sub  テキストボックスの横幅をある程度狭くし、複数行になるよう適当に文字を入力しボタンをクリックすると、ほとんど成功するのですが、確かに20回に1回くらい失敗します。  失敗した際は何度ボタンをクリックしても失敗します。逆に成功した文字列でなんどもボタンをクリックしても成功しか帰ってきません。  試した環境   WindowsXP Pro SP2、Windows2000 SP4  なんとも法則性も見つからず、途方に暮れております。決方法やこんな事象ご存知でしたら助けて頂けないでしょうか。よろしくお願い致します。  

  • 効率の良いテキストボックスの検知について

    VB6の初心者です。質問させていただきます。 画面上に5つのテキストボックス(TEXT1、TEXT2、TEXT3、TEXT4、TEXT5)と 1つのコマンドボタン(Cmd_SAVE)があり、 画面上の5つのテキストボックスをすべて記入し、 コマンドボタンを押すと、登録確認のメッセージボックスが表示され、 OKボタンを押すと、サーバへ転送され、 画面上のテキストボックスにひとつでも空欄があると、どのテキストボックスが 空欄であるかを示すメッセージが表示される処理をさせています。 そこで質問なのですが、今、メッセージボックス、登録処理は出来るようになったのですが、 とても処理の効率が悪い、もっと空欄を確認するのにすっきりとしたコードはある、と知り合いに言われました。 おそらく、繰り返し等を用いると思うのですが、メッセージにそれぞれのオブジェクト名を代入するやり方がわかりません。 下記が今のコーディングです。 Private Sub Cmd_SAVE_Click()   If TEXT1.Text = "" Then      MsgBox "TEXT1が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If TEXT2.Text = "" Then      MsgBox "TEXT2が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If TEXT3.Text = "" Then      MsgBox "TEXT3が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If TEXT4.Text = "" Then      MsgBox "TEXT4が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If TEXT5.Text = "" Then       MsgBox "TEXT5が登録されていません", vbOKOnly, "警告"     Exit Sub   End If   If MsgBox("入力データを登録しますか?", vbOKCancel, "登録確認") = vbCancel Then     Exit Sub   End If   End If ~登録処理~ End Sub どのような書き方がきれいで、効率的なコーディングなのでしょうか? ご教示お願いします!

  • テキストボックスについて

    1. テキストボックスの MultiLine プロパティを False に設定すると,そのプログラムの実行中に,テキストボックス内でリターンキーが押されると,エラー音が発生します。これを抑止したいのですが,どうすればよいのでしょうか? なお,MultiLine プロパティを True にするとエラー音は発生しなくなりますが,そのかわりに改行が行われてしまいます。MultiLine プロパティを True にして改行を抑止する方法でも構いません。どうか教えていただきたく存じます。 2. テキストボックス入力中にタブキーが押されたことを認識させたいのですが,KeyDown で認識させようとしてもうまくいきません。単にフォーカスが動いてしまうだけになってしまいます。フォーカスを移動させずに,タブキーが押されたことを認識させる方法を教えてください。 以上2点,どうかよろしくお願いいたします。

専門家に質問してみよう