[ 掲示板に戻る ]

過去ログ閲覧モード

起動させたいファイルをドロップ&ドロップで複数回起動する方法 / タカハシ
デスクトップにあるtesu.uws - ショートカットに複数回起動させたいファイルをドロップ&ドロップする事で起動させる方法ないでしょうか?

下記のコードでやってもうまくできません。エラーが出ます。(file not found c\usersdesktop\param_str[1].uws)

[tesu.uws]
input("D&Dされたファイル名 又は フルパス取得",param_str[1])
for i = 1 to 3
call param_str[1]
next

[tesu.uws - ショートカット]
tesu.uws - ショートカットのプロパティにあるリンク先には、下記を入力。

"C:\Program Files (x86)\UWSC\UWSC.exe" C:\Users\aruke\Desktop\tesu.uws

No.3236 2016/12/02(Fri) 16:33:33
指定した数のチェックボックスを自動で押していきたい / たろこ
指定した数のチェックボックスを自動で押していきたいと思っています。
社内で使うアプリのため、IE等ではありません。

1.Enter等ではチェックを入れることが出来ない
2.リストボックスのチェックボックスに見える
3.チェックボックスに名前は無いのかもしれない(不明)
4.記録してみたが、何もデータは残ってなかった(対象ウィンドウを選択した履歴のみ)
5.画面上に見えている、チェックボックスを左上から順番に押していければ良い

たぶん、やらないといけないのは以下のことだと思います。
 チェックボックスのアイテム名取得(毎回変わる、または無いために取得しないといけないはず)

上記はどのようにしたら取得できますか?
また、他に良い方法があれば教えて下さい。よろしくお願いいたします。

No.3217 2016/11/29(Tue) 10:42:18

Re: 指定した数のチェックボックスを自動で押していきたい / stuncloud
以下はちょっとした思いつきで確証はありません

// 1、3、5個目のチェックボックスにチェックを入れる
for n in split("1 3 5")
 clkitem(id, "", CLK_BTN or CLK_SHORT, TRUE, n)
next

名前を空にしてCLK_SHORTを加えることであらゆるボタンを対象とします

n に入るのはチェックボックスの他に通常のボタン、ラジオボタンも含めた順番を表す数字です
これに関してはどれが何番かは地道に確かめていくしかないです
例えばこんなのでOKを押す度にどれかがクリックされていくので番号とクリックされた場所を控えておく

for i = 1 to 100
 msgbox(i)
 ret = clkitem(id, "", CLK_BTN or CLK_SHORT, TRUE, i)
 print i + " " + ret
 if ret = BTN_CANCEL then break
next

全く押せないようならCLK_BTNをCLK_ACCに変更してみましょう

そもそもclkitem()では押せない可能性もあります

No.3218 2016/11/29(Tue) 15:38:49

Re: 指定した数のチェックボックスを自動で押していきたい / たろこ
stuncloud様

回答頂きありがとうございます。試してみます!

No.3222 2016/12/01(Thu) 09:02:49
POS関数と演算子の組み合わせについて / sana
お世話になっております。

@case pos("aaa",STS) and (pos("bbb",STS) , pos("ccc",STS))
Acase pos("aaa",STS) and (pos("bbb",STS) or pos("ccc",STS))

@Aは同じ意味かと思いますが、@は「型があっていない」とエラー表示されます
仕様でしょうか?

No.3219 2016/11/30(Wed) 09:59:13

Re: POS関数と演算子の組み合わせについて / stuncloud
> @は「型があっていない」とエラー表示されます
原因はこれです
> (pos("bbb",STS) , pos("ccc",STS))
式の中に , があるせいです
(1)の式は完全に誤りであり、(2)と同一ではありません

(2)を見る限り文字列STS中に aaa が含まれ、かつ bbb または ccc が含まれればTRUEを返す条件式が欲しいということだと思いますが、実はこのままでは正しく動作しません
and、or演算子について思い違いがあるようなのでそちらの説明をしたいと思います

先ず理解しなくてはならないのは、uwscにおいて数値同士にand/or演算子を用いた場合はビット演算になるということです
例えば
・aaa が2文字目、bbbが4文字目で見つかりcccは存在しない場合
にはTRUEが返ることを期待するでしょうが、そうはいきません
式に直すと以下になります
2 and (4 or 0)
これを計算すると、先ず括弧内が計算され
2 and 4
となり最終的に
0
が返ります、0なのでFALSEと評価されてしまいます

解決策は単純で、それぞれのpos()で文字列が見つかった場合にTRUEを返すようにしてあげるだけです
pos()で文字列が見つかった場合は確実に0以上が返るので、以下のようにします

pos("aaa",STS) > 0 and (pos("bbb",STS) > 0 or pos("ccc",STS) > 0)

and/orにはビット演算子という性質もあるよ、ということを覚えておいてもらいたかったのでその点に触れましたが、実際のビット演算についての説明は省きます
興味があるようでしたらビット演算について調べてみてください
場合によってはコードを書く上でとても便利な手法となり得ます

No.3220 2016/11/30(Wed) 11:38:08

Re: POS関数と演算子の組み合わせについて / sana
stuncloud様

ご丁寧にありがとうございました
期待通りの結果になりました
>and/orにはビット演算子という性質もある
最終的に0が返るというところがまだ理解できていないので、勉強してみます

ありがとうございました

No.3221 2016/11/30(Wed) 11:55:43
IE11のタブ毎の操作について / みつ
お世話になっております。

IE11で一つのIEでタブ1、タブ2、タブ3を作成し、それぞれ操作したいのですが、
タブ1ばかり操作してしまいます。
タブ2、タブ3を選ぶ方法を教えていただけないでしょうか?

新しいタブは以下で作成しました。

CONST navOpenInNewTab = $800
  IE.navigate("UAL", navOpenInNewTab)

よろしくお願いします。

No.3197 2016/11/25(Fri) 13:11:01

Re: IE11のタブ毎の操作について / しろまさ
// オブジェクトの取り方の基本。後は加工してね。(URLだよね?)

Dim i, sh = CREATEOLEOBJ("Shell.Application"), wi = sh.Windows
For i = 0  To wi.Count - 1
  If wi.Item[i] = NOTHING Then Continue
  Try
    Ifb  wi.Item[i].Name = "Internet Explorer"
      IE  = wi.Item[i]
      MsgBox(IE.Document.Title + "<#CR>" + IE.LocationURL)
    EndIf
  Except
  EndTry
Next

// んで、慣れてくると「選択されたタブオブジェクト」がきっと取りたくなると思うのですが、
// http://siromasa.html.xdomain.jp/uwsc/u_term/InternetExplorerApplication.html
// 20150710 複数タブを使用するときのメモリの効率化を考えてみる。(Presented by しゅん)
// も参考にして下さい^^

No.3199 2016/11/25(Fri) 16:21:57

Re: IE11のタブ毎の操作について / みつ
しろまさ様

加工したらばっちり動きました。
また、サイトも教えて頂きありがとうございました。

まだまだ勉強します。

ありがとうございました。

No.3216 2016/11/27(Sun) 08:21:16
配列をセルに一括で代入する方法 / 藍
いつもお世話になります。
配列をセルに代入したいと思っていますがうまくいきません。
A1 ← Excel B1 ← word C1 ← access

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.add()
//
Dim tmp[2]
//
tmp[0] = "Excel"
tmp[1] = "Word"
tmp[2] = "Access"
EXCEL.Range("A1:C1") = tmp

よろしくお願いします。

No.3206 2016/11/26(Sat) 15:01:01

Re: 配列をセルに一括で代入する方法 / Nagatani
XLSetData(EXCEL,tmp,"A1")になります。
No.3210 2016/11/26(Sat) 17:24:21

Re: 配列をセルに一括で代入する方法 / 藍
ありがとうございました。
No.3215 2016/11/26(Sat) 21:43:41
キーワード組み合わせ作成をエクセルに入力する方法 / タカハシ
配列からエクセルファイルにXLSETDATAを使用して入力をしたいのですが、XLSETDATA( Excel, STR,"a"+num)の行がエラーと出ます。どこが間違っているのでしょうか?

DIM str1[] = "大阪","名古屋"
DIM str2[] = "観光","場所"

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
Excel.WorkBooks.Open(FileName :="C:\Users\aruke\Dropbox\2-キーワードエクセル\キーワード.xlsx")
XLACTIVATE( Excel, "Sheet1")

FOR num = 0 TO length(str1)-1

FOR cnt = 0 TO length(str2)-1
STR = str1[num] + " " + str2[cnt]
XLSETDATA( Excel, STR,"a"+num)
NEXT

NEXT

No.3200 2016/11/25(Fri) 20:39:35

Re: キーワード組み合わせ作成をエクセルに入力する方法 / Nagatani
XLSETDATA( Excel, STR,"a"+num)
書き込むセル番地がA列の0行目だから、Excelには0行目はないから
XLSETDATA( Excel, STR,"a"+num+1)

No.3202 2016/11/25(Fri) 21:44:11

Re: キーワード組み合わせ作成をエクセルに入力する方法 / タカハシ
Nagatani様、返信ありがとうございます。XLSETDATA( Excel, STR,"a"+num+1)で試した所、A1とA11に出力されるだけになってしまいます。何か良い方法ないでしょうか?
私の方で試した事は下記ですが、A1だけに出力されるだけです。

DIM str1[] = "大阪","名古屋"
DIM str2[] = "観光","場所"
EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
Excel.WorkBooks.Open(FileName :="C:\Users\aruke\Dropbox\2-キーワードエクセル\記事タイトル_画像_キーワード.xlsx")
XLACTIVATE( Excel, "Sheet1")

for i = 1 to length(str1)-1

FOR num = 0 TO length(str1)-1

FOR cnt = 0 TO length(str2)-1
STR = str1[num] + " " + str2[cnt]
XLSETDATA( Excel, STR,"a" + i)
NEXT

NEXT

next

No.3203 2016/11/26(Sat) 10:45:01

Re: キーワード組み合わせ作成をエクセルに入力する方法 / タカハシ
一応下記のコードでできました。かなり回りくどいやり方ですが...

DIM str1[] = "大阪","名古屋"
DIM str2[] = "観光","場所"
EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
Excel.WorkBooks.Open(FileName :="C:\Users\aruke\Dropbox\2-キーワードエクセル\記事タイトル_画像_キーワード.xlsx")
XLACTIVATE( Excel, "Sheet1")

FOR num = 0 TO length(str1)-1

FOR cnt = 0 TO length(str2)-1
STR = str1[num] + " " + str2[cnt]
print STR
NEXT

NEXT

pid = getid(GET_LOGPRINT_WIN)
text = getstr(pid, 1, STR_ACC_EDIT)
SENDSTR(0,text)
Excel.Range("A1").PasteSpecial()  // 貼り付け

No.3204 2016/11/26(Sat) 10:52:26

Re: キーワード組み合わせ作成をエクセルに入力する方法 / 俄プログラマー
文字と数字の計算結果を組み合わせるには
"a"+num+1
ではダメです。正しくは
"a"+(num+1)

補足
配列分のループなら
For In Next 文を使うとスマートです。

No.3205 2016/11/26(Sat) 11:23:12

Re: キーワード組み合わせ作成をエクセルに入力する方法 / タカハシ
俄プログラマー様、"a"+(num+1)は知らなかったです、ありがとうございます。
下記のコードで試しましたが、うまくいきません。

DIM str1[] = "大阪","名古屋"
DIM str2[] = "観光","場所"
EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
Excel.WorkBooks.Open(FileName :="C:\Users\aruke\Dropbox\2-キーワードエクセル\記事タイトル_画像_広告キーワード.xlsx")
XLACTIVATE( Excel, "Sheet2")
kazu=1
kazu1=length(str1)+(str2)

for z = kazu to kazu1

for i in str1

for y in str2

STR = i + " " + y
xlsetdata(excel, str, "a"+z)

next

next

next

No.3207 2016/11/26(Sat) 16:09:44

Re: キーワード組み合わせ作成をエクセルに入力する方法 / タカハシ
下記のコードでもやってみました。
//A11A12A21A22に、大阪 名古屋×観光 場所の組み合わせが出力される
//したい処理、A1からA4に出力

DIM str1[] = "大阪","名古屋"
DIM str2[] = "観光","場所"

EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
Excel.WorkBooks.Open(FileName :="C:\Users\aruke\Dropbox\2-キーワードエクセル\記事タイトル_画像_広告管理\経理転職キーワード.xlsx")
XLACTIVATE( Excel, "Sheet2")

FOR num = 0 TO length(str1)-1

FOR cnt = 0 TO length(str2)-1
STR = str1[num] + " " + str2[cnt]
XLSETDATA( Excel, STR,"a"+(num+1)+(cnt+1))
NEXT

NEXT

No.3208 2016/11/26(Sat) 16:11:19

Re: キーワード組み合わせ作成をエクセルに入力する方法 / Nagatani
私だったらカウンターを付けます。
Counter=1
FOR num = 0 TO length(str1)-1
FOR cnt = 0 TO length(str2)-1
STR = str1[num] + " " + str2[cnt]
XLSETDATA( Excel, STR,"A"+(Counter))
Counter=Counter+1
NEXT
NEXT

右記の式では("a" + (num + 1)) = "a1"となりますが
先に数値を足しこまないと("a" + num + 1) = "a01"となります

No.3209 2016/11/26(Sat) 17:10:12

Re: キーワード組み合わせ作成をエクセルに入力する方法 / 俄プログラマー
>A11A12A21A22に、大阪 名古屋×観光 場所の組み合わせが出力される

A1〜A4に出力させる前に理解して欲しい事
なぜ失敗したのか?これを解決すると今後役に立つでしょう。
まずは二重for文を使った場合のfor文の動きを理解してほしいです。

"a"+(num+1)+(cnt+1)
num=0 cnt=0の時
"a" + (0+1) + (0+1)
先に()内が計算されて
"a" + (1) + (1)
となり
"a" + 1 + 1

"a11"
になります。

つまり二重にfor文を使った場合は順番に
num = 0 , cnt = 0 結果 a11
num = 0 , cnt = 1 結果 a12
num = 1 , cnt = 0 結果 a21
num = 1 , cnt = 1 結果 a22

と言う動きになります。
どんな動きをするかはnumの値、cntの値、計算結果をprint文を使って表示してみると分かり易いですよ。

No.3211 2016/11/26(Sat) 18:58:21

Re: キーワード組み合わせ作成をエクセルに入力する方法 / タカハシ
Nagatani様、ありがとうございます。無事希望通りの出力できました。
Counter=1という発想がまったく自分では思いつかなかったです。
下記のコードでできました、ありがとうございます。

Counter=1
FOR num = 0 TO length(str1)-1

FOR cnt = 0 TO length(str2)-1
STR = str1[num] + " " + str2[cnt]
XLSETDATA( Excel, STR,"A"+(Counter))
Counter=Counter+1
NEXT

NEXT

No.3212 2016/11/26(Sat) 19:39:47

Re: キーワード組み合わせ作成をエクセルに入力する方法 / タカハシ
俄プログラマー様、分かりやすい説明ありがとうございます。
下記の説明でイメージがつかめました。
もっと、UWSC使いこなせるように精進していきます。
num = 0 , cnt = 0 結果 a11
num = 0 , cnt = 1 結果 a12
num = 1 , cnt = 0 結果 a21
num = 1 , cnt = 1 結果 a22

No.3213 2016/11/26(Sat) 19:45:07

Re: キーワード組み合わせ作成をエクセルに入力する方法 / タカハシ
Nagatani様、俄プログラマー様のおかげでfor inでやる方法も無事できました。
ありがとうございます。

DIM str1[] = "大阪","名古屋"
DIM str2[] = "観光","場所"
EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
Excel.WorkBooks.Open(FileName :="C:\Users\aruke\Dropbox\2-キーワードエクセル\記事タイトル_画像.xlsx")
XLACTIVATE( Excel, "Sheet2")
Counter=1
for i in str1

for y in str2

STR = i + " " + y
xlsetdata(excel, str, "A"+(Counter))
Counter=Counter+1
next

next

No.3214 2016/11/26(Sat) 19:51:00
配列に入れて文字列加工について / タカハシ
textblockのnamをsplitで配列に入れて、配列の各URLをタグの中に入れたいのですが、できません。
どこが間違っているのでしょうか?エラーは、getvalue:variant or safe array index out of bounds9行目 エラーと出ます。

したい処理が下記です。
<div align="center">https://aaa</div>;
<div align="center">https://bbb</div>;
<div align="center">http://ccc</div>;

[コード]
textblock nam
https://aaa
https://bbb
http://ccc
endtextblock

tes=split(nam)
for i = 0 to length(tes)
print "<div align=<#DBL>center<#DBL>>"+tes[i]+"</div>"
next

No.3187 2016/11/24(Thu) 23:08:43

Re: 配列に入れて文字列加工について / stuncloud
> variant or safe array index out of bounds
iが配列範囲を越えたからです
> for i = 0 to length(tes)
これを
for i = 0 to length(tes) - 1
にします
配列の要素が3つだった場合添字は0〜2になるからです
(length()は配列の要素の数を返します)

あと、textblockの複数行をsplitする場合は区切り文字を<#CR>にします
tes=split(nam, "<#CR>")

こういう場合は配列の添字の心配をする必要のないfor-inがおすすめ

for url in split(nam, "<#CR>")
 print "<div align=<#DBL>center<#DBL>>" + url + "</div>"
next

No.3190 2016/11/25(Fri) 09:42:01

Re: 配列に入れて文字列加工について / タカハシ
stuncloud様、いつもありがとうございます。for i = 0 to length(tes) - 1の-1にずっと気づかなかったです。for-in、こんな便利な関数あったのですね。知らなかったです。
No.3201 2016/11/25(Fri) 20:42:34
アプリが実行中かどうかの判断方法について / にゃんこ
アプリが実行中かどうかの判断をしたいです。

戻値 = CPUUSERATE( ) ではcpu全体の負荷が計測できるようですが
アプリ単体でのcpuの負荷を取ることはできるのでしょうか?

No.3189 2016/11/25(Fri) 09:33:48

Re: アプリが実行中かどうかの判断方法について / stuncloud
> アプリが実行中かどうかの判断をしたいです。
単純に実行されてるかどうかであれば以下のようにします

----------------------------------------------------
// 探したいプロセスの名前
name = "notepad.exe" // メモ帳の場合

// UWSCの機能だけで探す、ただし遅い
counter = 0
for id in getallwin()
 if pos(name, status(id, ST_PATH)) > 0 then
  counter = counter + 1
 endif
next
msgbox(name + " は " + counter + " 個動いてます")

// WMIを使う、早い
locator = createoleobj("WbemScripting.SWbemLocator")
server = locator.ConnectServer()
queryResult = server.ExecQuery("SELECT * FROM Win32_Process WHERE name = '" + name + "'")
msgbox(name + " は " + getoleitem(queryResult) + " 個動いてます")
----------------------------------------------------

> アプリ単体でのcpuの負荷を取ることはできるのでしょうか?
CPU使用率を取得したいということであれば以下の記事を参考にしてください
https://stuncloud.wordpress.com/2013/08/19/uwsc_perfmon/
IEの1秒間のCPU使用率とメモリ使用量を取得するサンプルです

> PdhVbAddCounter(hQuery, "\Process(iexplore)\% Processor Time", counter_iexplore_cpuuserate)
「iexplore」の部分を任意のプロセス名に変更する感じですね
(notepad.exeならnotepadを入れる)

No.3191 2016/11/25(Fri) 10:23:20

Re: アプリが実行中かどうかの判断方法について / にゃんこ
計測したいのはCCleanerなので
> PdhVbAddCounter(hQuery, "\Process(CCleaner)\% Processor Time", counter_iexplore_cpuuserate)
にしてみましたが、cpu利用率が0%のままで習得できていないようです。

修正せずに
> PdhVbAddCounter(hQuery, "\Process(iexplore)\% Processor Time", counter_iexplore_cpuuserate)
を実行しても、cpu利用率が0%のままで習得できていないようです。

windows8.1 ie11です
実行するにあたって何か必要な設定はありますか?

No.3192 2016/11/25(Fri) 11:16:39

Re: アプリが実行中かどうかの判断方法について / しろまさ
// WMIで個別ならこれでいけそうですが、どうでしょう?(タスクマネージャの数字とは異なる)
Dim pid = Status(GetID(" - Internet Explorer"), ST_PROCESS)
Ifb pid > 0
  with CreateOleObj("WbemScripting.SWbemLocator")
    with .ConnectServer
      GetOleItem( .ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfProc_Process WHERE IDProcess = " + pid) )
      MsgBox(ALL_OLE_ITEM[0].PercentProcessorTime)
    endwith
  endwith
EndIf

No.3193 2016/11/25(Fri) 11:22:52

Re: アプリが実行中かどうかの判断方法について / にゃんこ
ありがとうございました。
解決できました。

No.3194 2016/11/25(Fri) 11:34:31

Re: アプリが実行中かどうかの判断方法について / stuncloud
> 実行するにあたって何か必要な設定はありますか?
なにをされてそうなったのかわからないのでなんとも…

計測期間中にCPUを使っていなければ0%になりますし
round()関数で丸めているのでごくわずかな使用率だと0に丸められてしまうかもしれません
僕の環境で計測開始直前に ie.navigate() をしておいたら 2% となりました
スクリプト自体に問題はありません

計測のタイミングや計測時間に問題があるのではないでしょうか
例えばアプリを10秒間動かしてその間のCPU使用率を得たいのであればアプリ開始から計測を初めてアプリ終了までの10秒間計測を続ける必要があります
(応用で、1秒間隔で10回計測すればどの時点で高い数値を出したかがわかります)

あとは、round()関数の丸め桁を負の数で指定して少数も含めた値を出すとか、そもそもround()で丸めないとか

No.3195 2016/11/25(Fri) 12:05:51

Re: アプリが実行中かどうかの判断方法について / stuncloud
しろまささん>
Win32_PerfFormattedData_PerfProc_Process なんてクラスがあったんですね
記事を書いた当時もWMIでできないのかなって探した記憶はあるんですが…当時の自分に教えたい!

No.3196 2016/11/25(Fri) 12:30:42

Re: アプリが実行中かどうかの判断方法について / しろまさ
このクラス、XPの頃には無かった気がするんですけどね。
先ほど検索したらあっさり出てきました^^ WMI久しぶりに触ったw

No.3198 2016/11/25(Fri) 16:19:39
IEのスクロールバーを操作したい / nakanishi
初めてまして。

IEタブ内でFlashオブジェクトの自動操作を行っているのですが、
その際にオブジェクトの左上端をタブ表示領域内の左上端に設定(移動?)できないかと、
スクロールバーを操作しようと思ったのですが、
何れのウィンドウにスクロールバーが存在するのか不明なため、
下記スクリプトで何れのウィンドウにスクロールバーがあるのか調査してみました。


DIM id=GETID("xxx - Windows Internet Explorer")
DIM h=GETCTLHND(id,"MacromediaFlashPlayerActiveX")

PRINT id+":"+h

id=HNDTOID(h)
WHILE id>-1
PRINT STATUS(id,ST_PARENT)+":"+STATUS(id,ST_TITLE)+":"+STATUS(id,ST_CLASS)
PRINT GETSLIDER(id,1,SLD_MAX)
PRINT GETSLIDER(id,2,SLD_MAX)
PRINT
id=HNDTOID(h)
WEND


上記スクリプトを実行したところ、
出力結果は次のとおりとなりました。

1:27331518

3::MacromediaFlashPlayerActiveX
-999999
-999999

4::Internet Explorer_Server
-999999
-999999

5::Shell DocObject View
-999999
-999999

6:xxx - Windows Internet Explorer:TabWindowClass
-999999
-999999

1::Frame Tab
-999999
-999999

-1:xxx - Windows Internet Explorer:IEFrame
-999999
-999999


この結果から、IEのスクロールバーが何れのウィンドウにも存在しないように見受けられるのですが、
これはいったいどういうことなのでしょうか?

当方の、スクロールバーに対する誤認識なのでしょうか?

ご教授いただける方がいらっしゃいましたら、
よろしくお願いします。

No.3183 2016/11/23(Wed) 17:19:04

Re: IEのスクロールバーを操作したい / nakanishi
追記:

対象タブにはスクロールバーが存在しており、
手動ではスクロールできている状態です。


書き忘れてしまい、
すいませんでした。

No.3184 2016/11/23(Wed) 17:21:13

Re: IEのスクロールバーを操作したい / nakanishi
再度、すみません。

ループ内の最後の「id=HNDTOID(h)」は間違いで、
正しくは次のとおりです。

WHILE id>-1
PRINT STATUS(id,ST_PARENT)+":"+STATUS(id,ST_TITLE)+":"+STATUS(id,ST_CLASS)
PRINT GETSLIDER(id,1,SLD_MAX)
PRINT GETSLIDER(id,2,SLD_MAX)
PRINT
//id=HNDTOID(h) ←間違い
id=STATUS(id,ST_PARENT) ←正解
WEND


転載する際に誤りがありました。

No.3185 2016/11/24(Thu) 02:01:40

Re: IEのスクロールバーを操作したい / stuncloud
flash自身ではなくflashのあるページにスクロールバーがあるという話で良いですか?
違う場合は読み飛ばしてください
そうである場合はスクロールバーのあるエレメントのscrollTopを変更することでスクロールバーの操作ができます

例えばこの掲示板ならHTMLエレメントのスクロールバーを操作することで移動させられました

ie = createoleobj("InternetExplorer.Application")
ie.visible = TRUE
ie.navigate("http://www3.rocketbbs.com/13/bbs.cgi?id=umiumi")

with ie.document.documentElement
 msgbox(.tagName + "のスクロールバーの長さは" + .scrollHeight)
 .scrollTop = input("数値を変更してスクロールバーを動かします", .scrollTop)
endwith

スクロールバーがあるのはbodyだったりdivだったり、そのページの作りによります
どこにあるかはF12の開発者ツールで探すと良いでしょう
(エレメントを選んだ状態でコンソールから $0.scrollTop = $0.scrollHeight を実行して一番下までスクロールすれば当たり)

以上は縦向きのスクロールバーの話で、横向きならばscrollLeftを変更します(scrollWidthで長さがわかります)

# ChromeだとbodyなんですけどIEだとHTMLにスクロールバーがついてるんですね…?

No.3186 2016/11/24(Thu) 11:03:04

Re: IEのスクロールバーを操作したい / nakanishi
stuncloudさんへ

ありがとうございました。
無事解決できました。

GETSLIDER|SETSLIDERにこだわってしまってたものですから、
COM経由であっさりできちゃうんですね。

返信遅くなり、
申し訳ございませんでした。

No.3188 2016/11/24(Thu) 23:20:24
エクセル 範囲に名前を付けるには / 藍
いつもお世話になります。

Excel.Range("A1").CurrentRegion.Name = "合計"

セルに名前を付けられるのですが範囲に名前を付けるには

どのようにすればよいか良いのかご教示下さい。

B1〜B10 → "合計範囲"

よろしくお願いします。

No.3178 2016/11/19(Sat) 21:42:11

Re: エクセル 範囲に名前を付けるには / Nagatani
こんな感じでは?
Excel.Range("B1:B10").Name = "合計範囲"

No.3180 2016/11/20(Sun) 11:58:44

Re: エクセル 範囲に名前を付けるには / 藍
ありがとうございます。出来ました感謝です。
No.3182 2016/11/20(Sun) 18:10:02
全896件 [ ページ : << 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 90 >> ]