セルの列 (この列を A と呼びましょう) を持つ Excel ファイルのマクロを作成しようとしています。各セルには、カンマで区切られた 4 ~ 5 個のプロジェクトの成果物と作業成果物が含まれており、タグ "成果物は「DEL」、作業成果物は「WKP」です。
マクロで次のことを達成したい:
- A列はそのままにしておきたいと思います。
- 列 A のセルから抽出する必要がある成果物用の列 B を作成します。
- 同様に、列 A のセルから抽出する必要がある作業成果物の列 C を作成します。
例を挙げましょう:
セル A1 に含まれているとします。
DEL1: DEL 1 プロジェクト プロセス、DEL2: DEL 2 プロジェクト スケジュール、WKP1: WKP 1 作業成果物ドキュメント
セル B1 を次のように表示します。
DEL1: DEL 1 プロジェクト プロセス、DEL2: DEL 2 プロジェクト スケジュール
セル C1 は次のようになります。
WKP1: WKP1 作業成果物ドキュメント
列 A のすべてのセルがセル A1 と同じ文字長になるわけではありません。ただし、DEL と WKP の両方が含まれます。
成果物と作業成果物の名前の長さが異なることを考えると、単純に列 A をコピーして TextToColumn を実行して分割することはできません。
これまでのところ、私が思いついたアプローチは、列 A を列 B にコピーし、成果物を保持して作業成果物を削除しようとすることです。
ご覧のとおり、これには、「WKP」の前のコンマ (",") とスペース (" ") で始まり、問題の成果物の最後の文字で終わる文字列の部分を削除する必要があります ( DEL の直後に WKP が記述されているように見えるため、この場合は文字列全体の最後の文字になります)。
各セル範囲内でテキスト「WKP」を見つけて削除できるマクロを作成することはできますが、その直後にあるものを削除することはできません。つまり、セル B1 に対してのみこれを生成できます。
DEL1: DEL 1 プロジェクト プロセス、DEL2: DEL 2 プロジェクト スケジュール、1: 1 作業成果物ドキュメント
これを行うマクロの作成を手伝ってくれる人はいますか? 構文も説明していただければ幸いです。
ありがとう!