みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

EXCELのワークシート関数をVBAに書き直す。

お世話になります。

Excel2013において、以下のワークシート関数の処理をVBAに書き直すにはどうしたら良いでしょう?

=IF(ISBLANK($C4),"",IF(COUNTIF($C$4:$C4,$C4)>1,"重複しています。",INDEX(顧客!$A:$M,1,SUMPRODUCT(((顧客!$A:$M=$C4)*COLUMN((顧客!$A:$M)))))))

投稿日時 - 2015-02-02 13:50:02

QNo.8909560

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

でしたら、どぞ。
http://www.moug.net/tech/exvba/0100035.html

セルの値はCellsで引っ張るか、Rangeで参照しないといけないので
その式のままだと長くなりすぎます。C4などの値をいったん変数で
受け取って処理した方が良いと思います。

投稿日時 - 2015-02-02 15:19:29

補足

またまたすみません。WorksheetFunctionを使わず、VBAのステートメントで書けないかなと思ったのです。ごめんなさい。よろしくお願いします。

投稿日時 - 2015-02-06 13:55:51

ANo.1

そいつを、セルに書き出す・・・ってことですか?
それとも、関数として、VBAの中で値を計算するってことですか?

セルに書き出すだけなら、

Cells(x,y)="=IF(ISBLANK(・・・(以下記入されている算式)"

で行けますよ。ただし、式の中にある「"」は「""」に書き直さないと
そこで「文字列」が切れてしまい、正しい式になりませんので、
注意して下さい。

投稿日時 - 2015-02-02 13:57:35

補足

すみません。言葉足らずでした。
セルに書き出すのではなく、表記の関数をVBAの中で計算し、結果を指定セルに代入したいのです。よろしくお願いします。

投稿日時 - 2015-02-02 14:15:55

あなたにオススメの質問