VBAにて特定の文字列を抽出するといった作業をデータが入力されている最終行まで繰り返し行う指示を出したいと考えております。
<リスト1>
番号 | データ名 |
---|---|
1 | 1_○○○○_●●●● |
2 | 2_○○○○_●●●● |
3 | 3_○○○○_●●●● |
4 | 4_○○○○_●●●● |
----以下略-----
データ名抽出のコード
Sub sample1() Dim s As String Dim a a = Split(Cells(2, 2).Value, "_") Cells(2, 2).Value = a(1) End Sub
上記のコードですと抽出したい「●●●●」ではなく、「○○○○」になってしまうのでデータ名を以下のように変更いたしました。
<リスト2>
番号 | データ名 |
---|---|
1 | 1¥○○○○_●●●● |
2 | 2¥○○○○_●●●● |
3 | 3¥○○○○_●●●● |
4 | 4¥○○○○_●●●● |
----以下略-----
可能ならば、リスト1のデータ名でも「●●●●」の部分(文字数は必ずしも一定とはならないため、「●●●●」よりも前を削除する方向で考えております。)が抽出されるようにコードを書き換えたいとも思っているのですが、私の力不足で申し訳ないのですが、調べても該当するコード見つけることができませんでした。
実現したいことといたしましては
・データ名が入力されているセルに「●●●●」を抽出して上書きする
・リスト2のデータ名でも作業が滞らないようにしたい(可能ならば)
・データが入力されている最終行までループ処理をしたい
以上となります。
ループ処理のコードは以下のものを使用すると理解してはいるのですが、データ名抽出のコードと組み合わせるのうまく動かないので、お力をお貸しいただきたく思います。
Sub sample2() 'For文 End(xlUp) For i = 2 To Cells(Rows.Count, 1).End(xlUp).row Next End Sub
初心者な上に理解が浅く申し訳ございませんが、何卒、よろしくお願い申し上げます。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/16 04:57