- ベストアンサー
特定の文字があった時のみ、隣のセルに移動したい
エクセル2003を利用してオーダー別の手配リストを作成しています。 データからコピーした場合、オーダー、品番等、全て同じ列に入力されてしまう為、自動で振り分けたいと考えています。 そこで同じ列内の特定の文字(例:CX又はCN)が有ったものだけを、隣のセルに移動して、元々有った文字は全て削除するといったことは出来るでしょうか? 詳しい方が居ましたら、是非ご教示下さい。 宜しくお願いします。
- みんなの回答 (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
お礼
貴重な回答有難うございます。 大変参考になりました。