【踊ってみた同好会(仮)】Excel操作(値の取得)って、何を取得しているかはっきりさせたい!と思ってたら、v7.1ではっきりしていた!
このような質問がありまして、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操作(値の取得)でなにを取得してるのか、皆さんの記憶に残れば、幸いです。