- ベストアンサー
EXCELシートの振り分け転記の自動化について
- Excelシートで数字コードとアルファベットコードが順不同に書かれているセルの塊を自動的に別のシートに振り分ける方法について教えてください。
- 振り分け作業を自動化するためにはマクロVBAを使用する方法がありますが、順不同なセルの塊をどのように取り扱うかが課題です。
- 自動化のイメージとして、数字コードとアルファベットコード、表題を選択してコピーし、別のシートに移動して貼り付ける作業を繰り返す方法を考えています。また、特定の条件下で行を削除する必要もあります。どのようなコードを使用すればよいでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
自動転記のイメージ作りのためのサンプルです。 テスト用の新規ブックのシート1のA列に適当な文字データを貼り付けるなりしてください。(大量にあった方がイメージがつかみやすいと思います。) このコードではシート1のA列から 「川」という文字を含むセルの値を、シート2のA列に順番に転記します。 「田」という文字を含むセルの値を、シート2のB列に順番に転記します。 最初の文字が「田」のセルの値を、シート2のC列に順番に転記します。 文字の長さが5文字のセルの値を、シート2のD列に順番に転記します。 コード内の「田」と「山」を違う文字に置換して実行すれば、その文字で抽出転記します。 手作業だとシート1とシート2を行ったり来たりしなければなりませんが、マクロコードなら一瞬で終わります。 Sub Test() Dim i Dim Sh1 As Worksheet Dim Sh2 As Worksheet Set Sh1 = Sheets(1) Set Sh2 = Sheets(2) Sh2.Cells.Clear With Sh1 For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row If InStr(.Cells(i, 1), "川") <> 0 Then Sh2.Cells(Rows.Count, 1).End(xlUp).Offset(1) = .Cells(i, 1) End If If InStr(.Cells(i, 1), "田") <> 0 Then Sh2.Cells(Rows.Count, 2).End(xlUp).Offset(1) = .Cells(i, 1) End If If Left(.Cells(i, 1), 1) = "田" Then Sh2.Cells(Rows.Count, 3).End(xlUp).Offset(1) = .Cells(i, 1) End If If Len(.Cells(i, 1)) = 5 Then Sh2.Cells(Rows.Count, 4).End(xlUp).Offset(1) = .Cells(i, 1) End If Next End With End Sub
その他の回答 (2)
- shintaro-2
- ベストアンサー率36% (2266/6245)
#1さんの回答にある通り、自動化は可能です。 具体的な表をイメージできないのですが 別の方法として、 1.シート全体をコピー コピーしたシートでデータを修正 具体的には 2.C列にA列を1行ずらしてコピー これによりA5とC5(もとはA4)が紐付 3.B列の空欄があればそこに上のセルのデータをコピー (CTRL+Gで空白セルを選択後=キー↑キー CTRL+リターン) 4.B列を選択して値のみコピー 5.最後に全体をA列でソート 表題とアルファベットに分かれるので、表題行を削除 6.必要であれば新規にピボットテーブルを作成し、好きなようにまとめる 具体的なもとの表のイメージを 画像として貼るか A,B 1 abc,あああ 2 123,いいい 3 456,ううう とか提示してもらえれば、もっと良い回答が付くかもしれません。
お礼
具体的アドバイス誠にありがとうございました。sohoさんに、聞いてみます。
- catpow
- ベストアンサー率24% (620/2527)
>>自分で考えてイメージしただけなのですが、この様な事は可能でしょうか? 質問のように、きっちりと手順化できていれば、それをVBAのプログラムにできます。 >>また、マクロに書くコードはどのようなコードをかけば良いでしょうか? マクロはVBAに変換されています。マクロ作成のみでは、たぶんやりたいことはできないと思います。 マクロで自動生成されたVBAのプログラムをベースにして、そのプログラムを修正し、自分の行いたい処理を追加すれば、たぶん可能です。 マクロではなく、VBAプログラムの知識が、それなりに必要となります。
お礼
ご回答ありがとうございました。
お礼
具体的にコードまで書いていただき誠にありがとうございました。sohoさんに聞いてみます。このコードを元にアレンジして見ます。