• ベストアンサー

エクセルVBでセルの内容が関数かどうかを調べる

初歩的な質問で恐縮ですが エクセル2002で特定のセルに"=SUBTOTAL"などの関数が入っているかどうかを調べる場合の方法を教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんにちは。 HasFormulaプロパティを使えばできますよ。 ------------------------------------- Sub test() Dim c As Range Set c = Range("C1") If c.HasFormula Then MsgBox "数式または関数です" Else MsgBox "関数ではありません" End If End Sub

try2003
質問者

お礼

早速試してみました。 うまく動きました。 初歩的な質問にもかかわらず ご回答いただきどうもありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

#1ですが、もう1歩 Sub test01() Dim cl As Range For Each cl In Selection If cl.HasFormula Then MsgBox cl.Formula End If Next End Sub でどうですか。式はcl.Formulaで捉えられます。 式の入っているか調べる範囲を多めに指定して、上記を 実行してください。For Each cl In Range("A1:H10") のようにもできます。 If LEFT(cl.Formula,9)="=SUBTOTAL" Then などとも出来るでしょう。

try2003
質問者

お礼

このように書くと探す範囲を指定するのが楽ですね。 大変参考になりました。 どうもありがとうございます。

関連するQ&A

  • excelでSUBTOTAL関数を設定したのですが、オートフィルタをか

    excelでSUBTOTAL関数を設定したのですが、オートフィルタをかけるとSUBTOTAL関数を設定したセルが消えてしまいます。 セルが消えないようにするにはどうすればいいんでしょうか。

  • エクセルの関数について

    エクセルの関数について教えてください。 エクセルでセルを参照した関数を作る時、参照元が空欄の場合"#VALUE"と表示がでるのですが、出ないようにするにはIF文で条件を設定していますが、もっと簡単な方法はないでしょうか? 初歩的な質問ですみません。

  • 特定の関数が含まれるセルを塗潰したい

    特定の関数が含まれるセルを塗潰したい エクセルである特定の関数(たとえばSUM)が含まれるセルを 塗潰したい場合、どのような式なら可能でしょうか。 出来れば条件付き書式だと嬉しいです。 よろしく御願いします。

  • Excelで一つ下のセルを関数で、かつ可視セルで

    Excelの関数についての質問です。 一つ下のセルを関数で参照したいのですが、 その場合、フィルターで非表示となったセルも参照されてしまいます。 ※OFFSET関数だとそうなります。 そこで質問です。 可視セル限定で一つ下のセルを参照する方法はありませんでしょうか。 よろしくお願いします。

  • エクセル関数について

    エクセルで質問です。 例えば下記の数字全体を検索して 7があったら1と特定のセルに表示 2があったら1と特定のセルに表示 3があったら1と特定のセルに表示 といったように、数字のある数ではなく、 その数字が1つでもあったら1とカウント、 なければ0といったカウントの方法を したいのですが単純なカウント関数では 上手くできません。 どんな関数式を使用すれば良いでしょうか? 7 1 2 3 4 3 2 3 3

  • エクセルのsubtotal関数でcountifと同様、もしくは近い機能はありますか?

    エクセルのsubtotal関数でcountifと同様、もしくは近い機能はありますか?100以上のセルの数を数えたいのですが、非表示セルを数えたくないのです。countifでは非表示にしているセルも対象に入れてしまいます。そこでネットで調べていたら、subtotalなら非表示は対象に入らないとの記載を発見しました。でもcountifの機能がないようにも思っています。私はエクセル初心者です。どなたか詳しい方教えてください。

  • Excelの関数がわかりません

    ExcelでSubtotalによって抽出されたデータを、Sumproduct関数で種類の数をカウントする方法がわかりません。 それぞれ、=subtotal(3,範囲) =SUMPRODUCT(1/COUNTIF(範囲,範囲)) までは、出来上がっておりますが、上記を組み合わせると数式エラーが発生します。 どのように組み合わせればよいか、または、全く違う方法があるのか是非お教えいただきたいと思います。

  • エクセル関数:表示セルのデータのみ合算する方法について

    初心者のため、表現等に不備がございましたらお許し下さい。 マニュアルで「表示しない」の設定を行ったセル(行)のデータは無視して、表示されているセルのデータのみ足し算したいのですが、このような関数はございますでしょうか?(※オートフィルタ使用しません。)回答例として「オートフィルタ+SUBTOTAL」は拝見したのですが、任意の非表示セルを無視する方法が分からず苦慮しております。初歩的なのかもしれませんが、ご教授頂きたく宜しくお願い致します。

  • エクセル関数について

    エクセル関数について質問があります 例えば 「ある範囲内(b1:b7)に特定の数値(1)があれば、その特定の数値のセルの横の数値を返す」 ような数式は作れますか? 一応私なりに試しました 「 if(b1=1,a1,0)+if(b2=2,a2,0)+if(b3=1,a3,0)+...+if(b7=1,a7,0) この場合、特定の数値1がb5にあれば数式を入れたセルにa5の数値が入ります 」 ですがもっとシンプルな方法がないかと思い質問させていただきました

  • エクセル DATE関数について

    初歩的な質問です。エクセル2002のDATE関数で =date(2008,a1,b1) の計算値が参照セルを未入力ですと2007/11/30になります。例えばa1に8,b1に15と入力すれば、2008/8/15 のようにちゃんと表示されるのですが。未入力でもシリアル関数に2008の数値でこのように表示されてしまうのでしょうか。セル未入力の場合、計算値が表示されないようにする方法はあるのでしょうか。

専門家に質問してみよう