Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3265 / 13644 ツリー ←次へ | 前へ→

【63213】セル内の文字数を出して検索し、行を別シートに移動したい 未熟者 09/10/15(木) 15:06 質問[未読]
【63218】Re:セル内の文字数を出して検索し、行を別... 未熟者 09/10/16(金) 9:23 発言[未読]
【63219】Re:セル内の文字数を出して検索し、行を別... Jaka 09/10/16(金) 10:51 発言[未読]
【63220】Re:セル内の文字数を出して検索し、行を別... Abebobo 09/10/16(金) 11:13 発言[未読]
【63221】Re:セル内の文字数を出して検索し、行を別... 未熟者 09/10/16(金) 11:57 お礼[未読]

【63213】セル内の文字数を出して検索し、行を別シ...
質問  未熟者  - 09/10/15(木) 15:06 -

引用なし
パスワード
   こんにちは。お世話になります。
Sheet1のA列のセルに「鳩山 太郎」や「鳩山 次郎・鳩山 三郎」など
所有者の名前が並んでいます。

苗字と名前が、それぞれ3文字の場合も考えられますので
セル内の文字数が7文字以上の場合には、その行を削除して
Sheet2に貼り付けることはできますでしょうか?。

わたしも未熟者のため、いろんなところを探していますが、
さっぱりと解りません。宜しくお願い致します。

【63218】Re:セル内の文字数を出して検索し、行を...
発言  未熟者  - 09/10/16(金) 9:23 -

引用なし
パスワード
   ▲未熟者 より追記:

着色までは出来たのですが、それを移動できません。

Sub 文字数で検索して着色移動()
 Dim c As Variant
 Dim StrMoji As Variant
 
 For Each c In Range("A1", Range("A65536").End(xlUp))
  StrMoji = Len(c.Cells)
  If StrMoji > 8 Then           '8文字以上なら
   c.Cells.Interior.ColorIndex = 35   'セルを若草(薄緑)色に着色
  Else
   c.Cells.Interior.ColorIndex = xlNone
  End If
 Next
End Sub

どなたか、チカラをお貸し願えませんか?。宜しくお願い致します。

【63219】Re:セル内の文字数を出して検索し、行を...
発言  Jaka  - 09/10/16(金) 10:51 -

引用なし
パスワード
   コピペで良いかと思いますけど。

c.copy
Sheets("Sheet2").Range("A65536").End(xlUp).offset(1).PasteSpecial

ぐらいでいけませんか?
コピペじゃまずいのでしょうか?

カットでもできそうだけど、For Each だとまずいかも。
削除が伴う場合は、データ最下行から処理するのが基本。

行の削除は、
c.EntireRow.Delete

【63220】Re:セル内の文字数を出して検索し、行を...
発言  Abebobo  - 09/10/16(金) 11:13 -

引用なし
パスワード
   Jaka さんから回答有りますが、書いちゃったんで投稿します。

Sub 文字数で検索して着色移動2()
 Dim Lrow As Long
 Dim i   As Long
 
 With ActiveSheet
  Lrow = .Range("A65536").End(xlUp).Row
   For i = Lrow To 1 Step -1        ’下から一行づづ上に処理
    If Len(.Range("A" & i).Value) > 8 Then  '8文字以上なら
     .Rows(i).Cut
     With Sheets("Sheet2")
      .Rows(.Range("A65536").End(xlUp).Row).Insert Shift:=xlDown
     End With
     .Rows(i).Delete Shift:=xlUp
    Else
     .Range("A" & i).Interior.ColorIndex = xlNone
    End If
   Next i
  End With
End Sub

*やっぱり、カットは下からが基本ですね。

【63221】Re:セル内の文字数を出して検索し、行を...
お礼  未熟者  - 09/10/16(金) 11:57 -

引用なし
パスワード
   ▼Abebobo さん:
▼Jaka さん:

Jakaさんからの指示を受け、いろいろと試していましたが、
A列はSheet2にコピーされるものの、B列や他の列が移動しないので
ハッキリ言いまして、どうしたら良いのかを考えておりました。
いろいろと解らないことだらけのため、返事が遅くなって申し訳ありません。

AbeboboさんVBAで試させて頂きましたが
希望通りにSheet2に対象の行が移動してくれましたので
数十万件のデータを処理しようと思います。
お二人には、おチカラを貸して頂き、感謝しております。

回答を頂いて解決するだけではなく、お二人のように、
”初心者”のチカラになれるように勉強したいと思います。
ありがとうございました。

3265 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free