電子書籍の厳選無料作品が豊富!

●VB6で左詰めと空白行削除

初めまして。
ご教授よろしくお願いいたします。

テキストボックスA(以下、texA)に入力された内容を
テキストボックスB(以下、texB)に出力する動作を作成しているのですが
texAに入力される内容が以下のように
必ず文章の左側に半角スペースが入る仕様になっています。

texA
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| I "VB" We learned    |
| is very difficult!   |
|__             |
|↑              |
|半角スペースが2つ入る    |
|               |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

一応、texAの内容を1行ずつ配列に入れ込んでTrimしてしまう方法と
左側に入る半角スペースが2つなのでReplaceで" "(半角スペース×2)を取り除く方法で
解決できたのですが(※ただし後者は文中に半角スペース×2がある場合を考えNGとしました)
もしtexAの内容を丸ごと取得し、一括で左詰めできるならばと思い質問させていただきました。

また、一括で取得した場合、文の最初と最後に1行空白行が入るパターンがございます。
(※入らない場合もあると仮定、また文中にも改行が入ると仮定する)

texA
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
|              |←空白行
| I "VB" We learned    |
|              |←空白行
| is very difficult!    |
|__             |←空白行
|↑              |
|半角スペースが2つ入る    |
|              |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

こちらの削除方法についても併せて教えていただけたらと思います。
お手数ですが、教授お願いいたします。

当方、環境はVB6、WindowsXPです。

A 回答 (1件)

>一括で左詰めできるならばと思い質問させていただきました。



一発では無理でしょう
一行づつ取り出して処理するしかないと思いますよ

以下、処理コードをコマンドボタンに割り付けています

Private Sub Command1_Click()
Dim AA As Variant
Dim TXT As String
Dim i As Long

AA = Split(texA.Text, vbCrLf)

texB.Text = ""
For i = 0 To UBound(AA)
TXT = Trim(AA(i))
If TXT <> "" Then
texB.SelText = TXT & vbCrLf
End If
Next i
End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

やはり一括処理は不可能なのですね。
一行ずつ処理するコードで進めることにします。

サンプルまで記述いただきありがとうございました。

お礼日時:2010/05/25 13:21

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