excelvba 文字列の変更

最近の書き込み件数: 今日 0件、昨日 0件
未読分:4件

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)


Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

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

Message#3 2015年2月5日(木)11時45分
From: sabasa
返事 削除 変更
早速のご教授、誠にありがとうございます。
説明が不足しており、申し訳ございません。
データは1つのセルに入っており、入っている文字の
例えば「あああ」は3文字であったり、10文字であったりと文字数は特定できません。
要は質問にある通り、句読点等+改行があった場合は、
 改行を削除したい。
句読点が無く改行だけの場合は、次の行との文字が詰まる関係で
読解ができなくなるのを防ぐために、
改行の部分を「、」に置き換えたいという事です。

Message#2 2015年2月5日(木)11時44分
From: cybo
返事 削除 変更
こんな感じですか?

■VBAコード

Sub sumple()
Dim myRng As Range
Dim myStr As String
Dim i As Long
For Each myRng In Range("A2:A7")
  myStr = myRng.Value
  i = 1
  Do
    i = InStr(i, myStr, Chr(10))
    If i = 0 Then Exit Do
    Select Case Mid(myStr, i - 1, 1)
    Case "、", "。", ",", "."
      myStr = Left(myStr, i - 1) & Right(myStr, Len(myStr) - i)
    Case Else
      myStr = Left(myStr, i - 1) & "、" & Right(myStr, Len(myStr) - i)
      i = i + 1
    End Select
    myRng.Offset(0, 1).Value = myStr
  Loop
Next myRng
End Sub

Message#1 2015年2月5日(木)11時00分
From: sabasa
返事 削除 変更
Excel2010 VBAについて、ご教授をお願い致します。

1つのセルに入力されている文字列の変更について以下の様に変更したいのですが、簡単にできる方法はございますか?
(色々と試しましたが、うまくいきません。)

   既内容                → 変更後内容
 ・「、」(読点)+改行(読点は半角を含む) → 読点だけにする(改行を削除)
 ・「。」(句点)+改行(句点は半角を含む) → 句点だけにする(改行を削除)
 ・「,」 (半角のカンマ)+改行    → 半角のカンマだけにする(改行を削除)
 ・「.」 (半角のピリオド)+改行   → 半角のピリオドだけにする(改行を削除)
 ・改行(のみ)           → 読点(、)にする。

以下にサンプルを記述します。

☆元データ
あああ、(改行)
おおお(改行)
いいい。(改行)
ううう,(改行)
えええ.(改行)

☆求める結果の内容(「おおお」の次の文字「、」は改行を置換え)
あああ、おおお、いいい。ううう,えええ.

よろしくお願いいたします。

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降

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