18

Excel 実値の取得について

バージョンによる取得値の違いについて

このような質問がありまして、WinActorの v6.2.0 と v6.3.0 とで、
Excel操作(値の取得)で、取得する内容が違っていることを認識しました。
Excel操作(値の取得)のスクリプトが

v6.2.0では

SetUMSVariable $格納先変数$, cell.value

v6.3.0

SetUMSVariable $格納先変数$, cell.text

となっているんですね。
「値」を取得するんだからvalue、でいいんじゃないの?と個人的には思いますが、考えがあってtextに変えたんでしょうね。

というわけで、

どっちを取得しているのかはっきりわかるように、選べるようにしてみました。

スクリプトの変更部分は、スクリプトの最後のほうの

‘ ====変数に書き込む==============================================================
SetUMSVariable $格納先変数$, cell.value

の部分を、次のように変更します。

' ====変数に書き込む==============================================================
value_or_text = !取得したいのは?|値(value),表示内容(text)!
If value_or_text = "値(value)" Then
  SetUMSVariable $格納先変数$, cell.value
Else
  SetUMSVariable $格納先変数$, cell.text
End If

(ここまで)

ここでは「Excel操作(値の取得2)」を使います。プロパティ画面はこうなります。

「取得したいのは?」というプルダウンが追加されます。

(注釈も1行追加しました。)

エクセルに「12345」と入力し、それぞれ書式を追加したデータを用意しました。(日付はちょっと強引ですが、12345を日付にしました。)

繰り返しで値を取得して待機ボックスで表示しています。次の図のようになりました。
(最終行はわざとセルの書式設定を文字列にしてから¥12345と入力してます。)

日付と、6行目の文字列設定したものは同じです。

ちなみにわざと列を狭くして、表示内容(text)とすると次のようになります。

きゃー

「値」を取得するんだからvalue、でいいんじゃないの?

と思ってましたが、こうしてみると、小数点以下の表示が欲しい時、もあるかもしれません。
用途に合わせて使い分けるといいですね。

以上です。

スクリプトに詳しい方、IF文のところってこれでいいでしょうか。もし「値(value)なら」と「じゃなければ」と、ちょっと緩い気もしますが、いかがなもんでしょうか。

ちなみに、v6.3.0の変更理由はWinActor_v630_library20200228.pdfによると「日付型のデータを読み込むとシリアル値になる不具合の修正」とあります。逆に、シリアル値にはならない…。

(環境はWinActorv6.2.0、Windows10、Excel2016で作成しました。)

これで、Excel操作(値の取得)でなにを取得してるのか、皆さんの記憶に残れば、幸いです。

この質問は解決済みのためクローズされています。
Zawawa 新しいコメントを投稿
回答とコメントは、会員登録(無料)で閲覧できるようになります。