質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

5回答

15277閲覧

「休」と入力した行を黄色&網掛けの塗りつぶしにしたいです。

umomo

総合スコア10

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2016/06/15 12:47

編集2016/06/15 12:50

###月の予定表を作成したいと思っています
お世話になっております。2回目の質問です。ご覧いただいてありがとうございます。

ネットや参考書を見て参考にして、あるセルに「休」と入力したらその行が黄色&網掛けになるマクロを作成したいのですが、理想通りのものができません。

理想:「休」と入力したそばから、その行が黄色&網掛けになる。
現状:「休」と入力しても変化はなく、(ボタンにマクロの登録をしておいて)ボタンを押すと実行され、その行が黄色になる。(網掛けについては調べてもわかりませんでした)

Sub Workbook_Open() Dim umomo As Range Application.ScreenUpdating=False Cells.Interior.ColorIndex=xlNone For Each umomo In Range(Cells(1.1),Cells(Rows.Count,1).End(xlUp)) If umomo.Value="休" Then umomo.EntireRow.Interior.ColorIndex=6 Next umomo Application.ScreenUpdating=True End Sub

VBAを使用せず、条件式書式でも試みましたが、なかなか思い通りに動きません(なぜか一つ上の行が色変わったり・・・)。

まるっきり違う案でも少しの修正でもなんでも、教えていただけたら大変助かります。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

条件付き書式でできますよ。

書式を適用したいセルを選択
条件付き書式
新しいルール
指定の値を含むセルだけを書式設定
セルの値 次の値に等しい ="休"

投稿2016/06/15 13:05

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

umomo

2016/06/15 13:12

ご回答ありがとうございます! 試しましたが、指定のセルのみ書式が変わり、そのセルを含む行全体は変化しませんでした。 条件付き書式でもできないか、引き続き取り組んでみます。 ありがとうございます!!
Zuishin

2016/06/15 13:26

一つのセルの内容に基づいて複数セルの書式を変化させるのは次のようにします。 色が変わる可能性のあるすべての領域を選択 数式を使用して、書式設定するセルを決定 次の数式を満たす場合に値を書式設定 =$A1="休" これで A 列に「休」と書くと、最初に選択した範囲で、休と書いた行の書式が変わります。
umomo

2016/06/15 14:39

更に教えていただきありがとうございます!試してみます!
guest

0

条件付き書式でできます。

  1. A1セルをアクティブにして全セル選択(Ctrl+A等)

※アクティブセルと選択範囲は条件付き書式追加時に影響します
2. ホーム - 条件付き書式 - 新しいルール
3. 「数式を使用して、書式設定するセルを決定」を選択して以下の設定
数式テキスト欄「=$A1="休"」
※実際はA列ではなければ適時書き換えてください
※ただ$記号には大事な意味がある(相対セル参照ではなく絶対セル参照にする)ため書き損じないように。
書式は適当にどうぞ

あとは適当な行のA列に「休」と入れて行全体に書式が適用される動作確認してみてください。

投稿2016/06/15 13:37

nakit

総合スコア410

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

umomo

2016/06/15 14:41

細かな解説をつけていただき誠にありがとうございます。初心者ですので大変有難いです。試してみます!
umomo

2016/06/21 08:23

見事、理想通りに実行できました!!!ありがとうございます!やったー 目標はVBAマクロで動かすことなので、引き続き足掻いてみます!
guest

0

条件付き書式の方が軽いと思いますが、VBA 必須というなら、以下が参考になるかもしれません。

Excel VBA:特定のセルの値が変更されたとき(更新後処理イベント)だけVBAのプログラムを実行する方法

投稿2016/06/22 11:43

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

umomo

2016/06/22 13:30

ありがとうございます!参考にします!
guest

0

VBAを使いたいなら
excel VBAにはマクロの記録という機能が有りますよ
excel2013は開発タブの中に
以前のはツールに
マクロの記録を実行して終了すると
実行した処理が自動的にコードとして標準モジュールに出力されます(VBA編集画面のプロジェクトに追加されていく)
無駄なコードも追加されていきますが慣れていけば徐々にいらないコードを削っていけるようになります
網掛け?もマクロの記録中に書式で設定していけば自動的にコードに記録されます

投稿2016/06/16 01:13

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

umomo

2016/06/21 08:19

ご回答ありがとうございます。今後の勉強のアドバイスにもなり大変ありがたいです!試してみます。
guest

0

ベストアンサー

Workbook_Openではなく
Worksheet_Changeを利用すると「シートの値が変わった時」何かを処理させることができます。

よって、最終的に以下のようになります。

VBA

1Private Sub Worksheet_Change(ByVal Target As Range) 2 If Target.Value = "休" Then 3 4 Rows(Target.Row & ":" & Target.Row).Select 5 6 With Selection.Interior 7 .Pattern = xlGray75 8 .PatternColorIndex = xlAutomatic 9 .Color = 65535 10 .TintAndShade = 0 11 .PatternTintAndShade = 0 12 End With 13 14 End If 15End Sub

投稿2016/06/15 13:05

aglkjggg

総合スコア769

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

umomo

2016/06/15 13:12

ご回答ありがとうございます!試してみます!!
umomo

2016/06/21 15:12

aglkjggg様 先日は早速のご回答ありがとうございました。重ねての質問失礼します。 3行目の Rows(Target.Row & ":" & Target.Row).Select の Target.Rowの理解で躓いています。 ネット上で、「Target.Rowは、変更したセル範囲の左上セルの行番号を取得するもの」と解説している記事を見かけたのですが、どのように使うのかいまいち理解できていません。 Target.Rowの使い方について、教えていただけると大変助かります。よろしくお願い致します。
aglkjggg

2016/06/22 11:22 編集

Rows("1:1").Selectとすると1行目がA列~最後の列まで 全て選択されます Rows("2:2").Selectとすると2行目がA列~最後の列まで 全て選択されます Rows("3:3").Selectとすると3行目がA列~最後の列まで 全て選択されます ... Rows(Target.Row & ":" & Target.Row).Selectとすると編集したセルの行で A列~最後の列まで 全て選択されます 2行目のifで「休」とした場合のみにしておりますので、 今回のプログラムでは「休」と入力されたセルだけが対象となります。 また、私の回答したプログラムは「複数セルを同時に編集した場合」を考慮していません。 複数セルを同時に編集した場合はエラーとなります。
umomo

2016/06/25 04:18

ご回答ありがとうございます!理解が深まりました。注意点も挙げてくださり、助かります。引き続き、勉強します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問