Excel VBA質問箱 IV

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

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


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

【37500】セルの置き換えで shiro 06/5/9(火) 20:42 質問[未読]
【37502】Re:セルの置き換えで ぱっせんじゃー 06/5/9(火) 20:52 発言[未読]
【37503】Re:セルの置き換えで ponpon 06/5/9(火) 20:55 発言[未読]
【37504】Re:セルの置き換えで shiro 06/5/9(火) 21:05 質問[未読]
【37508】Re:セルの置き換えで ponpon 06/5/9(火) 21:28 発言[未読]
【37512】Re:セルの置き換えで Kein 06/5/9(火) 21:41 回答[未読]
【37513】Re:セルの置き換えで shiro 06/5/9(火) 21:47 質問[未読]
【37514】Re:セルの置き換えで Hiromi 06/5/9(火) 21:56 発言[未読]
【37515】Re:セルの置き換えで ponpon 06/5/9(火) 22:01 発言[未読]
【37518】Re:セルの置き換えで ponpon 06/5/9(火) 22:08 発言[未読]
【37519】Re:セルの置き換えで shiro 06/5/9(火) 22:19 お礼[未読]

【37500】セルの置き換えで
質問  shiro  - 06/5/9(火) 20:42 -

引用なし
パスワード
   例えばA列のセルにランダムにエラー値の“#REF!”や“#DIV/0!”が表示されている時に、
その表示を“Error”と置き換えたい場合はどうすればいいのでしょうか?
どなたか教えて下さい。

【37502】Re:セルの置き換えで
発言  ぱっせんじゃー  - 06/5/9(火) 20:52 -

引用なし
パスワード
   直接の回答ではありませんが・・・。

↓のように式を仕組んでおく、ではだめですか

=IF(ISERROR(B1/C1)=TRUE,"error",B1/C1)

【37503】Re:セルの置き換えで
発言  ponpon  - 06/5/9(火) 20:55 -

引用なし
パスワード
   すべてのエラーですが・・・

Sub test()
  Range("A1", Range("A65536").End(xlUp)).SpecialCells(xlCellTypeFormulas, 16).Value = "Error"
End Sub

【37504】Re:セルの置き換えで
質問  shiro  - 06/5/9(火) 21:05 -

引用なし
パスワード
   早速の回答ありがとうございます。

更に突っ込んだ質問になりますが
A列B列に“#REF!”と表示された部分のみ“Error"と置き換えたくて
行は特に指定が無く、入力されている行までが範囲にしたいのですが。
色々調べているのですが
超初心者で全く進まなく、ここへ辿りつきました。
よろしくお願いします。

【37508】Re:セルの置き換えで
発言  ponpon  - 06/5/9(火) 21:28 -

引用なし
パスワード
   ▼shiro さん:
>更に突っ込んだ質問になりますが
>A列B列に“#REF!”と表示された部分のみ“Error"と置き換えたくて
>行は特に指定が無く、入力されている行までが範囲にしたいのですが。
“Error"と置き換えた場合、元の式はなくなりますが・・・
シート名などは、そちらにあわせてください。

Sub test2()
  Dim myR As Range
  Dim r As Range
  
  With Worksheets("Sheet1")
    Set myR = Application.Intersect(.UsedRange, .Range("A:B"))
    For Each r In myR
     If r.Text = "#REF!" Then
      r.Value = "Error"
     End If
    Next
  End With
End Sub

【37512】Re:セルの置き換えで
回答  Kein  - 06/5/9(火) 21:41 -

引用なし
パスワード
   数式の書き方でそのように表示させるのが、素直な考え方でしょうね。
例えば Sheet50 という名前のシートが存在しないとして

=IF(ERROR.TYPE(Sheet50!IV1/IV2)=4,"Error",Sheet50!IV1/IV2)

などとするとか。

【37513】Re:セルの置き換えで
質問  shiro  - 06/5/9(火) 21:47 -

引用なし
パスワード
   ▼shiro さん:
>早速の回答ありがとうございます。
>
>更に突っ込んだ質問になりますが
>A列B列に“#REF!”と表示された部分のみ“Error"と置き換えたくて
>行は特に指定が無く、入力されている行までが範囲にしたいのですが。
>色々調べているのですが
>超初心者で全く進まなく、ここへ辿りつきました。
>よろしくお願いします。

みなさん、とてもご親切にありがとうございます。
助かります。

何度も図々しいと思いますが、
もう一つだけ教えてください。

上記の応用で
A列には"Error1"、B列には"Error2"と置き換えたい時の
方法はどのようになりますでしょうか?

応用が全く利かず、申し訳ありません。

よろしくお願いします。

【37514】Re:セルの置き換えで
発言  Hiromi  - 06/5/9(火) 21:56 -

引用なし
パスワード
   ▼shiro さん:
ponponさんの使わせて頂いたら?
Sub test21()
  Dim myR As Range
  Dim r As Range
  With Worksheets("Sheet1")
    Set myR1 = Application.Intersect(.UsedRange, .Range("A:A"))
    Set myR2 = Application.Intersect(.UsedRange, .Range("B:B"))
 
    For Each r In myR1
     If r.Text = "#REF!" Then
      r.Value = "Error1"
     End If
    Next
    For Each r In myR2
     If r.Text = "#REF!" Then
      r.Value = "Error2"
     End If
    Next
       
  End With
End Sub

【37515】Re:セルの置き換えで
発言  ponpon  - 06/5/9(火) 22:01 -

引用なし
パスワード
   私も普段は、数式ですませていますが・・・
数式の方法で試されているのでしょうか?
それともマクロの方でしょうか?
マクロの場合は、数式がなくなっていまいますが
それでもよろしいのでしょうか??

数式の場合は、
Keinさんが書かれているように
A列には
=IF(ERROR.TYPE(Sheet50!IV1/IV2)=4,"Error1",Sheet50!IV1/IV2)
B列には
=IF(ERROR.TYPE(Sheet50!IV1/IV2)=4,"Error2",Sheet50!IV1/IV2)
などとすれば、すればよいでしょう。

【37518】Re:セルの置き換えで
発言  ponpon  - 06/5/9(火) 22:08 -

引用なし
パスワード
   マクロであれば、
Sub test3()
  Dim myR As Range
  Dim r As Range
  
  With Worksheets("Sheet1")
    Set myR = Application.Intersect(.UsedRange, .Range("A:B"))
    For Each r In myR
     If r.Text = "#REF!" Then
      Select Case r.Column
       Case 1: r.Value = "Error1"
       Case 2: r.Value = "Error2"
      End Select
     End If
    Next
  End With
End Sub

【37519】Re:セルの置き換えで
お礼  shiro  - 06/5/9(火) 22:19 -

引用なし
パスワード
   みなさん、本当にありがとうございます。
マクロと数式と両方勉強になりました。

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