| 
    
     |  | こんにちは。かみちゃん です。 
 >セルの数式をいれたいのですが、普通の式は(=sum(a1:b5)など)はできるのですが
 >range("a1").formula ="=countif(明細!a1:a10,"病院 日勤")*500" や
 >range("a1").formula ="sum(上セル & ":" & 下セル) " のように
 >文字が入ると、うまく入りません。
 > エラーメッセージは 修正候補:ステートメントの最後 ですので、
 >数値や " や ( の入力ミスかと思うのですが、わかりませんでした。
 
 まず、sum〜の式は、simの前に=が抜けています。
 
 Formulaプロパティは、数式を文字列で設定です。
 文字列で " を示すには、"" とします。
 具体的には、数式の中で 〜,"病院 日勤")
 とするならば、〜,""病院 日勤"")
 とします。
 
 また、変数を使う場合は、" " の間に変数を書くと、変数ではなく、文字列になります。
 
 以下の違いを確認してみてください。
 Sub Test()
 Dim 上セル As String
 Dim 下セル As String
 
 上セル = "A1"
 下セル = "B5"
 
 MsgBox "=SUM(上セル & "":"" & 下セル) "
 MsgBox "=SUM(" & 上セル & ":" & 下セル & ") "
 End Sub
 
 以上のことから、以下のような感じにします。
 
 Sub Sample()
 Dim 上セル As String
 Dim 下セル As String
 
 上セル = "A1"
 下セル = "B5"
 
 Range("A1").Formula = "=COUNTIF(明細!A1:A10,""病院 日勤"")*500"
 Range("A2").Formula = "=SUM(" & 上セル & ":" & 下セル & ") "
 End Sub
 
 ポイントは、2点。
 
 ●" を文字列として書くときは、""とする。
 MsgBox """"
 というような感じ。
 
 ●変数は、" " で囲むと変数の名前の文字列になるという点です。
 以下の違いを確認。
 Sub Test2()
 Dim 変数名 As String
 
 変数名 = "xxx"
 MsgBox "変数名"
 MsgBox 変数名
 End Sub
 
 
 |  |