アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。アドバイスを宜しくお願いします。

関数を使って数式を入れた表を作成しているのですが
今回は入力しない所が数箇所ありまして入力していない
箇所を参照しているところや関連のシートにまでエラー値が
表示されてしまいます。

こういった、今回に限ってという場合(特定して決めることが出来ないセル)
に表示されるエラー値を非表示にする方法があれば教えていただきたいんです。
実際のところできるのでしょうか?
エラー値は#N/Aです。

どうか宜しくお願い致します。

A 回答 (5件)

=ISERROR(数式,"",数式)


これでエラー値は表示されなくなると思います。
数式は今使っていてエラーの出る数式をそのまま入力してください。
    • good
    • 0

>>(特定して決めることが出来ないセル) ... エラー値を非表示にする方法



は無いと思います。(0 を非表示にするのと同じように、#N/A を非表示に
は出来ない。)

 全ての、計算結果が表示されるセルに、以下の数式を入れなければなり
ません。


=if(A1="","",A1*B1)

 A1 が ""(ヌル・未入力)の場合は、無表示にし、その他は A1*B1

=if(A1=0,"",B1/A1)
=if(A1<>0,B1/A1,"")

 A1=0 の場合は、""(ヌル)を表示=非表示(0 での除算を回避)

=if(A1="","",(if(A1=0,"",B1/A1)))

 A1 が、

 ・ "" の場合は ""、
 ・ 0 の場合は ""、
 ・ その他の場合は、計算式(B1/A1)を実行


など、if 文と、"" (ヌル)を組み合わせる方法など。
 
    • good
    • 0

全ての算式に、If や isNA や isError を付けるのは大変でしょう。



ErrorHidden を実行すると、エラー表示のセルを探して式を変更してエラーを非表示にします。
FormulasFukugen を実行すると、書き換えた算式を元に戻します。
こういう質問だったのでしょうか? ご参考に。

標準モジュールに貼り付けます。

'*************************
'エラーの算式を書き換える
'*************************
Public Sub ErrorHidden()
  Dim rg As Range 'セル
  Dim fm As String '算式

  'エラーのあるセルを選択する
  ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas, xlErrors).Select
  For Each rg In Selection
    fm = rg.Formula
    'エラーを非表示にするユーザー定義関数に書き換える
    '元の算式をユーザー定義関数『fncErrorTrp』の引数にしてしまう
    rg.Formula = "=fncErrorTrp(" & Mid(fm, 2) & ")"
  Next
End Sub

'**************************************
'書き換えたエラーのあった算式を元に戻す
'**************************************
Public Sub FormulasFukugen()
  Dim rg As Range 'セル
  Dim fm As String '算式

  '算式のあるセルを選択する
  ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas).Select
  For Each rg In Selection
    fm = rg.Formula
    'エラーを非表示にするユーザー定義関数が使ってあれば元に戻す
    If InStr(fm, "fncErrorTrp(") > 0 Then
      fm = Application.Substitute(fm, "fncErrorTrp(", "")
      fm = Left(fm, Len(fm) - 1)
      rg.Formula = fm
    End If
  Next
End Sub

'************************************
'エラーを非表示にするユーザー定義関数
'************************************
Public Function fncErrorTrp(fm)
  If IsError(fm) Then
    fncErrorTrp = ""
  Else
    fncErrorTrp = fm
  End If
End Function

この回答への補足

参考にしたいのですが、内容が私には高度すぎてわからないのです。
まず標準モジュールというのはどこにあるのでしょうか?
テンプレートとかのことですか?

エラーを非表示にするユーザー定義関数を利用したいと
思っています。できれば作成まで(どこを開いて貼り付けるのか)
を簡単でいいので教えて頂きたいのですが。

大変すみませんが宜しくお願いします。

補足日時:2002/03/06 17:38
    • good
    • 0

失礼しました。

説明不足でした。

まず、ツール→マクロ→Visual Basic Editor でVBE画面に移り、
挿入→標準モジュール で標準モジュールを挿入します。
ANo.#3のマクロをコピーして、コードウインドウ(広い部分)に貼り付けます。

コピーするのはANo.#3の『標準モジュールに貼り付けます。』より下の行全てです。

貼り付けが終わったら、シートに戻り、

ツール→マクロ→マクロで
 ErrorHidden を実行するとエラー表示のセルを探して式を変更してエラーを非表示にします。非表示にするのはシート単位としてあります。

ツール→マクロ→マクロで
 FormulasFukugen を実行すると、書き換えた算式を元に戻します。
    • good
    • 0
この回答へのお礼

ありがとうございました。
本当に助かりました。

お礼日時:2002/03/07 15:03

結果として必要なのが一枚のシートである場合、


別の個所に結果を移してはいかがでしょう?
その際、エラーが出た場合はなにも表示させないようにして…。

=IF(Sheet!A1<>"",Sheet!A1,"")
というのをズラーっと必要なところまでコピーする手はいかがでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!