重要なお知らせ

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

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

エクセル2003を利用してオーダー別の手配リストを作成しています。
データからコピーした場合、オーダー、品番等、全て同じ列に入力されてしまう為、自動で振り分けたいと考えています。
そこで同じ列内の特定の文字(例:CX又はCN)が有ったものだけを、隣のセルに移動して、元々有った文字は全て削除するといったことは出来るでしょうか?
詳しい方が居ましたら、是非ご教示下さい。
宜しくお願いします。

A 回答 (1件)

こんばんは!


外しているかもしれませんが・・・

>特定の文字(例:CX又はCN)が有ったものだけを
は「CX」または「CN]が含まれている!という解釈

>元々有った文字は全て削除するといったこと
の「削除」とはデータを消去ではなく、消去して上詰めとしています。

VBAになってしまいますが、一例です。
元データはA列の1行目からあり、「CN」または「CX」が含まれるデータをB列に移動表示させるようにしてみました。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から
Dim i As Long
Application.ScreenUpdating = False
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If InStr(Cells(i, "A"), "CN") > 0 Or InStr(Cells(i, "A"), "CX") > 0 Then
With Cells(i, "A")
.Offset(, 1) = .Value
.Value = ""
End With
End If
Next i
On Error Resume Next
Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
Application.ScreenUpdating = True
End Sub 'この行まで

※ 単にA列データをB列に移動させるだけであれば
最後の
On Error Resume Next
Range("A1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
の2行を削除してください。

※ 一旦マクロを実行すると元に戻せませんので
別Sheetでマクロを試してみてください。

的外れならごめんなさいね。m(_ _)m
    • good
    • 0
この回答へのお礼

貴重な回答有難うございます。
大変参考になりました。

お礼日時:2013/10/26 12:52

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