Excel VBA質問箱 IV

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

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


3027 / 13644 ツリー ←次へ | 前へ→

【64651】シート内の特定のセル(条件が一致)の値とコメントをクリアする方法 初心者 10/3/1(月) 19:39 質問[未読]
【64653】Re:シート内の特定のセル(条件が一致)の... 超初心者 10/3/2(火) 9:08 発言[未読]
【64691】Re:シート内の特定のセル(条件が一致)の... 初心者 10/3/8(月) 16:04 質問[未読]
【64693】Re:シート内の特定のセル(条件が一致)の... 超初心者 10/3/8(月) 16:49 発言[未読]
【64696】Re:シート内の特定のセル(条件が一致)の... 初心者 10/3/8(月) 17:43 発言[未読]
【64699】Re:シート内の特定のセル(条件が一致)の... 超初心者 10/3/8(月) 21:23 発言[未読]
【64716】Re:シート内の特定のセル(条件が一致)の... 初心者 10/3/10(水) 9:44 質問[未読]
【64718】Re:シート内の特定のセル(条件が一致)の... 初心者 10/3/10(水) 12:12 お礼[未読]

【64651】シート内の特定のセル(条件が一致)の値...
質問  初心者  - 10/3/1(月) 19:39 -

引用なし
パスワード
   VBA初心者です。
以下の条件でマクロを組みたいと思っています。
ご教授いただければと思います。

▼条件
・範囲は「シート」
・セルの書式設定
  -パターン:網掛け(Interior.Pattern=10)
・上記セルの書式設定と一致するセルの値とコメントのみクリアする。
  -Cells.ClearContents
  -Cells.ClearComments

上記条件の場合はIf文、またはその他で書けるでしょうか?
よろしくお願いいたします。

【64653】Re:シート内の特定のセル(条件が一致)...
発言  超初心者  - 10/3/2(火) 9:08 -

引用なし
パスワード
   ▼初心者 さん:
> 上記条件の場合はIf文、またはその他で書けるでしょうか?
書けますよ^^;;


まずは、
> ・範囲は「シート」
全てのセルを捜査して、条件に一致するものを
探すと良いです。

恐らく、時間が掛かることと思います^^;;
(コード作成も、そのコードの実行結果も)

次に、そのかかる時間を短くするよう考えてみます。
全てのセルから、捜査する範囲を狭めます。
これで、時間短縮が図れるでしょう。

条件によっては更なる時間短縮も可能かと思いますが、
まずは上記の事を試してみましょう。


> VBA初心者です。
であれば尚更。
「マクロ記録」を基にいろいろ試す事によって
スキルアップしていくかと思います。

【64691】Re:シート内の特定のセル(条件が一致)...
質問  初心者  - 10/3/8(月) 16:04 -

引用なし
パスワード
   掲題の件、以下のコードを書きました。

Sub OK_NG_保留_割愛を含むセルをクリア()
  Dim セル As Range

  For Each セル In [A1:CZ1500]
    If セル.Value Like "*OK*" Then
      セル.ClearComments
      セル.ClearContents
    ElseIf セル.Value Like "*NG*" Then
      セル.ClearComments
      セル.ClearContents
    ElseIf セル.Value Like "*保留*" Then
      セル.ClearComments
      セル.ClearContents
    ElseIf セル.Value Like "*割愛*" Then
      セル.ClearComments
      セル.ClearContents
    End If
  Next
End Sub


新たな課題が出ました。
上記ではすべてのセルが対象となってしまいます。

特定のセル(パターン:網掛け(Interior.Pattern=10))だけで
上記マクロが実行されるようにしたいのですが、よい方法ありますでしょうか?
アドバイスありましたらお願いします。

【64693】Re:シート内の特定のセル(条件が一致)...
発言  超初心者  - 10/3/8(月) 16:49 -

引用なし
パスワード
   ▼初心者 さん:

なんか条件が増えているようですが・・・^^;;

とりあえず、

> For Each セル In [A1:CZ1500]
  If セル.Interior.Pattern = 10 Then
>     If セル.Value Like "*OK*" Then
>      セル.ClearComments
>      セル.ClearContents
>     ElseIf セル.Value Like "*NG*" Then
>      セル.ClearComments
>      セル.ClearContents
>     ElseIf セル.Value Like "*保留*" Then
>      セル.ClearComments
>      セル.ClearContents
>     ElseIf セル.Value Like "*割愛*" Then
>      セル.ClearComments
>      セル.ClearContents
>     End If
  End If
> Next

こんな感じでいかがでしょう。

【64696】Re:シート内の特定のセル(条件が一致)...
発言  初心者  - 10/3/8(月) 17:43 -

引用なし
パスワード
   ▼超初心者 さん:

>
>> For Each セル In [A1:CZ1500]
>  If セル.Interior.Pattern = 10 Then
>>     If セル.Value Like "*OK*" Then
>>      セル.ClearComments
>>      セル.ClearContents
>>     ElseIf セル.Value Like "*NG*" Then
>>      セル.ClearComments
>>      セル.ClearContents
>>     ElseIf セル.Value Like "*保留*" Then
>>      セル.ClearComments
>>      セル.ClearContents
>>     ElseIf セル.Value Like "*割愛*" Then
>>      セル.ClearComments
>>      セル.ClearContents
>>     End If
>  End If
>> Next
>
>こんな感じでいかがでしょう。

早速のアドバイスありがとうございます!
上記構文を取り入れて動作チェックしてみました。
エラーはでないのですが、
網掛けセルを含むすべての指定文字&コメントが削除されなくなりました><
これを元に試行錯誤してみます。
また、良い方法やアドバイスありましたらお願いいたします。

【64699】Re:シート内の特定のセル(条件が一致)...
発言  超初心者  - 10/3/8(月) 21:23 -

引用なし
パスワード
   ▼初心者 さん:

> 特定のセル(パターン:網掛け(Interior.Pattern=10))
これを確認してみると良いかもです。

Debug.Print Range("B10").Interior.Pattern
とか。
(B10セルに網掛けされている場合)

>> If セル.Interior.Pattern = 10 Then
によってクリア対象が無くなった、ということは
その可能性が高いです。

【64716】Re:シート内の特定のセル(条件が一致)...
質問  初心者  - 10/3/10(水) 9:44 -

引用なし
パスワード
   ▼超初心者 さん:

いつもためになるご回答ありがとうございます!
勉強の毎日です。

>Debug.Print Range("B10").Interior.Pattern
>とか。
>(B10セルに網掛けされている場合)

Debug.Print Range("E10").Interior.Pattern = 10
上記内容をデバッグで確認したところ、
網掛けのセルなのに”False”が返ってきました。
これは該当セルが網掛けセルではないということでしょうか?

If セル.Interior.Pattern = 10 Then
ではうまく動作しないのでしょうか?

【64718】Re:シート内の特定のセル(条件が一致)...
お礼  初心者  - 10/3/10(水) 12:12 -

引用なし
パスワード
   ▼超初心者 さん:

> If セル.Interior.Pattern = 10 Then

上記、”10”の値を”xlGray”に変更することで
期待していた動作になりました。

まだまだ勉強が必要ですが、1つずつクリアしていきたいと思います。

ありがとうございました。

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