• ベストアンサー

(UWSC)エクセルのセルの値を読み込むには?

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の値を順々に読み込むにはどのようにすればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#194317
noname#194317
回答No.1

Pro版だったらループなんてしなくても、XLGETDATA関数を使えば一発で配列変数に取り込めます。(UWSCのヘルプにサンプルコードがあります) Pro版ではない通常UWSCだと、以下の処理で一個ずつ値を引っ張ってくるしかないでしょう。 1)F2キーを押す 2)Shift+Homeを押す 3)Ctrl+Cを押す 4)クリップボードから値を変数に読み込む(GETSTR関数を使用) 5)Enterを押す という一連の処理を100回繰り返すわけです。

その他の回答 (2)

  • iriyak
  • ベストアンサー率48% (40/82)
回答No.3

あるいは、 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 変数で取り替えてやるとか。

回答No.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)

関連するQ&A

専門家に質問してみよう