• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAについてです。該当しない時は"0"と表記したいのですが、どうやっ)

VBAで該当しない場合に「0」と表記する方法について

このQ&Aのポイント
  • VBAで特定の条件に該当しない場合に「0」と表記する方法について教えてください。
  • 質問者さんは、特定の条件に該当するデータがない場合に「0」と表示したいと考えています。
  • 現在のコードでは、関係のない部分まで「0」と変換されてしまっています。どの部分に何を追加すれば良いでしょうか?

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

  • ベストアンサー
  • mo2yakko
  • ベストアンサー率54% (30/55)
回答No.2

最初に0入れちゃえばいいと思います。 'アクティブシートのB列の値を検査「名前」とする For nName = 1 To Cells(Rows.Count, 2).End(xlUp).Row sTargetName = Sheets(nActSheet).Range("B" & nName) '(先に0を入れておく) Range("K" & nName) = 0 Range("M" & nName) = 0 '右側のシートを1シートづつ検査対象シートとする  For nSheet = (nActSheet + 1) To nCount

simogumi
質問者

お礼

ありがとうございました。 思ったとおりに実行できました(o^-^o)

その他の回答 (2)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

こんにちは、参考に Sub Test()   Dim c As Range   Dim ws As Worksheet   Dim meR As Variant   If ActiveSheet.Index = Worksheets.Count Then Exit Sub   For Each c In Range("B1", Cells(Rows.Count, "B").End(xlUp))     Cells(c.Row, "K").Value = 0     Cells(c.Row, "M").Value = 0     For Each ws In Worksheets       If ActiveSheet.Index < ws.Index Then         myR = Application.Match(c.Value, ws.Range("B5:B60"), 0)         If Not IsError(myR) Then           Cells(c.Row, "K").Value = ws.Cells(myR + 4, "N").Value           Cells(c.Row, "M").Value = ws.Cells(myR + 4, "P").Value           Exit For         End If       End If     Next   Next End Sub

simogumi
質問者

お礼

回答ありがとうございました。 そのままコピペしても思ったとおり実行できました(o^-^o) それにしても、こんなのをサクサクっと作れちゃうってスゴイですね。 私ももっと勉強します!!

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

多分ご質問の最も簡単な解決手順としては, 1.先に全部に(初期値としての)ゼロを埋めておく 2.現行のマクロで,該当データはゼロから所定の値に書き換えさせる で十分と思われます。 その上で,ご自分でももっとマクロを勉強してみたいというお話なら。 基本的な制御構造は  If 名前があったら    探して転記する  Else    無かったのでゼロを入れる  End If のようになりそうです。 つまり… <抜粋> '検査対象シートのB列に検査「名前」があるか確認 If Application.WorksheetFunction.CountIf(Worksheets(nSheet).Range("B5:B60"), sTargetName) > 0 Then '---『「名前」があればN、P列の値をアクティブシートのK、M列に入れる』--- Exit For '1つ見つかったらその「名前」の検査は終了 ’↓ここから追加 Else ’---『「名前」が無かったので,どこかの列のどこかの行のセルにゼロを入れる』--- ’このタイミングでどこにゼロを入れたいのか,ご説明ではまだ不明です ’「K列とM列の5行目~34行目まで」にゼロを入れるのでは無さそうです。 ’↑ここまで End If もう少し検討してみてください。

simogumi
質問者

お礼

回答有難うございました。 If 名前があったら   探して転記する Else   無かったのでゼロを入れる End If このタイミングで私もやってみてたんですが、出来なかったので、何で!?でした。 多分「無かったのでゼロを入れる」って命令文が変だったんでしょうね(⌒_⌒;

関連するQ&A