はじめに
Sequence MakerはExcelから測定器を制御可能にするアドインです。Sequence Makerは様々なシーケンスを自由に組むことができますが、Sequence Maker専用コマンドを組み合わせるとより複雑な処理を行うことができます。この記事ではExcelの数式を計算して結果を出力できる「#EVAL?」コマンドについて解説していきます。なお、Sequence Makerについての詳細は以下の記事を参照ください。
お断り
本記事の内容はSequence Maker開発元の公式見解ではなく、あくまでも個人が趣味の範囲内で執筆しているものです。記事の内容について開発元へ問い合わせることはお控えください。ご質問・要望などは各記事のコメント欄へお願いいたします。
「#EVAL」コマンド
専用コマンド | 機能 |
---|---|
#EVAL?(数式) | 数式を計算して結果を出力します。 数式はExcelの数式と同じ形式です。 |
(https://sequencemaker.hioki.com/manual/ja/#command より引用)
「#EVAL」コマンドは、マニュアルにあるように、Excelの数式を計算してその結果を出力することができるコマンドです。・・・と言ってもイメージがつきませんよね実際に試してみるとこんな感じです。
=NOW() というのはExcelの関数で、現在日時を返します。#KF(ON)を先にやっているのは、あらかじめセルに設定しておいた表示フォーマットを勝手に変更されないためです。これをやらないと、結果がシリアル値(45642.8922099537とか)で表示されてしまいます。
ちなみに、表示フォーマットも指定すると以下のような感じです。
用途その1:セルをコピーする
こんな感じに書いたら、F3~F7のセルの内容をH5へコピーできるのでは…と思って試してみたところ・・・
「System.__ComObject」というエラーが表示されてしまいました。これは何のエラーなのでしょうか。。。
これではダメなので、セルの指定の後に「&""」というのを付けて試してみます。「&」は本来文字列を連結させるために使用するのですが、なぜかこれを付けておくと・・・
うまくいきます。こんな感じで、シート上のデータを別の場所に転記したい場合に使えます(セル参照ではなく)。
用途その2:セルの計算を行う
こんな感じに書くと、F3のセルの値がものすごい勢いでカウントアップしていきます。C4のセルの数式を変更すれば、減算や乗算、除算なんかもできます。何か繰り返し測定時にカウンター変数として使うことができるかもしれません。
用途その3:おみくじを作る
#EVAL?はSequence Makerでおみくじを作るときに便利です。おみくじを作るときは、=RANDBETWEEN(1,5)関数を使って1~5の乱数を発生させます。そして乱数の結果をVLOOKUPでおみくじテーブルから拾ってきます。#EVALを使わずに、D4のセルに直接=RANDBETWEEN(1,5)と書くとどうなるでしょうか。なんと!Excelが再計算するたびにおみくじの結果が変わってしまいます。せっかく「大吉」が出ても、どこかセルを編集した瞬間に結果がコロコロ変わってしまいます。
おみくじに限らず、シーケンス動作中に乱数が欲しい場合は役立ちますね!
まとめ
今回は「#EVAL」コマンドについて紹介し、3つの用途を紹介しました。他にも工夫次第で便利な使い方があるかもしれません。