Excel VBA質問箱 IV

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

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


24620 / 76738 ←次へ | 前へ→

【57466】Re:セルに数式を入れたいのですが。。
発言  かみちゃん  - 08/8/25(月) 0:05 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>セルの数式をいれたいのですが、普通の式は(=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

1 hits

【57465】セルに数式を入れたいのですが。。 らくしゅん 08/8/24(日) 23:53 質問
【57466】Re:セルに数式を入れたいのですが。。 かみちゃん 08/8/25(月) 0:05 発言
【57468】Re:セルに数式を入れたいのですが。。 らくしゅん 08/8/25(月) 17:09 お礼

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