Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


148 / 13645 ツリー ←次へ | 前へ→

【81774】セルの情報を取得し、任意のセルに色をつける そらお 21/5/11(火) 0:46 質問[未読]
【81775】Re:セルの情報を取得し、任意のセルに色を... γ 21/5/11(火) 5:52 回答[未読]
【81776】Re:セルの情報を取得し、任意のセルに色を... そらお 21/5/11(火) 11:26 発言[未読]
【81777】Re:セルの情報を取得し、任意のセルに色を... γ 21/5/11(火) 12:44 回答[未読]

【81774】セルの情報を取得し、任意のセルに色をつ...
質問  そらお  - 21/5/11(火) 0:46 -

引用なし
パスワード
   マクロを走らせ、特定の行のセルにデータを拾って、列の一部に色塗りをしたいのですが、
例えば、A2からK2でそこに"休暇"が入っていた場合、その列の4〜10行目と15〜20行目のセルに黒色を付けたい場合どのようにすればよろしいでしょうか。
後に任意で色を変える事があるため、条件付き書式設定では都合が悪いのでお力添えお願いします。
また、別で上記条件で色塗りする対象セルにその他の色が塗られていた場合、そこは色を変えないようにも出来ますでしょうか。
宜しくお願いします。

【81775】Re:セルの情報を取得し、任意のセルに色...
回答  γ  - 21/5/11(火) 5:52 -

引用なし
パスワード
   ご自分ではどこまで出来ていますか?
繰り返しの部分は普通にFor .. Nextループでよさそうですし、
塗りつぶし色の着脱はマクロ記録をとればコードが判明するはずです。
なにかしらコード作成に着手できるはずですが。(*)
できているところまでを示してもらえますか?

ただし、既存のセルの塗りつぶしが「条件付き書式」の場合は
少し工夫が必要です。
Excel2010以降であれば、DisplayFormatというプロパティが追加されていますので、
これを利用することになります。
ネットで検索してみてください。記事がたくさんあるはずです。

# (*)VBAを使えるようになるのが目的なら、ご自分でトライすることが有益です。
# どこが不明かを明確にしたうえで質問されることを推奨します。
# もし自分でするのが手間だからということでしたら勘弁下さい。
# いつまでも進歩はありません。(ゴメンネ朝から。でもこれを活かしてください)

【81776】Re:セルの情報を取得し、任意のセルに色...
発言  そらお  - 21/5/11(火) 11:26 -

引用なし
パスワード
   先月から入門編の書籍を読み始めたところで、マクロの記録以外は出来ない状況です。おっしゃられている通り塗り潰しなどのコードは記録で取れます。コードも見れば何をしているかは何となく分かる感じにはなってきましたが、まだ何がわからないかが解らないような感じです。
自分の習熟を待ちたいのですが、効率を直ぐに上げたかったので質問させていただきました。

【81777】Re:セルの情報を取得し、任意のセルに色...
回答  γ  - 21/5/11(火) 12:44 -

引用なし
パスワード
   こんな骨格のものにしたらよいのではないですか?
Sub test()
  Dim k As Long
  Dim r As Range
  
  For k = 1 To 11
    If Cells(2, k).Value = "休暇" Then
      For Each r In Union(Cells(4, k).Resize(7, 1), Cells(15, k).Resize(6, 1))
        'rセルの色が着いてなければ、黒にする。
      Next
    End If
  Next
End Sub
Unionを使わずに、繰り返しを二回書くことでもOKですが、
こうしておくと、色を処理するところが一カ所で済みます。
色をつけるところは、マクロ記録をよくみて検討してください。

なお、基本的な繰り返しが書けないようなら、
まずは教科書をよく読んだり、
その中に書いてあるコードを実際に手打ちして、
動作確認したりすることを優先してやったほうがよいと思います。

148 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free