Excel VBA質問箱 IV

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

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


4691 / 13644 ツリー ←次へ | 前へ→

【55156】セルの値がエラー(#N/A)になるまで繰り返す処理の書き方 かおり 08/4/17(木) 13:56 質問[未読]
【55157】Re:セルの値がエラー(#N/A)になるまで繰... ハチ 08/4/17(木) 14:29 回答[未読]
【55161】Re:セルの値がエラー(#N/A)になるまで繰... わいわい 08/4/17(木) 15:15 発言[未読]
【55158】Re:セルの値がエラー(#N/A)になるまで繰... Jaka 08/4/17(木) 14:32 発言[未読]
【55159】あ、 Jaka 08/4/17(木) 14:36 発言[未読]
【55164】Re:セルの値がエラー(#N/A)になるまで繰... かおり 08/4/17(木) 16:52 お礼[未読]

【55156】セルの値がエラー(#N/A)になるまで繰り...
質問  かおり  - 08/4/17(木) 13:56 -

引用なし
パスワード
   こんにちは!
いつもこちらでは大変お世話になっております、m(_ _)m

現在AD列に、下方向へ「=$B2&$L2」という数式を入れて、
B2とL2のテキストをくっつけた値をAC列には表示させています。

B列とL列の値は限りがあるので、
下の行に行くとデータがなくて“#N/A”という表示になります。

AD列をつかってDo Until〜Loop分で

  Dim AA As String 
  Range("AD2").Select
  Do Until ActiveCell.Value = "" '空欄になるまで繰り返す命令
    AA = ActiveCell.Value 
    Select Case AA
      Case "あいうえお" '
       ActiveCell.FormulaR1C1 = "あ行"
       ActiveCell.Font.ColorIndex = 3
      Case "かきくけこ"
       ActiveCell.FormulaR1C1 = "か行"
       ActiveCell.Font.ColorIndex = 3
      Case "さしすせそ"
       ActiveCell.FormulaR1C1 = "さ行"
       ActiveCell.Font.ColorIndex = 3
    End Select
    ActiveCell.Offset(1, 0).Select '一つ下のセルを選択
  Loop

という構文を作りましたが、上記では
「セルの値が空欄になるまで繰り返す処理」なので、
やはり途中からAC列が"#N/A"になっているので、そこでVBが止まってしまいます。。

エラー("#N/A")になるまで処理を繰り返す構文はどのように書けばよろしいのでしょうか??

大変お手数ですが、ご教授よろしくお願いいたします。m(_ _)m

#当方、Excel2000ユーザーです。

【55157】Re:セルの値がエラー(#N/A)になるまで...
回答  ハチ  - 08/4/17(木) 14:29 -

引用なし
パスワード
   ▼かおり さん:
>  Do Until ActiveCell.Value = "" '空欄になるまで繰り返す命令

  Do Until WorksheetFunction.IsNA(ActiveCell.Value)

でどうでしょうか?

【55158】Re:セルの値がエラー(#N/A)になるまで...
発言  Jaka  - 08/4/17(木) 14:32 -

引用なし
パスワード
   あまりコードに手を入れないで書くとこんな感じ。
終りの条件はあくまでも空欄として。(#N/Aエラーのときは続きます。)

  Dim AA As String
  Range("AD2").Select
  Do Until ActiveCell.Value = "" '空欄になるまで繰り返す命令
    AA = ActiveCell.Value
    Select Case AA
      Case "あいうえお" '
       ActiveCell.Value = "あ行"
       ActiveCell.Font.ColorIndex = 3
      Case "かきくけこ"
       ActiveCell.Value = "か行"
       ActiveCell.Font.ColorIndex = 3
      Case "さしすせそ"
       ActiveCell.Value = "さ行"
       ActiveCell.Font.ColorIndex = 3
    End Select
    ActiveCell.Offset(1, 0).Select '一つ下のセルを選択
    Do Until Not IsError(ActiveCell.Value)
      ActiveCell.Offset(1, 0).Select
    Loop
  Loop

【55159】あ、
発言  Jaka  - 08/4/17(木) 14:36 -

引用なし
パスワード
   >セルの値がエラー(#N/A)になるまで
でしたね。

【55161】Re:セルの値がエラー(#N/A)になるまで...
発言  わいわい  - 08/4/17(木) 15:15 -

引用なし
パスワード
   かおりさん、ハチ さん Jakaさん こんにちは

Do Until IsError(ActiveCell)
Do Until ActiveCell.Text = "#N/A"

こんなんでもOK!?

「=$B2&$L2」で #N/A になります??

【55164】Re:セルの値がエラー(#N/A)になるまで...
お礼  かおり  - 08/4/17(木) 16:52 -

引用なし
パスワード
   ハチ さん、わいわいさん、Jakaさん、助けていただいてありがとうございました!!

無事、出来るようになりました。。。\(^o^)/

Do Until WorksheetFunction.IsNA(ActiveCell.Value)
Do Until IsError(ActiveCell)
Do Until ActiveCell.Text = "#N/A"

のどれでもいけました☆

ほんとうにありがとうございました。とても助かりました!

またよろしくお願いします。m(_ _)m

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