• ベストアンサー

#N/A を計算式をそのままで”0”表示にしたい

教えてください。 EXCEL VBA のマクロ作成で、 データを他のシートからコピー貼付(形式を選択して貼付の中のリンクの貼付)をします。 すると計算式(VLOOKUP)のある部分は数値がない時、(#N/A)がそのままになってしまいます。"0"表示にしたいのです。 データがある時は、計算結果を表示させるようにする。      10月  11月  12月  1月   2月   3月 Aさん   20   50   3    2   10    7   Bさん   15   30   5    5   12    10 合計    35   80   8    7   22    17 Cさん   #N/A  #N/A  #N/A  #N/A  20   #N/A Dさん   #N/A  #N/A  #N/A  #N/A  #N/A  #N/A 合計    #N/A  #N/A  #N/A  #N/A  20   #N/A  ・  ・  ・ 計算式は消えないようにしたい。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

式を2度かくとか =IF(ISNA(VLOOKUP(A17,$Q$6:$Y$792,9,FALSE)),0,VLOOKUP(A17,$Q$6:$Y$792,9,FALSE))

kuro1019
質問者

補足

ありがとうございました。 できました~。 もうひとつ質問があります。 リンクして貼り付けているのですが リンク元のデータを消してしまうとリンク貼付先のデータが 反映されなくなります。 何か良い方法はありますか? 教えてください。

その他の回答 (2)

  • NYAx2
  • ベストアンサー率27% (3/11)
回答No.3

「EXCEL VBA のマクロ作成」と言われているのですが、どうも関数のみを利用されているようですね。 (1)Excelで新規ファイルを開く。 (2)ワークシート(Sheet1)のセルA1に該当csvファイル名を指定しておく。たとえば、C:\Documents and Settings\DBA\デスクトップ\TEL.csv (3)「Alt」キーを押しながら、「F11」キーを押して、VisualBasicエディタを開く。 (4)「Ctrl」キーと「R」キーを同時に押して、プロジェクトエクスプローラを開く。(表示済の場合、カーソルが次の(5)で示す場所に行きます) (5)プロジェクトエクスプローラの中の、次の「Sheet1(Sheet1)」表記部分をクリックする。  VBAProject(Book1)のMicrosoft Excel ObjectsのSheet1(Sheet1) (6)以下の「Sub macro1()」~「End Sub」のマクロ文を右側に開いたウィンドウに貼り付ける。 (10~11行目の「A」と「H」は適当に修正してください) Sub macro1() ' Dim FileName As String '該当csvファイル名をFileNameに設定 FileName = ActiveSheet.Range("A1").Value 'FileNameのファイルをオープン Workbooks.Open FileName:=FileName '列A~Hの書式設定「表示形式/分類(C)」に「文字列」に設定。 Columns("A:H").Select Selection.NumberFormatLocal = "@" End Sub (7)VisualBasicエディタのツールバーにある「デバッグ(D)」→「VBAProjectのコンパイル(L)」をクリックする。  コンパイルエラーが発生しなければ、OK。 (8)青色の右向きの三角記号をクリックすれば、該当csvファイルを開きます。 (9)VisualBasicエディタを閉じる。 (10)該当csvファイルを閉じるときは、従来と同様、csvファイルとして閉じてください。 (11)そして、Excelワークシートファイルは適当な名前を付けて、保存してください。 (12)次回からは、このExcelワークシートファイルを開いて、上記(2)(3)(4)(5)を順に行い、表示したマクロ文上にカーソルを動かしてクリックしたあと、(8)(9)(10)の順に行えば、OK。

kuro1019
質問者

お礼

ありがとうございます。 1度試してみます。

  • NYAx2
  • ベストアンサー率27% (3/11)
回答No.1

IsError関数をご利用になればよいのでは? 現在の計算結果をIsError関数に入力し、Trueだったら、0表示するように、Falseだったら、そのまま表示と、変更されてはどうでしょうか?

kuro1019
質問者

補足

=ISERROR(VLOOKUP(A17,$Q$6:$Y$792,9,FALSE)) と記述してみたのですがダメでした・・・。 具体的にどのように記述したらいいのか教えてもらえますか?

関連するQ&A

専門家に質問してみよう