アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル マクロで自動で計算させたいのですが、マクロの記録しかやったことがない者です。
添付画像のように、
元のデータとして、A列に黄色のセルがある表があります。

やりたいことは2種類あって
(1):A列に黄色がある行のみを残す。
(1)-1:(1)をやった後に、列を追加し、計算式をデータがある行分だけ入力して計算させる。

(2):A列が無色の行のみを残す。
(2)-1:(2)をやった後に、列を追加し、計算式をデータがある行分だけ入力して計算させる。

(1)、(1)-1と、(2)、(2)-1それぞれのマクロを教えてください。
色の指定の違いだけになるかと思いますが、良く判らないので、お願いいたします。
また、例えば赤色などへの変更も可能か、教えて欲しく。

行を残す内容と、列追加や、計算式入力等、それぞれ判るように、コメント行を入れていただけると助かります。

申し訳ありませんが、お願いいたします。

「エクセル (1)行削除 (2)列追加と計」の質問画像

A 回答 (1件)

こんばんは!


画像が小さくて内容が良く判らないので、こちらで勝手に判断しています。

>A列に黄色がある行のみを残す
に関しては黄色以外の行を削除と考えれば良いと思います。
同様に無色の行を残すに関しては「無色以外の行を削除」とすればどうでしょうか?
尚、色の変更についてはネットで「カラーインデックス」で検索すればたくさんヒットすると思いますよ。
たぶん56色のカラーインデックスがあると思いますが、中には白・黒等が含まれていますので、実際利用可能な色はもう少し少なくなると思います。

簡単ですがコードの載せておきます。(1行目はタイトル行でデータは2行目からとします)

Sub test() 'この行から
'変数の宣言(長整数型)
Dim i As Long
'A列の最終行から2行目まで順番に検索
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
'もしA列のセルの色が黄色以外ならその行を削除
If Cells(i, 1).Interior.ColorIndex <> 6 Then '←薄い黄色なら36です。
Rows(i).Delete (xlUp)
End If
'次の行へ
Next i

'もしセルの色が無色の行を残す場合は
'if Cells(i,1).Interior.ColorIndex<>xlnone Then
'Rows(i).Delete(xlup)
'End If
'で大丈夫だと思います。

'>列を追加し、計算式をデータがある行分だけ入力して計算させる
'の部分が画像が小さくてよくわからないので、単に列挿入だけのコードです。
'仮にD列を挿入するとします。
'Columns(4).Insert
'またはRange("D:D").insert
'もしD列に2列挿入する場合は
'Range("D:E").Insert
'でOKだと思います。その後の計算式はごめんなさい。
End Sub 'この行まで

列挿入後の計算式はコード内のコメントにあるように行っていません。
この程度ですがごめんなさいね。m(__)m
    • good
    • 0
この回答へのお礼

ありがとうございました。
画像見えなくて申し訳ありませんでした。
残りは自分で頑張ってみます。
助かりました。

お礼日時:2010/12/11 20:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!