Excel VBA質問箱 IV

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

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


11312 / 13644 ツリー ←次へ | 前へ→

【16782】VBAで、数式を入れたい edogawakonan 04/8/9(月) 22:40 質問[未読]
【16784】Re:VBAで、数式を入れたい Asaki 04/8/9(月) 23:12 回答[未読]
【16786】Re:VBAで、数式を入れたい edogawakonan 04/8/9(月) 23:21 質問[未読]
【16787】Re:VBAで、数式を入れたい Asaki 04/8/9(月) 23:31 回答[未読]
【16788】Re:VBAで、数式を入れたい edogawakonan 04/8/9(月) 23:34 お礼[未読]

【16782】VBAで、数式を入れたい
質問  edogawakonan  - 04/8/9(月) 22:40 -

引用なし
パスワード
   みなさん、こんちには。
仕事で、VBAを使っていますが どうしても解決できないので
お知恵をお貸しください。

いま、セルG39に IF関数が入っています。
エクセルを開いた時に条件により、セルG39の関数を消して
「+D49」と セルD49の値と同じにしたいのですが、
VBAで書くと
----------------------------------------------------------
Dim 変更後の関数 As Variant
If Worksheets("入力").Cells(21, 12) = 1 Then     
  変更後の関数 = "+D49"
  Worksheets("result").Cells(39, 7) = 変更後の関数
END IF
----------------------------------------------------------
としているのですが、文字列となってしまいます。

どうしたら、代入値と判断してくれるのでしょうか?
よろしくお願いいたします。

【16784】Re:VBAで、数式を入れたい
回答  Asaki  - 04/8/9(月) 23:12 -

引用なし
パスワード
   こんばんは。

Excelの場合、基本的に数式は イコールで始まるとお考え下さい。
また、Cells() のプロパティを省略するとValueになりますし、解りにくくなるので
省略せずに書いたほうが良いと思います。

Worksheets("result").Cells(39, 7).Formula = "=D49"
ではどうなりますか?

【16786】Re:VBAで、数式を入れたい
質問  edogawakonan  - 04/8/9(月) 23:21 -

引用なし
パスワード
   >Worksheets("result").Cells(39, 7).Formula = "=D49"
>ではどうなりますか?

おおっ!見事に代入式が入りました!
ありがとうございます。

もうひとつ質問してよいですか?

もし、セルD49が、1なら 「良」 それ以外は、「不良」と
書き換えたいのですが、以下では旨くいきません。

Worksheets("result").Cells(39, 7).Formula = "=if(d49=1,"良","不良")"

ダブルフォーテーションを どう処理すれば良いのでしょうか?

【16787】Re:VBAで、数式を入れたい
回答  Asaki  - 04/8/9(月) 23:31 -

引用なし
パスワード
   ダブルクォーテーションの中にダブルクォーテーションを書きたいときは、
その数を2倍にします。
つまり
>"=if(d49=1,"良","不良")"

"=if(d49=1,""良"",""不良"")"

【16788】Re:VBAで、数式を入れたい
お礼  edogawakonan  - 04/8/9(月) 23:34 -

引用なし
パスワード
   ▼Asaki さん:
>ダブルクォーテーションの中にダブルクォーテーションを書きたいときは、
>その数を2倍にします。

希望した通りの動作を確認しました。
ありがとうございました。

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