エクセル マクロで自動で計算させたいのですが、マクロの記録しかやったことがない者です。
添付画像のように、
元のデータとして、A列に黄色のセルがある表があります。
やりたいことは2種類あって
(1):A列に黄色がある行のみを残す。
(1)-1:(1)をやった後に、列を追加し、計算式をデータがある行分だけ入力して計算させる。
(2):A列が無色の行のみを残す。
(2)-1:(2)をやった後に、列を追加し、計算式をデータがある行分だけ入力して計算させる。
(1)、(1)-1と、(2)、(2)-1それぞれのマクロを教えてください。
色の指定の違いだけになるかと思いますが、良く判らないので、お願いいたします。
また、例えば赤色などへの変更も可能か、教えて欲しく。
行を残す内容と、列追加や、計算式入力等、それぞれ判るように、コメント行を入れていただけると助かります。
申し訳ありませんが、お願いいたします。
No.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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル/列追加時、合計行の計算式 7 2023/03/15 11:14
- Excel(エクセル) エクセル 自動計算 1 2023/01/30 13:28
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) <Excel>結合したセルを含む計算式をコピーしたい 2 2022/04/04 11:55
- Excel(エクセル) エクセルの関数について 5 2023/04/30 17:24
- Excel(エクセル) エクセルでの操作方法 1 2022/11/15 14:09
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Excel(エクセル) 複数シートのデータ統合とレイアウトの維持についてです 2 2022/10/18 21:11
- Visual Basic(VBA) Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです 2 2023/03/05 02:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
すべてのシートを選択してエク...
-
Excelのデータが重いのはなぜで...
-
EXCEL VBA 区切り位置のプログ...
-
excel フレームのように一部...
-
ローマ字入力で「トゥ」を入力...
-
「未使用」と「不使用」ってど...
-
1点の辻の字に変換したいがエク...
-
Excelでエラー(#N/Aなど)値を...
-
SUM関数の範囲に#N/Aが...
-
もしセルが"#N/A"なら~をする...
-
エクセルで年休を管理する方法...
-
バッチファイルでキー操作を行う。
-
「T」「H」「C」などだけが入力...
-
iMacキーボードの入力 小文字の...
-
エクセルからアクセスにインポ...
-
自動改札のエラーって…
-
ExcelでVBAを使用した際に、『...
-
excelで小数点0を表示させる方法
-
コマンドプロンプトが実行中か...
-
Word文書に、チェックマーク(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
すべてのシートを選択してエク...
-
エクセルで時刻を自動入力する方法
-
Excelのデータが重いのはなぜで...
-
Excel VBA 答えが0になってし...
-
EXCEL VBA 区切り位置のプログ...
-
エクセルマクロについて データ...
-
エクセル。ブック内検索で重複...
-
エクセルで30日以内に同内容の...
-
スプレッドシートで、指定した...
-
合計が0の行を削除
-
エクセルで漢字がうまく並び替...
-
エクセルの入力 エンターキーで...
-
excel フレームのように一部...
-
エクセルの中の漢字を一度にカ...
-
エクセルで隣のセルと同じ数字...
-
A列を検索し一致した行を表示。...
-
Excel2003での並べ替えについて
-
エクセル (1)行削除 (2)列追...
-
Excelユーザーフォームでのデー...
-
エクセルの既存のシートでは入...
おすすめ情報