重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

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

VBAで繰り返し持ってきた文章の「From」という文字以降を削除したいのですが
現状下記のようなコードになっていて、この中に上記処理を組み込みたいと思っています

For i = 1 To myfolder.Items.count
with This Workbook.Worksheets("リスト")
RowCount = .Cells(RowCount,"A").End(xlUp).Row + 1
〜中略〜
.cells(Rowcount,12)value =myfolder.Items(i).Body

ここのBodyで取得した文章から「From」を検索し、削除しようかと思っています

Replaceを使い置換しようかと思いましたが本文全てが消えてしまったりしております
ご教授のほどよろしくお願いします…!

A 回答 (5件)

こんばんは、


Dim bool As Boolean



.cells(Rowcount,12)value =myfolder.Items(i).Body

Next i

With ThisWorkbook.Worksheets("リスト")
bool = .Range("L2:L" & .Cells(RowCount, "L").End(xlUp).Row).Replace("From", "", LookAt:=xlPart)
End With
    • good
    • 0
この回答へのお礼

コメントありがとうございます!
こちらを参考にして組み直させていただいて無事動きました!
とても助かりました!ありがとうございます!

お礼日時:2020/07/20 11:17

No.2のお礼に対して。



置換対象を『From』にしているのに他の文章まで消えてしまうって不思議なんですよね。
それって検索値を『From』にしてやったら全ての文章が選択状態になる感じですし。

~ Replace(myfolder.Items(i).Body, "")

とかではないですよね?
    • good
    • 0
この回答へのお礼

おはようございます!
間違えて書いたコードを消してしまったのでわからないですが、
そういった文にはしてなかったはずですね
ただ、長くなりますがコードを分割して書いてみたら下のコードでうまく行きました!
何度もお返事ありがとうございます!助かりました!

Set rng =Cells(Rowcount,9)
bool = rng.replace("From*","",LookAt:=xlPart)

お礼日時:2020/07/20 11:16

初級レベルなので疑問なのですが、『LookAt:=xlPart』を用いたとして『From』の前後の文章は区別されるのでしょうか?



質問文で気になっているのは、

>「From」という文字以降を削除したい

ですが『どこまでを削除?』という点ですね。
    • good
    • 1

全てが消えるってのも不思議ではあるのですが、ワイルドカードの使い方が違ってたとか?


https://www.sejuku.net/blog/31570
    • good
    • 1
この回答へのお礼

おはようございます!
サイト参照してみます、ただワイルドカードを使用しなかった際もFromだけでなく文全体が削除されてしまいます…
とりあえず一旦別の方法で対応してますが引き続き調査します!

お礼日時:2020/07/17 09:25

こんにちは



方法は違いますが・・・

txt = "hogehogehogeFromfugafugafuga"

n = InStr(txt, "From")
If n > 1 Then txt = Left(txt, n - 1)

Debug.Print txt

みたいな感じでは?
    • good
    • 1
この回答へのお礼

回答ありがとうございます!
これはほげほけ〜の中からFromを探してそこから削除って形ですかね?
そうすると最初のtxtの中身をセルの指定にしてあげればFromが消えるってコードですかね?

お礼日時:2020/07/17 09:22

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