excelvba 文字列の変更 削除


Message#4 2015年2月5日(木)14時06分
From: クロワッサン
VBAの中では改行は「vbLf」で扱えます。
置換で"、"&vbLfを”、”に置換などしていく手もありますが、改行のみの行の扱いが厄介ですね。
セルの中で"、"&vbLfなどを”、■”などに一旦置換し、残ったvbLfを”、”に置き換えてから最後に"■"をvbLfに戻す、という手もあるかな。

とりあえずアクティブセルに対して働くマクロで、ベタに組んでみました。
セルの内容は文字列でしょうから、instrでvbLfの位置を検索し、それのひとつ前の文字で判定してvbLfを""に置換ています。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

Sub Macro1()
'
With ActiveCell
 cnt = 0

Do
n = InStr(n + 1, ActiveCell, vbLf)
If n = 0 Then
Exit Do
Else
If Mid(ActiveCell, n - 1, 1) = "、" Then
ActiveCell.Characters(n, 1).Text = ""
Else:
If Mid(ActiveCell, n - 1, 1) = "、" Then
ActiveCell.Characters(n, 1).Text = ""
Else:
If Mid(ActiveCell, n - 1, 1) = "。" Then
ActiveCell.Characters(n, 1).Text = ""
Else:
If Mid(ActiveCell, n - 1, 1) = "。" Then
ActiveCell.Characters(n, 1).Text = ""
Else:
If Mid(ActiveCell, n - 1, 1) = "." Then
ActiveCell.Characters(n, 1).Text = ""
Else:
If Mid(ActiveCell, n - 1, 1) = "," Then
ActiveCell.Characters(n, 1).Text = ""
Else:
ActiveCell.Characters(n, 1).Text = "、"
End If
End If
End If
End If
End If
End If
cnt = cnt + 1
End If
Loop

End With

End Sub

上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。

パスワード:

ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

dmb.cgi Ver. 1.068
Copyright(C) 1997-2014, hidekik.com