- ベストアンサー
(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の値を順々に読み込むにはどのようにすればいいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Pro版だったらループなんてしなくても、XLGETDATA関数を使えば一発で配列変数に取り込めます。(UWSCのヘルプにサンプルコードがあります) Pro版ではない通常UWSCだと、以下の処理で一個ずつ値を引っ張ってくるしかないでしょう。 1)F2キーを押す 2)Shift+Homeを押す 3)Ctrl+Cを押す 4)クリップボードから値を変数に読み込む(GETSTR関数を使用) 5)Enterを押す という一連の処理を100回繰り返すわけです。
その他の回答 (2)
- iriyak
- ベストアンサー率48% (40/82)
あるいは、 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 変数で取り替えてやるとか。
- nemutai_sh
- ベストアンサー率57% (23/40)
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)