• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelのVBAで質問です。)

ExcelのVBAでデータ処理・エラーの解決方法

このQ&Aのポイント
  • ExcelのVBAを使用して、データ処理を行いたい場合、以下のようなコードを組むことができます。しかし、○の個数を数える部分でエラーが発生することがあります。エラーを解決するためには、セルの範囲指定に注意する必要があります。
  • データが入力されたセルの範囲を指定する際、ActiveSheet.Range()の引数にCells()関数を使用します。引数には、範囲の開始セルと終了セルを指定します。しかし、Cells()関数は、指定した範囲内にあるセルの値を取得するために使用されるため、Range()関数内で使用するとエラーが発生します。
  • エラーを解決するためには、範囲の開始セルと終了セルを直接指定する必要があります。たとえば、Cells(i, 2)を指定する場合は、Range("B" & i)と記述します。このように変更することで、エラーが解消され、正常に動作するようになります。

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

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

cnt = WorksheetFunction.CountIf(ActiveSheet.Range(Cells(i, 2), Cells(i, 256)), "○") ここで○が無かった場合cntは0になるので j = 3 * cnt はJ=0になります ですので kakunin = Cells(i, j) は列0を指すのでエラーとなります。アプリケーション定義またはオブジェクト定義のエラー

rose1224
質問者

お礼

確かにそうでした!! If cnt = 0 Then j = 3 Else j = 3 * cnt End If に変更したことで、解決しました。 お世話になりました。

その他の回答 (3)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.4

たとえば ○ だけの例ですが If Target.Column = 3 And Target.Row >= 6 Then For Each c In Range(Target.Address) If Cells(c.Row, Target.Column) = "○" Then Range(Cells(c.Row, Target.Column + 1), Cells(c.Row, Target.Column + 2)).Interior.ColorIndex = xlNone Else Range(Cells(c.Row, Target.Column + 1), Cells(c.Row, Target.Column + 2)).Interior.ColorIndex = 15 End If Next End If こんな感じではいかがですか。

noname#157410
noname#157410
回答No.2

補足 Cellの列と行を間違っているようなふしはありますが Cellを使う場合(行,列) Rangeは(列行)ですが。 そこらへん見直せば治ると思います。

rose1224
質問者

お礼

回答ありがとうございます。 Cells(行,列)は理解しています。 原因は他にありました。 お世話になりました。

noname#157410
noname#157410
回答No.1

○を数えるところではERRは出ていません 下記のところでひかかってます。 見ているセルがおかしいと思いますが? F8でデバッグしてみてください。 Date関数のところに○を呼び込もうとしてERRになってます date1 = Cells(i, j + 1) date2 = Cells(i, j + 2)

関連するQ&A