• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA アプリケーション定義エラー・・・について)

VBA アプリケーション定義エラーについて

このQ&Aのポイント
  • エクセルで表現すれば、=IF(OR($G11='',COUNTIF(H11:BN11,'k')>0),'',INT(AVERAGE(H11:BN11)*10+0.5)/10))という式をVBAで記述した際に、アプリケーション定義エラーまたはオブジェクト定義エラーが発生しました。
  • 以下のコードを使用して、やりたいことを実現することができます。 ```VBA For i = 1 to 410 Sheets('評定').Cells(i + 10, 79).Formula = '=IF(OR($G' & i + 10 & '=' & Chr(34) & '' & Chr(34) & ',COUNTIF(''H11:BH11,' & Chr(34) & 'k' & Chr(34) & '>0),' & Chr(34) & '' & Chr(34) & ',INT(AVERAGE(''H11:BN11')*10+0.5)/10))' Next i ```
  • エラーが発生した原因は、VBAコード内の式において、シングルクォーテーション(')やダブルクォーテーション(")のエスケープが正しく行われていなかったためです。正しいエスケープを行うことで、エラーを修正することができます。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 単純に Sub Sample1() Range(Cells(11, 79), Cells(420, 79)).Formula = "=IF(OR($G11="""",COUNTIF(H11:BN11,""k"")>0),"""",INT(AVERAGE(H11:BN11)*10+0.5)/10)" End Sub ではどうでしょうか? ※ 相対参照にしていますが、絶対参照の場合は「$」マークを通常の関数のように追加してください。 ※ 検証はしていませんので的外れならごめんなさいね。m(_ _)m

moodesu
質問者

お礼

ありがとうございました。問題なくできました。こんなに簡単な式になるのですね。感激です。(^o^)v

その他の回答 (1)

回答No.1

目視の確認ですが、 INT(AVERAGE("H11:BN11") ここのダブルクォーテーション2つが邪魔してますよ。 他は見つけてません。

moodesu
質問者

補足

早速の御返事ありがとうござしました。 指摘していただいたとおりにSheets("評定").Cells(i + 10, 79).Formula = "=IF(OR($G" & i + 10 & "=" & Chr(34) & "" & Chr(34) & ",COUNTIF(H11:BH11," & Chr(34) & "k" & Chr(34) & ">0)," & Chr(34) & "" & Chr(34) & ",INT(AVERAGE(H11:BN11)*10+0.5)/10))"としてみましたが、やはり同じエラーになります。(因みにCOUNTIF("H11:BH11,"は打ち間違いで、COUNTIF(H11:BN11,"でした。すみません。)

関連するQ&A