プロが教えるわが家の防犯対策術!

UWSCで、エクセルのセルの値を読みこむ方法について
悩んでおります。

Excel = GETACTIVEOLEOBJ("Excel.Application");
val1 = Excel.ActiveSheet.range("A1").value;
を使えば、開いているエクセルのA1セルにある値を
「val1」に読み込むことができました。

今、A1~A100にある100個のリストを順々に読み込むことを
考えています。おそらくfor文を使って、以下のようにするのかな?
と思っております。
for i=1 to 100
val=○○
next
A1~A100の値を順々に読み込むにはどのようにすればいいのでしょうか?

A 回答 (3件)

Pro版だったらループなんてしなくても、XLGETDATA関数を使えば一発で配列変数に取り込めます。

(UWSCのヘルプにサンプルコードがあります)

Pro版ではない通常UWSCだと、以下の処理で一個ずつ値を引っ張ってくるしかないでしょう。

1)F2キーを押す
2)Shift+Homeを押す
3)Ctrl+Cを押す
4)クリップボードから値を変数に読み込む(GETSTR関数を使用)
5)Enterを押す

という一連の処理を100回繰り返すわけです。
    • good
    • 0

あるいは、



Excel = GETACTIVEOLEOBJ("Excel.Application");
val_a1 = Excel.ActiveSheet.range("A1").value;
val_a2 = Excel.ActiveSheet.range("A2").value;
val_a3 = Excel.ActiveSheet.range("A3").value;

// :

val_b1 = Excel.ActiveSheet.range("B1").value;
val_b2 = Excel.ActiveSheet.range("B2").value;
val_b3 = Excel.ActiveSheet.range("B3").value;

// :

for i = 1 to 3
  loc = "C" + i
  val = Excel.ActiveSheet.range(loc).value;
  print val
next

sleep(3)

のように range に与えるパラメータを loc 変数で取り替えてやるとか。
    • good
    • 2

Excel=GETACTIVEOLEOBJ("Excel.Application")


for r=1 to 50
  val=Excel.ActiveSheet.Cells(r,1).Value
  print val
next
acw(getid(GET_LOGPRINT_WIN),0,0,100,800); sleep(3)
    • good
    • 8

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A