- ベストアンサー
※ 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コード内の式において、シングルクォーテーション(')やダブルクォーテーション(")のエスケープが正しく行われていなかったためです。正しいエスケープを行うことで、エラーを修正することができます。
- みんなの回答 (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
その他の回答 (1)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
回答No.1
目視の確認ですが、 INT(AVERAGE("H11:BN11") ここのダブルクォーテーション2つが邪魔してますよ。 他は見つけてません。
質問者
補足
早速の御返事ありがとうござしました。 指摘していただいたとおりに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,"でした。すみません。)
お礼
ありがとうございました。問題なくできました。こんなに簡単な式になるのですね。感激です。(^o^)v