Excel VBA質問箱 IV

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

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


6034 / 13646 ツリー ←次へ | 前へ→

【47550】範囲選択の問題(長いです) Mia 07/3/14(水) 16:20 質問[未読]
【47553】Re:範囲選択の問題(長いです) ウッシ 07/3/14(水) 16:53 発言[未読]
【47559】Re:範囲選択の問題(長いです) Mia 07/3/14(水) 17:29 質問[未読]
【47555】Re:範囲選択の問題(長いです) Mia 07/3/14(水) 17:07 質問[未読]
【47557】Re:範囲選択の問題(長いです) ウッシ 07/3/14(水) 17:17 発言[未読]
【47558】Re:範囲選択の問題(長いです) Mia 07/3/14(水) 17:25 質問[未読]
【47566】Re:範囲選択の問題(長いです) ウッシ 07/3/14(水) 22:05 回答[未読]
【47568】Re:範囲選択の問題(長いです) Mia 07/3/15(木) 9:28 お礼[未読]

【47550】範囲選択の問題(長いです)
質問  Mia  - 07/3/14(水) 16:20 -

引用なし
パスワード
   A〜G列(常に固定)に、名前、社員番号、連絡先、出勤時間、退社時間などの情報があり、G列に出勤・退社時間を計算した「勤務時間」があります。
そこで、作成したマクロは;

1.G列が空欄なら、その行(A〜G列まで)すべての背景を薄いグレー、文字を濃いグレーに、条件付き書式で変更。

2.新しいシートへ書き出し

というものです。
しかし、行は常に変動するため、問題が起きています。
設定をしたときは、行が37までしかなかったので、その後、行を追加しても、37行目以降のものはすべて削除されて抽出されてしまいます。

長いですが、以下を見ていただけると助かります。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Sub Macro6()

  Sheets("Conference Report").Select
  Sheets("Conference Report").Copy
  ActiveSheet.Shapes("Rectangle 1").Select
  Selection.Cut
  ActiveSheet.Shapes("Rectangle 4").Select
  Selection.Cut
  Range("B8").Select
  Selection.ClearContents
  Rows("7:9").Select
  Selection.Delete Shift:=xlUp
  Rows("7:7").Select
  Selection.Delete Shift:=xlUp
  Range("B9").Select
  ActiveWindow.SmallScroll Down:=15
  Range("G19:G200").Select
  Selection.FormatConditions.Delete
  Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
    Formula1:="="""""
  Selection.FormatConditions(1).Font.ColorIndex = 16
  Selection.FormatConditions(1).Interior.ColorIndex = 15
  ActiveWindow.SmallScroll Down:=9
  Range("A19:F37").Select
  Selection.FormatConditions.Delete
  Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$G19="""""
  Selection.FormatConditions(1).Font.ColorIndex = 16
  Selection.FormatConditions(1).Interior.ColorIndex = 15
  Range("A18").Select
  Selection.End(xlDown).Select
  Selection.End(xlToRight).Select
  ActiveWindow.SmallScroll Down:=0
  Range("A19:F200").Select
  ActiveWindow.SmallScroll Down:=-66
  Selection.FormatConditions.Delete
  Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$G19="""""
  Selection.FormatConditions(1).Font.ColorIndex = 16
  Selection.FormatConditions(1).Interior.ColorIndex = 15
  ActiveWindow.SmallScroll Down:=3
  Range("A19").Select
  Selection.End(xlDown).Select
  Selection.End(xlToRight).Select
  ActiveWindow.SmallScroll Down:=9
  Rows("38:221").Select
  Selection.Delete Shift:=xlUp
  Range("A37").Select
  Selection.End(xlUp).Select
  ActiveWindow.SmallScroll Down:=-27
  Range("A10").Select
End Sub
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

本当に初心者で、こんなことをすることじたいが正しいのかも分かりません。
どなたか、ご教授いただけますでしょうか。
よろしくお願いします。

【47553】Re:範囲選択の問題(長いです)
発言  ウッシ  - 07/3/14(水) 16:53 -

引用なし
パスワード
   こんにちは

同じような処理やスクロールのコードまで有って、本当は何をしたいのかが読み取れません。

多分、この程度の処理かと思います。

Sub Macro6()
  Dim lstR As Long
  Sheets("Conference Report").Copy
  With ActiveSheet
    .Shapes("Rectangle 1").Cut
    .Shapes("Rectangle 4").Cut
    .Rows("7:10").Delete Shift:=xlUp
    
    lstR = .Range("A" & .Rows.Count).End(xlUp).Row
    With .Range("A19:G" & lstR).FormatConditions
      .Delete
      .Add Type:=xlExpression, Formula1:="=$G19="""""
      .Item(1).Font.ColorIndex = 16
      .Item(1).Interior.ColorIndex = 15
    End With
  End With
End Sub

別ブックにしていいのかも分かりません。

【47555】Re:範囲選択の問題(長いです)
質問  Mia  - 07/3/14(水) 17:07 -

引用なし
パスワード
   >ウッシさん

さっそくのご回答ありがとうございます。
そうですよね・・・無駄にスクロールをしてしまったため、本当に分かりづらいと思います。すみません・・・

ちなみに、新しいブックへの書き出しが必須です。
元のファイルは、
行の1〜21まで、タイトルや情報やマクロのボタンなどがあり、
22行目から本当に必要な情報があります。

新しいブックに読み込まなくてはいけないのは、
行の7〜10を抜かしたものです。
つまり、元のファイルの11行目にあるものが、新しいシートでは、7行目から始まらないといけない、というわけです。

要望が多すぎて、すごく分かりづらいと思います。
引き続き、教えていただけると本当に助かります。

【47557】Re:範囲選択の問題(長いです)
発言  ウッシ  - 07/3/14(水) 17:17 -

引用なし
パスワード
   先ほどのコードではダメでしたか?

>元のファイルの11行目にあるものが、新しいシートでは、7行目から
になっていると思います。

>ボタン
とかは分からないので、元のコードに有った削除のコードは残して有ります。

【47558】Re:範囲選択の問題(長いです)
質問  Mia  - 07/3/14(水) 17:25 -

引用なし
パスワード
   ウッシさん

先ほどのコードで試してみました。
最初にかかえていた問題(行が途中で切れてしまうもの)は見事解決していました!
ただし、なぜかすべての行が灰色になってしまいます。
それぞれの行のG列がカラの場合、その行だけを灰色にするにはどうしたらよいでしょうか?

でも本当にすごいです。
私が1週間以上も悩んでいた問題を一瞬で解決してしまうなんて・・・

【47559】Re:範囲選択の問題(長いです)
質問  Mia  - 07/3/14(水) 17:29 -

引用なし
パスワード
   ウッシさん

今試してみたら、G列が空欄ではないところまでグレーになってしまいました。
行の7〜10をDeleteすることに原因でもあるのでしょうか?

何度も何度もすみません。。。

【47566】Re:範囲選択の問題(長いです)
回答  ウッシ  - 07/3/14(水) 22:05 -

引用なし
パスワード
   こんばんは

>なぜかすべての行が灰色になってしまいます。
>      .Add Type:=xlExpression, Formula1:="=$G19="""""
の部分を
>      .Add Type:=xlExpression, Formula1:="=RC7="""""
に変更して下さい。

【47568】Re:範囲選択の問題(長いです)
お礼  Mia  - 07/3/15(木) 9:28 -

引用なし
パスワード
   ウッシさん

ウッシさんに教えていただいたとおりでできました!
本当に本当に嬉しいです!!!!

ありがとうございます。心から感謝しております。
本当にありがとうございました。

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