Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2007)
関数入りのセルを判定
投稿日時: 21/07/01 13:20:50
投稿者: o_taroh

関数の入ったセルをIF関数で判定したいのですが条件になんと入れればいいか教えて下さい。

回答
投稿日時: 21/07/01 13:30:49
投稿者: sk

引用:
関数の入ったセルをIF関数で判定したいのですが

「あるセル(例えば A1 セル)が数式セルであるか否かを判定したい
(何らかのワークシート関数が使用されているかどうかはどうでもいい)」のか、
「ある数式セルの数式の中で何らかのワークシート関数(例えば SUM 関数)が
記述されているか否かを判定したい」のか、どちらなのでしょうか。

投稿日時: 21/07/01 13:56:01
投稿者: o_taroh

早速ありがとうございます、ワークシート関数というのかどうかは知識不足でわかりませんが、こんな関数が入っています、よろしくお願いします。
=IF(AND(AL13<>"",AM13<>""),SUM(AL13:AM13),"")

回答
投稿日時: 21/07/01 14:05:43
投稿者: sk

引用:
=IF(AND(AL13<>"",AM13<>""),SUM(AL13:AM13),"")

あるセルに対してそういう数式が入力されているということは
分かりましたが、そのセルの何について判定されたいのでしょうか。

回答
投稿日時: 21/07/01 14:14:01
投稿者: mattuwan44

>ワークシート関数というのかどうかは
ワークシート上で使える関数(=数式としてセルに入力できる関数)かな?
例示の数式ではIF関数とかSUM関数とかAND関数を使われてますよね?
 
 
https://www.relief.jp/docs/002731.html
https://www.relief.jp/docs/001232.html
 
まぁ、わからないことは、用語を含めて色々調べてみてはいかがでしょうか?

回答
投稿日時: 21/07/01 15:12:21
投稿者: sk

例えば、以下のような「数式の中にどのワークシート関数も
記述されていないセル」も立派な数式セルです。
 
(定数同士による足し算の結果を返す数式)
----------------------------------------------------------------
 
=1+10
 
----------------------------------------------------------------
 
(別のセルを参照してその値を返す数式)
----------------------------------------------------------------
 
=A1
 
----------------------------------------------------------------
 
(別のセルの値と定数の足し算の結果を返す数式)
----------------------------------------------------------------
 
=A1+10
 
----------------------------------------------------------------
 
「関数の入ったセル」という表現は、総称としての「数式セル」から
上記のようなセルを除外して「何らかのワークシート関数が数式に
含まれているセル」を指したものであると解釈できます。
 
しかし、当初のご質問の意味やその目的が抽象的であることから、
o_taroh さんが「数式」のことを「関数」と呼称されている可能性が
あると思われたため、まずは認識のすり合わせを行なう意味で
前述通りに回答しました。
 
以上のことを踏まえられた上で、o_taroh さんが知りたいのは
どのようなことであるのか、より具体的に明記されることを
お奨めします。

回答
投稿日時: 21/07/01 15:37:36
投稿者: WinArrow
投稿者のウェブサイトに移動

具体的に説明しましょう。
 

(1)=IF(AND(A1=0,B1=0),SUM(C1:C3),"")
(2)=A1+B1
(3)=100*10
 
(1)には、IF関数、AND関数、SUM関数がはいっています。
(2)には、関数は、入っていません。
(3)は、セル参照のしていません。
 
この例で、どのパターンを判定したいのでしょか?
 
申し添えておきますが
IF関数では、無理でしょうね・・・

回答
投稿日時: 21/07/01 15:51:10
投稿者: mattuwan44

再度読み返してみました。
 
 >関数の入ったセルをIF関数で判定したいのですが条件になんと入れればいいか
 
とあるセルに「数式」が入っているか否かを、
「Ifステートメント」により、条件分岐をして、
処理を分けたいような場合、どうしたらよいか。

 
と、読み替えていいのでしょうか?
用語の理解もVBAの基礎かと思います。

回答
投稿日時: 21/07/01 16:27:55
投稿者: simple

Rangeオブジェクトの HasFormulaプロパティが使えるのでは?
ヘルプを参照ください。
 
逆に、そういうセルだけ取得したいなら、
Rangeオブジェクトの
.SpecialCells(xlCellTypeFormulas)
で限定できます。

投稿日時: 21/07/02 18:01:07
投稿者: o_taroh

皆さん種々のアドバイスありがとうございます。肉親に不幸がありまして少しコンピューターから離れていたため大変失礼しました、また落ち着いてから再度ご指導願うことにして、今回はこれにて終了させていただきます。
ありがとうございました。