[[20241007132229]] 『文字列の一部を検索して削除するマクロ。』(中目) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『文字列の一部を検索して削除するマクロ。』(中目)

よろしくお願いします。

以下のような文字列があります。

https://www.●●●.co.jp/digital/videoa/-/detail/=/cid=h_1324skmj00506/hosihosi-26
https://www.●●●.co.jp/digital/videoa/-/detail/=/cid=h_1324skmj00506/kokosuna-24
https://www.●●●.co.jp/digital/videoa/-/detail/=/cid=h_1324skmj00506/masuo-19

多い時は1,000行分ほどあります。
それぞれ1行ごと入力されており、1〜8個目の/間の文字列は固定ですが、8個目/〜9個目/の間の文字列(cid=●●)は変動します。
その為、9個目の/以前の文字数はURLごとに常に変動します。

目的は、9個目以降文字列を一括削除したいです。
このような事は可能でしょうか?
ご教示頂けますと幸いです。

< 使用 Excel:Microsoft365、使用 OS:Windows11 >


 最後尾から始めて"/"を検索すればよいということですね。
 VBAのInStrRev 関数を調べてみてください。

(xyz) 2024/10/07(月) 13:49:01


/ で分割して 9個になるのでしたら
分割後、先頭から8個目までをつなぎ合わせては如何でせうか。^^;

(隠居Z) 2024/10/07(月) 13:50:07


 =TEXTBEFORE(A1,"cid=")
 ではダメですか?
(´・ω・`) 2024/10/07(月) 13:59:07

皆さん、ありがとうございます。
ご教示頂いた情報から色々調べてみて、やっつけっぽいですが、以下の感じで解決できました。

Sub RemoveSegmentFromLastChar()

    Dim targetString As String
    targetString = Range("A1").Value

    ' 最後のカンマの位置を取得
    Dim pos As Long
    pos = InStrRev(targetString, "/")

    ' 最後のカンマ以降を削除
    If pos > 0 Then
        targetString = Left(targetString, pos - 1)
    End If

    ' セルA1に更新された文字列を代入
    Range("A1").Value = targetString + "/"
End Sub

(中目) 2024/10/07(月) 15:15:19


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.