Script事業案内エクセル以外トップマクロVBAマクロVBA技術解説Evaluateメソッド(文字列の数式を実行します)最終更新日:2020-01-06Evaluateメソッド(文字列の数式を実行します)Evaluateメソッドは、Excelで使用する名前をオブジェクトまたは値に変換します。簡単に説明すれば、セルに入れる数式を文字列としてVBAで実行できます。式.Evaluate(name)式には以下が指定できます。グラフシートです、具体的な使用方法が不明なので解説を省略します。修飾せずにEvaluateとだけ記述した場合はApplicationになります。Evaluateを実際に使用する場合の多くは、修飾せずにApplicationとして使用します。引数nameExcelの名前付け規則を使用した、対象オブジェクトの数式または名前。名前の長さは255文字以下にする必要があります。単一セルに対するA1形式の参照であれば、特に制限はありません。このメソッドでは、参照は常に絶対参照として扱われます。・セル範囲を表す参照演算子(:)・セル参照の共通部分を表す参照演算子(スペース)・セル参照の複数選択を表す参照演算子(,)これらを使用できます。定義された名前シートで定義された名前定義の名前を指定できます。外部参照!演算子を使用して、セルまたは他のブックで定義されている名前を参照することができます。角括弧を使用してコードの記述を短くすることができますが、(変数等を使用した)動的な指定が出来ませんので、VBAで使う機会はかなり限られてきます。Evaluateと角括弧の違いは、引数の数式を文字列で指定できるかどうかにあります。角括弧では直接指定しますが、Evaluateでは引数に文字列を指定できます。したがって、EvaluateではVBA内で作成した文字列が入った変数を使用することができます。[1+2+3]Evaluateは文字列を"ダブルクォーテーションで囲み、文字列データとして引数に指定します。糖衣構文の[]角括弧では直接記述します。]での記述の違い、"ダブルクォーテーイョンで囲むかどうかの違いに注意してください。[Sheet1!A1]上記はいずれもSheet1のA1セルを参照しています。Evaluate("名前1")ここでは分かり易いようにVBAで名前定義していますが、もちろん、事前に定義されている名前定義も使用できます。[SUM(A1:A3)]ワークシートのセルに入れることのできる数式であればEvaluateメソッドの引数として指定できます。Evaluate("=SUM(A1:A3)")このように、先頭の=を含めても構いません。[A1:A3]この結果は、変数aryに配列が入ります。ワークシートの配列定数式も使用できます。1,"yyyy/mm/dd")"このよになります。ワークシートで=からそのまま入れた結果と同じになります。Evaluateメソッドの最後にVBA内において、文字列として作成されている数式を計算する場合は、良い代替手段が無いのでEvaluateを使用してください。セルにその数式を入れてセル値を取得する事で代替え可能ではありますが、Evaluateを使えば簡単に実現できます。VBAでそのようなことが必要になる事は稀でしょう。シート設計およびVBAロジックを適切に作成すれば、Evaluateを使う必要性はあまりないはずです。いえ、有効な代替え手段がない以上、少なくともEvaluateメソッドの存在は把握しておいた方が良いでしょう。以下のページも参考にしてください。文字列でのセル参照と文字列の計算式について(Evaluate,INDIRECT)セルまたはセル範囲を表す文字列からセル参照する場合と、文字列としての計算式から計算する場合です。Next)|VBA入門7.マクロって何?VBAって何?|VBA入門8.セルに文字を入れるとは(Range,Value)|VBA入門9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説10.ひらがな⇔カタカナの変換|エクセル基本操作トップマクロVBAマクロVBA技術解説Evaluateメソッド(文字列の数式を実行します)このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。GASスプレッドシート入門スプレッドシート応用GAS入門GAS応用トップマクロVBAマクロVBA技術解説Evaluateメソッドこのサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。