
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
Sub test01()
For Each cl In Range("g:I")
MsgBox cl.Address
Next
End Sub
実行すると、範囲内の全セルを横向きに処理することがわかる。
色つきのセルが見つかった段階で次の行の探索に移るコードがやや
面倒。
それであれば色つきのセルが見つかった段階で行をコピーし貼り付け
しループを抜ける(Exit For)ほうが簡単な書き方になるので、下記がよかろう
ーー
質問例はG列~R列だがG-I列に変えた。なるべくA列に近い例にせよ。
>G列~R列内
下辺行というものが有るだろう。列指定でなく範囲指定のほうが具体的。それで10行目までの例にした。プログラムで最終行を探す手も有るが。
コピー先の列が質問に書いてない。同じ列からとしたが、質問には心配りせよ。
以上は下記のコードを、質問者の要修正点でもある。
多分1番コード行数が少ないのではないかな。
ーーーー
Sub test02()
Dim sh1, sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")
For i = 1 To 10
For j = 7 To 9 'G-I列の例
If sh1.Cells(i, j).Interior.ColorIndex <> xlNone Then
MsgBox sh1.Cells(i, j).Address
d = sh2.Range("i65536").End(xlUp).Row
sh1.Range("G" & i & ":I" & i).Copy sh2.Cells(d + 1, 7) 'I列から
Exit For
End If
Next j
Next i
End Sub
No.2
- 回答日時:
例えば、
データシートが、Sheet1
転記のシートが、Sheet2
というようにシート名が決まっている場合のコードは書けるのでしょうか。
もし、それも書けないということであれば、
>次のシートにコピーしたい
これは次の段階のような気もしますが。。。
(別に難しいと言ってるわけではありませんが)
ま、それは置いといて、
質問の文言どおりに
アクティブシートのG~R列で色付きセルがあったら
その行を
アクティブシートの「次の」シートへコピーする場合
'------------------------------------------
Sub test()
Dim R As Long
Dim Clm As Long
Dim Cnt As Long
Dim NextSheet As Worksheet
Set NextSheet = Worksheets(ActiveSheet.Index + 1)
NextSheet.Cells.Clear
For R = 1 To Cells(Rows.Count, "G").End(xlUp).Row
For Clm = 7 To 18
If Cells(R, Clm).Interior.ColorIndex <> xlNone Then
Cnt = Cnt + 1
Rows(R).Copy NextSheet.Cells(Cnt, "A")
Exit For
End If
Next Clm
Next R
End Sub
'---------------------------------------------
なお、G列で最終行を取得していますので
データの最終行のG列には何らかのデータがないといけません。
以上、ここまで。
No.1
- 回答日時:
単純に1行ずつ処理をするものを、ループさせればできると思います。
おおむねこんな感じ(他にも方法はあると思います)
1)準備として、「次のシート」へ記録する行のインデックス変数(あるいは
Rangeでもよい)を用意しておきます。
2)対象範囲を確定するために、G~R列の(データの入っている)最大行
を取得する。(1行目?からこの行まで処理をすればよいことになる。)
3)これ以降について(3~5)↑で取得した行までループで繰り返す
対象とする1行で、G~R列までの各セルに色がついているか調べる。
4)色がついていたら
その行を、「次のシート」のインデックス変数が示す行へコピーし、
インデックス変数を1進めておく。(次にペーストする行を示すため)
5)色がついていない場合は、何もせずに次の行へ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
excelのデータで色つき行の抽出方について教えてください
Excel(エクセル)
-
エクセルでマクロにてセル色と文字を他シートのセルへコピーしたい
その他(コンピューター・テクノロジー)
-
セルに背景色がある行を別シートにコピー
その他(Microsoft Office)
-
-
4
複数シートの色付きセルがある行を別シートに抽出
Excel(エクセル)
-
5
Excelのセルの色を変えた行(すべてのシート)を別シートに抽出したい
Excel(エクセル)
-
6
EXCEL VBA 文中の書式ごと複写するには
Visual Basic(VBA)
-
7
Excel VBA で色付きのセルの値を取得する
Excel(エクセル)
-
8
VBAで別のブックにシートをコピーするとセルの色が変わってしまう
Visual Basic(VBA)
-
9
エクセル 別シートへのコピーを,セルの色や太字斜体までやりたい。
Excel(エクセル)
-
10
VBAで色の付いているセルの行削除
Excel(エクセル)
-
11
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
12
エクセルの入力規則で作ったリストの文字を拡大したい
Excel(エクセル)
-
13
エクセル マクロ 貼り付け先が空白でない場合 1行下に貼りつける
Excel(エクセル)
-
14
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
15
エクセルvbaで、別シートの最下行にデータを取り込むコードを教えてください。
Visual Basic(VBA)
-
16
VBAでセル同士を比較して色付け
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
B列の最終行までA列をオート...
-
VBA 何かしら文字が入っていたら
-
Changeイベントでの複数セルの...
-
C# dataGridViewの値だけクリア
-
IIF関数の使い方
-
VB2005EE:DataGridViewでチェ...
-
【VBA】2つのシートの値を比較...
-
Worksheets メソッドは失敗しま...
-
VBAを使って検索したセルをコピ...
-
URLのリンク切れをマクロを使っ...
-
DataGridViewに空白がある場合...
-
エクセル 2つの表の並べ替え
-
VBAで、特定の文字より後を削除...
-
セルに値が入っていた時の処理
-
VBAのFind関数で結合セルを検索...
-
複数csvを横に追加していくマク...
-
複数の列の値を結合して別の列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
vba 2つの条件が一致したら...
-
【VBA】2つのシートの値を比較...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
URLのリンク切れをマクロを使っ...
-
VBAを使って検索したセルをコピ...
-
DataGridViewに空白がある場合...
-
VBA 何かしら文字が入っていたら
-
VBAのFind関数で結合セルを検索...
-
複数の列の値を結合して別の列...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
VBAで指定範囲内の空白セルを左...
-
rowsとcolsの意味
-
【Excel VBA】 B列に特定の文字...
-
VBAで、特定の文字より後を削除...
-
エクセル 2つの表の並べ替え
おすすめ情報