
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のセルの色を変えた行(すべてのシート)を別シートに抽出したい
Excel(エクセル)
-
5
EXCEL VBA 文中の書式ごと複写するには
Visual Basic(VBA)
-
6
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
7
VBAで別のブックにシートをコピーするとセルの色が変わってしまう
Visual Basic(VBA)
-
8
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
9
エクセル 別シートへのコピーを,セルの色や太字斜体までやりたい。
Excel(エクセル)
-
10
VBAで色の付いているセルの行削除
Excel(エクセル)
-
11
複数シートの色付きセルがある行を別シートに抽出
Excel(エクセル)
-
12
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
13
Excel VBA で色付きのセルの値を取得する
Excel(エクセル)
-
14
エクセル マクロ 貼り付け先が空白でない場合 1行下に貼りつける
Excel(エクセル)
-
15
エクセルvbaで、別シートの最下行にデータを取り込むコードを教えてください。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
【ExcelVBA】5万行以上のデー...
-
vbsでのwebフォームへの入力制限?
-
vba textboxへの入力について教...
-
複数のExcelファイルをマージす...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
改行文字「vbCrLf」とは
-
Vba Array関数について教えてく...
-
【ExcelVBA】値を変更しながら...
-
【マクロ】開いているブックの...
-
【VBA】値を変更しながら連続で...
-
VBAの「To」という語句について
-
算術演算子「¥」の意味について
-
以下のプログラムの実行結果は...
-
VB.net 文字列から日付型へ変更...
-
[Excel VBA]特定の条件で文字を...
-
VBA ユーザーフォーム ボタンク...
-
ワードの図形にマクロを登録で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が...
-
複数のExcelファイルをマージす...
-
【ExcelVBA】5万行以上のデー...
-
vbsでのwebフォームへの入力制限?
-
vba textboxへの入力について教...
-
Vba セルの4辺について罫線が有...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
Vba Array関数について教えてく...
-
【ExcelVBA】値を変更しながら...
-
【マクロ】開いているブックの...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
エクセルのマクロについて教え...
-
エクセルの改行について
-
VBA 入力箇所指定方法
-
[VB.net] ボタン(Flat)のEnable...
-
VBAでセルの書式を変えずに文字...
-
vb.net(vs2022)のtextboxのデザ...
-
Excelのマクロについて教えてく...
-
改行文字「vbCrLf」とは
おすすめ情報