Excel VBA質問箱 IV

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

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


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

【70980】UsedRange.SpecialCells(xlCellTypeFormulas)について りんご 12/1/23(月) 11:20 質問[未読]
【70981】Re:UsedRange.SpecialCells(xlCellTypeFor... kanabun 12/1/23(月) 11:43 発言[未読]
【71049】Re:UsedRange.SpecialCells(xlCellTypeFor... りんご 12/1/27(金) 9:46 お礼[未読]
【71056】Re:UsedRange.SpecialCells(xlCellTypeFor... りんご 12/1/27(金) 11:05 質問[未読]
【71058】Re:UsedRange.SpecialCells(xlCellTypeFor... りんご 12/1/27(金) 11:20 お礼[未読]
【71060】Re:UsedRange.SpecialCells(xlCellTypeFor... kanabun 12/1/27(金) 11:22 発言[未読]
【71059】Re:UsedRange.SpecialCells(xlCellTypeFor... kanabun 12/1/27(金) 11:20 発言[未読]

【70980】UsedRange.SpecialCells(xlCellTypeForm...
質問  りんご  - 12/1/23(月) 11:20 -

引用なし
パスワード
   よろしくお願い致します。

次のマクロで、エラーが発生して、NextSheet へ飛んでくれません。
intShIndxのシート中に計算式が1つも入っていないため、エラーとなっています。
Book内の全てのシートで、関数が設定されているかどうかのチェックをしているのですが、何か良い方法はありますか?


実行時エラー '1004'
該当するセルが見つかりません。


    On Error GoTo NextSheet
    
    Set Sh = Worksheets(intShIndx)
  
    Set Rng = Sh.UsedRange.SpecialCells(xlCellTypeFormulas)

【70981】Re:UsedRange.SpecialCells(xlCellTypeF...
発言  kanabun  - 12/1/23(月) 11:43 -

引用なし
パスワード
   ▼りんご さん:

>Book内の全てのシートで、関数が設定されているかどうかのチェックをしている
>のですが、
>intShIndxのシート中に計算式が1つも入っていないため、エラーとなっています。

参考までに、もし私が同じチェックをするとしたら、
こう書きます。
Sub Check1()
  Dim sh As Worksheet
  Dim r As Range
  For Each sh In ActiveWorkbook.Worksheets
    Set r = Nothing
    On Error Resume Next '該当セルがなくても エラーで中断しない
    Set r = sh.UsedRange.SpecialCells(xlCellTypeFormulas)
    On Error GoTo 0
    If r Is Nothing Then
      MsgBox "数式はありません", , sh.Name
    Else
      MsgBox "このシートには " & r.Count & "個の数式があります"
    End If
  Next
End Sub

【71049】Re:UsedRange.SpecialCells(xlCellTypeF...
お礼  りんご  - 12/1/27(金) 9:46 -

引用なし
パスワード
   ▼kanabun さん:

ありがとうございます。
お礼が遅くなり、申し訳ありません。

ご参考までにのVBAに仕様を追加して、式が入っていない時でもエラーとならないようになりました。
どうもありがとうございます。

ただ、私の作成したVBAで「On Error GoTo」 を使用していたのに、なぜ飛んで行ってくれなかったのな。というのが不思議です。

【71056】Re:UsedRange.SpecialCells(xlCellTypeF...
質問  りんご  - 12/1/27(金) 11:05 -

引用なし
パスワード
   ▼kanabun さん:

確かにエラーは無くなったのですが、下記について教えて下さい。

シートの中に式がいくつあるかは、表示ができましたが、例えばシートの中に2つ式があった時に

「セルA1と、B1に式がある。」

というところまで情報が欲しいのです。
ウオッチで r.countで個数を表示していたので、rの中身を見てみましたが、セル情報は探すことができませんでした。

このセル情報の取り出し方を教えて下さい。

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

【71058】Re:UsedRange.SpecialCells(xlCellTypeF...
お礼  りんご  - 12/1/27(金) 11:20 -

引用なし
パスワード
   ▼りんご さん:

For Each MyRng in Rng を入れて、セルを取ってくることができました。

お騒がせ致しました。

【71059】Re:UsedRange.SpecialCells(xlCellTypeF...
発言  kanabun  - 12/1/27(金) 11:20 -

引用なし
パスワード
   ▼りんご さん:

>シートの中に式がいくつあるかは、表示ができましたが、例えばシートの中に2つ式があった時に
>「セルA1と、B1に式がある。」
>というところまで情報が欲しいのです。

>Dim r As Range
 Dim c As Range
と変数を追加しておいて
>    Else
>      MsgBox "このシートには " & r.Count & "個の数式があります"
のあとに
       For each c In r
         Debug.Print c.Address
       Next
と3行追加すれば、UsedRange.SpecialCells(xlCellTypeFormulas) コレクション
内の 個々のセル番地が イミディエイト・ウィンドウに表示されます。

【71060】Re:UsedRange.SpecialCells(xlCellTypeF...
発言  kanabun  - 12/1/27(金) 11:22 -

引用なし
パスワード
   ▼りんご さん:

>For Each MyRng in Rng を入れて、セルを取ってくることができました。

あ、タッチの差でした(^^)

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