Excelで下のようになっているシートが12あり、【小計】となっているセルをブック全体で検索してその行の1列目から5列目までを黄色で色付けし、次の行の1列目から5列目までを青色で色付けしたいのですが、マクロでやることはできるのでしょうか?マクロ初心者で自力でやってみようと試みたんですが、全くできる見込みがありませんでした・・・。
|○○ | | | | 100|
|○○ | | | | 110|
|○○ | | | | 200|
|○○ | | | | 120|
| | | | | |
| | | | | |
|小計 | | | | 530|
| | | | | 42|
No.1ベストアンサー
- 回答日時:
可能です。
しかし、コードのタタキ台も何にも載せずに、誰かの書いたコードをそのまま使っても
アレンジが効かないと思いますよ。
1. シートを1枚目から12枚目までループ
2. 「小計」と書いてある行を検索
3. その行の1-5列目までを黄色に
4. その次の行も同様に青に
とすればよいでしょう。
イメージ的には
For i=1 To 12
k=Rows.Count
Do Until Cells(k,1).Value="小計"
k=k-1
Loop
Range(Cells(k,1),Cells(k,5)).Interior.ColorIndex=6
Range(Cells(k+1,1),Cells(k+1,5)).Interior.ColorIndex=8
next i
みたいな感じではないでしょうか。適宜アレンジください。
回答ありがとうございました。
タタキ台なしですみませんでした。
確かに自分である程度作らないと応用がきかなく発展させることもできませんね。
いただいた回答を参考にして、まずは内容を理解することから始めたいと思います。
勉強不足であることがよくわかりました。
No.3
- 回答日時:
マクロでなければいけないのですか?
条件付き書式使えば同様の事ができるとおもいますが
回答ありがとうございました。
条件付き書式でもできるとはわかりませんでした。
一括で処理するにはマクロしかできないと勘違いしていました。
マクロを勉強したいというのもあって質問した次第です。
条件付き書式でもできないか模索してみたいと思います。
No.2
- 回答日時:
こんにちは。
最初に、この人何言っているんだと思われるかもしれませんが、コツを教えます。
>マクロ初心者で自力でやってみようと試みたんですが、
経験から導き出した技術か、原則を覚えてその問題に立ち向かうか、学校の勉強でも、社会生活でも同じですね。
あえて、これを「帰納法」と「演繹法」と呼ばせていただくと、帰納法は経験によるもの、演繹法は経験によらないで、法則から解決を導き出すもの。どなたも、「演繹法」としての原則・方程式・構文を求めるのが楽です。しかし、VBAはだいたいは失敗します。なぜかというと、ExcelVBAは、中身が雑然として統一されていないからです。それでも、やはり経験を積めないから、逆引き大全500の極意(秀和システム)とかいう本を眺めていると、なんとなく目に浮かんでくるものがあります。これは、あれに使える、それは、これに使えると……。PCは必ずしも必要ありません。そうしたら、自分が成功したり納得した完成形を、コードとメモをテキストファイルに入れて、今度は自分の作ったコードを参考にしていくわけです。それは、ネットでも掲示板でもよいでしょう。参考にしたURLも記録して置きます。今、私は、純粋なExcel VBAだけでも、重複がありますが18万行を越えています。これをOneDriveにでも入れて置けば、どこでも、参考に出来ます。
実は、私は、以下のFindメソッドを使った構文も、色のColorIndexも、暗記はしたのに、すぐに忘れてしまうので、VBA用のテンプレートにしています。
これは一例です。 worksheet は、12あるとおっしゃっていますが、あえて、なしにしました。
色は、パステルカラーにしました。
'//
Sub FindSearchColor()
Dim sh As Worksheet
Dim arg As String
Dim c As Range
arg = "小計"
For Each sh In Worksheets
With sh
Set c = .Cells.Find( _
What:=arg & "*", _
After:=.Cells(1, 1), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
MatchByte:=False _
)
If Not c Is Nothing Then
If c.Row > 5 Then
c.Resize(, 5).Interior.ColorIndex = 36 'パステル黄色
c.Offset(1).Resize(, 5).Interior.ColorIndex = 34 'パステル青
End If
End If
End With
Next sh
MsgBox "終了", vbInformation
End Sub
回答ありがとうございました。
自分のレベルが低すぎることがよくわかりました。
いただいた回答の内容をほとんど理解することができないため、まずは一つ一つ中身を理解することから始めたいと思っています。
これからもう少し内容を理解できるレベルになってから質問するようにしたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Excel(エクセル) 指定値をマクロで検索&シート移動 2 2022/04/27 23:29
- Excel(エクセル) マクロVBAのフォルダ階層別で検索の方法 4 2022/04/03 23:23
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
Excelで数字を入れたら対応する...
-
Excelのシート上のShapeにイベ...
-
【エクセル】フリーワード検索...
-
長い時間かかるマクロが実行中...
-
エクセルで複数のシートのクリ...
-
エクセルファイルを開いた回数...
-
エクセル シート内の一番下のセ...
-
excel定数の違いについて。xlAu...
-
シート全体の絶対参照
-
エクセルのワークシート(テン...
-
セルの一部分だけを太字にする方法
-
エクセルVBAで実行中画面を...
-
エクセルでランダムな座席表を...
-
エクセル上にシェイプで二重丸...
-
エクセルマクロでファイル名や...
-
【エクセル】「実行時エラー’10...
-
EXCEL マクロの記録で並べ替え...
-
エクセルで特定の行だけ行削除...
-
WEB画面をエクセルのセルに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
Excelで数字を入れたら対応する...
-
エクセルで複数のシートのクリ...
-
エクセルファイルを開いた回数...
-
Excelのシート上のShapeにイベ...
-
エクセルで特定の行だけ行削除...
-
長い時間かかるマクロが実行中...
-
エクセル シート内の一番下のセ...
-
【エクセル】フリーワード検索...
-
Excelでセル内の文字をファイル...
-
【エクセル】「実行時エラー’10...
-
シートではなくBOOK間で重複し...
-
フォルダ内にある全ファイルの...
-
EXCELのダイアログシートって、...
-
エクセル:セル内の文字列の最...
-
自分の専門分野の仕事。初見で...
-
セルの一部分だけを太字にする方法
-
エクセルで○をつけるマクロ設定
-
エクセル マクロ 一定時間おき...
-
Excelにて、同じ画像を複数のセ...
おすすめ情報