[ 掲示板に戻る ]

過去ログ閲覧モード

IEのスクリプトの操作について / やま
http://jp.demotrade.highlow.net/Trading
上記のサイトのスクリプト部分の操作は、どの様にすればよいのでしょうか。
具体的には、取引方法の切り替えと通貨の選択です。
いろいろ試していますが、うまく動作しません。
よろしくお願い致します。

No.3467 2017/02/08(Wed) 09:24:58
既に開いているSleipnirを操作したい / こっこ
通常はIEで行っている処理を、Sleipnirで行いたいです。

既に開いているSleipnirを操作したいのですが
IEの時に使うGETACTIVEOLEOBJは利用できないのでしょうか。
もし利用できないのであれば、これに代わるものはありますか。

GETACTIVEOLEOBJ("Sleipnir.API")とすると
COM_ERROR:操作を利用できません と表示されて動きません。
ちなみに、CreateOLEobj("Sleipnir.API")では正常に新規画面が開きます。

なんだか単純な質問で申し訳ないのですが
調べても分かりませんでして、よろしくお願い致します。

No.3462 2017/02/06(Mon) 23:33:58

Re: 既に開いているSleipnirを操作したい / stuncloud
> GETACTIVEOLEOBJ("Sleipnir.API")とすると
これはむりです
既に開いてるものでも
> CreateOLEobj("Sleipnir.API")
すれば操作できたはずなんだけどだめですか?
そういう使い方してた気がするんだけどな、記憶違いだったかな…

No.3463 2017/02/07(Tue) 11:16:20

Re: 既に開いているSleipnirを操作したい / こっこ
ありがとうございます!

> CreateOLEobj("Sleipnir.API")
これで認識されているようです。

助かりました。本当にありがとうございました。

No.3466 2017/02/07(Tue) 23:47:07
ランチメニュの簡素化について / タカハシ
WriteIniの第3引数をtitl、pathの交互に出力する処理がなかなか思い浮かびません。
何か良い方法ないでしょうか?

sec="LUNCHMENU"
t_path="C:\Users\aruke\Desktop\T1.txt"
t_path1="C:\Users\aruke\AppData\Roaming\UWSC\UWSC.INI"
Dim res = test_hairetu(t_path)

for i in res
print "WriteIni(<#DBL>LUNCHMENU<#DBL>,<#DBL>"+i+"<#DBL>,path,t_path1)"
next


function test_hairetu(t_path)
fid = FOPEN(t_path,F_READ or F_WRITE)
list = FGET(fid,F_LINECOUNT) //---ファイル内の行数を返す
Dim アカウント[list] //---配列の宣言
count=1
for i = 0 to list-1
 アカウント[i] = FGET(fid,count) //---配列:アカウントに挿入
count=count+1
next
FCLOSE(fid)
result = slice(アカウント, 0, length(アカウント)-1)
fend

上記のコードでは下記になる。
WriteIni("LUNCHMENU","T1",path,t_path1)
WriteIni("LUNCHMENU","s1",path,t_path1)
WriteIni("LUNCHMENU","T2",path,t_path1)
WriteIni("LUNCHMENU","s2",path,t_path1)
WriteIni("LUNCHMENU","T3",path,t_path1)
WriteIni("LUNCHMENU","s3",path,t_path1)
WriteIni("LUNCHMENU","T4",path,t_path1)
WriteIni("LUNCHMENU","s4",path,t_path1)
WriteIni("LUNCHMENU","T5",path,t_path1)
WriteIni("LUNCHMENU","s5",path,t_path1)
WriteIni("LUNCHMENU","T6",path,t_path1)
WriteIni("LUNCHMENU","s6",path,t_path1)


【したい処理】
WriteIni("LUNCHMENU","T1",titl,t_path1)
WriteIni("LUNCHMENU","s1",path,t_path1)
WriteIni("LUNCHMENU","T2",titl,t_path1)
WriteIni("LUNCHMENU","s2",path,t_path1)
WriteIni("LUNCHMENU","T3",titl,t_path1)
WriteIni("LUNCHMENU","s3",path,t_path1)
WriteIni("LUNCHMENU","T4",titl,t_path1)
WriteIni("LUNCHMENU","s4",path,t_path1)
WriteIni("LUNCHMENU","T5",titl,t_path1)
WriteIni("LUNCHMENU","s5",path,t_path1)
WriteIni("LUNCHMENU","T6",titl,t_path1)
WriteIni("LUNCHMENU","s6",path,t_path1)


【T1.txt】
T1
s1
T2
s2
T3
s3
T4
s4
T5
s5
T6
s6

No.3459 2017/02/06(Mon) 15:05:56

Re: ランチメニュの簡素化について / しろまさ
// pathが不明ですが。。

sec="LUNCHMENU"
t_path="C:\Users\aruke\Desktop\T1.txt"
t_path1="C:\Users\aruke\AppData\Roaming\UWSC\UWSC.INI"
path="pathはなんだろか?"
fid = FOPEN(t_path, F_READ or F_WRITE)
  for i = 0 to FGET(fid, F_LINECOUNT)-1 step 2
    WriteIni(sec, FGET(fid,i ), path, t_path1)
    WriteIni(sec, FGET(fid,i+1), path, t_path1)
  next
FCLOSE(fid)

No.3461 2017/02/06(Mon) 17:10:01

Re: ランチメニュの簡素化について / タカハシ
しろまさ様、すごいです、できました。こういう発想ができるのがうらやましい。

  for i = 0 to FGET(fid, F_LINECOUNT)-1 step 2
    WriteIni(sec, FGET(fid,i ), path, t_path1)
    WriteIni(sec, FGET(fid,i+1), path, t_path1)
  next

No.3465 2017/02/07(Tue) 23:44:50
テキストファイルを配列で読込、出力すると4行のテキストと先頭に空白行が出力される理由 / タカハシ
テキストファイルにある4行のテキストを配列で読込、print文で出力すると先頭に空白行が入り2行目から4行のテキスト出力されます。先頭に空白行が入らないようにする方法ないでしょうか?
下記のコードでやっています。

t_path="C:\Users\配列URL.txt"

fid = FOPEN(t_path,F_READ or F_WRITE)
list = FGET(fid,F_LINECOUNT) //---ファイル内の行数を返す
Dim アカウント[list] //---配列の宣言
for i = 1 to list
 アカウント[i] = FGET(fid,i) //---配列:アカウントに挿入
next
FCLOSE(fid)


【C:\Users\配列URL.txtの内容 4行のテキスト】

//aaaaaaa.net/wp-admin/hhhhh
//aaaaaaa.net/wp-admin/hhhhh?paged=2
//aaaaaaa.net/wp-admin/hhhhh?paged=3
//aaaaaaa.net/wp-admin/hhhhh?paged=4

【print分出力結果】

空白行
//aaaaaaa.net/wp-admin/hhhhh
//aaaaaaa.net/wp-admin/hhhhh?paged=2
//aaaaaaa.net/wp-admin/hhhhh?paged=3
//aaaaaaa.net/wp-admin/hhhhh?paged=4

No.3456 2017/02/06(Mon) 12:19:37

Re: テキストファイルを配列で読込、出力すると4行のテキストと先頭に空白行が出力される理由 / しろまさ
配列は0からなので アカウント[list] とすると0,1,2,3,4で要素は5です。

print文が記載されてませんが、配列0から読んでませんか?

No.3457 2017/02/06(Mon) 13:06:59

Re: テキストファイルを配列で読込、出力すると4行のテキストと先頭に空白行が出力される理由 / タカハシ
しろまさ様、回答ありがとうございます。count変数の設置とforを0から指定で解決できました。

function test_hairetu(t_path)
fid = FOPEN(t_path,F_READ or F_WRITE)
list = FGET(fid,F_LINECOUNT) //---ファイル内の行数を返す
Dim アカウント[list] //---配列の宣言
count=1
for i = 0 to list-1
 アカウント[i] = FGET(fid,count) //---配列:アカウントに挿入
count=count+1
next
FCLOSE(fid)
result = slice(アカウント, 0, length(アカウント)-1)
fend

No.3458 2017/02/06(Mon) 13:30:36

Re: テキストファイルを配列で読込、出力すると4行のテキストと先頭に空白行が出力される理由 / しろまさ
FGET(fid, i+1)

これでいいんじゃないかな?

No.3460 2017/02/06(Mon) 16:51:17

Re: テキストファイルを配列で読込、出力すると4行のテキストと先頭に空白行が出力される理由 / タカハシ
しろまさ様、回答ありがとうございます。
確かにFGET(fid, i+1)でこれでできますね、失礼致しました。

No.3464 2017/02/07(Tue) 23:40:00
既知かもしれませんがご報告 / かん
uwscpro5.2.3.0 でWin8.1です

Fukidashi()で透明化指定したい時は座標省略するとエラーになるようです。
Helpの記載漏れか挙動がおかしいのかよく分かりませんがいちおご報告です。
※もしくはカンマを省略しない場合は座標の省略値で空欄は通らないんでしようか?

Fukidasi("test",,,,,,,,) //NG
Fukidasi("test",0,0,,,,,,) //OK
Fukidasi("test",,,,,,,,125) // 半透明にしたいだけだけどNG

No.3455 2017/02/05(Sun) 20:12:24
重複URLを削除したい / みどり
fopen、fget、CHGMOJ、fdellineでできそうな感じがするのですが、なかなか有効なスクリプトが思いつきません。下記のコードやっているのですが、うまくいきません。tes1取得できていないのも気になります。

(前)
http://aa3105&action=edit
http://aa3105&action=edit

(後)
http://aa3105&action=edit

URL1="C:\Uss\Desktop\a.txt"
fid = fopen(URL1, F_READ or F_WRITE8)
tesall=fget(fid,-1)
tes1=fget(fid,-2)
for y = fget(fid, -1) to 1 step -1
tes=fget(fid, y)

tes1=CHGMOJ( tes1, tes, "" )
print "tes1="+tes1
tes1=fput(fid, tes1)
print "tes1="+tes1
next
fclose(fid)

No.3439 2017/01/28(Sat) 16:00:09

Re: 重複URLを削除したい / satocha
問題点はファイル処理と重複削除の実装の2点あります。

<ファイル処理>
既存のファイルを開くときは、fopen( filepath, f_read )で開いてください。
書き込み(読み書き両用も)で開くと、新規作成とみなされるようです。

fgetなどのモード指定を-1、-2などの数値で行うのはバグの元ですのでやめましょう。自分で意味が分かっているつもりでも、先々、見返したときに何だか分からなくなりますよ。UWSCの将来のバージョンで数値が変更になる可能性だってあります。
まして、掲示板で人にコードを見てもらうときは、配慮を欠く行為となります(私自身、数値を覚えていなかったので、確認が必要でした)。

<処理の流れ>
で、処理としては、f_alltextでtes1変数に読み込んでいるようなので、
ファイル読み込み→重複削除→ファイルへの書き込み
という流れが自然でしょう。

<重複削除実行>
これは記事No.1489以下のスレッドで、詳しく議論されていましたので、
http://www3.rocketbbs.com/13/bbs.cgi?id=umiumi&mode=pickup&no=1489
をごらんください。

<もっと簡単な方法は?>
URLの出現する順番が変わってもいいのであれば、
powershell( "gc a.txt|sort|gu > b.txt" )
の1行でできます。

No.3442 2017/01/29(Sun) 09:57:25

Re: 重複URLを削除したい / しろまさ
スタンさんと違ってコードが貼られないと答えない奴⇒(-_-;)

> 数値で行うのはバグの元ですのでやめましょう。
反対です。書き方の好みを押し付けるのは止めましょう。

さて、本題回答の一例です。

HASHTBL h_URL
URL1 = "C:\Uss\Desktop\a.txt"
fid = fopen(URL1, F_READ or F_WRITE8)
  for y = fget(fid, -1) to 1 step -1
    h_URL[fget(fid, y)] = fget(fid, y)
  next
fclose(fid)
ResURL = Join(h_URL, "<#CR>")  // HASH_VALのみJoinされる。
MsgBox(ResURL)

No.3451 2017/02/02(Thu) 09:44:00

Re: 重複URLを削除したい / みどり
satocha様、回答ありがとうございます。できました、ホント助かりました。
No.3453 2017/02/03(Fri) 23:10:13

Re: 重複URLを削除したい / みどり
しろまさ様、回答ありがとうございます。Joinを使ってるのが斬新でいいですね。
No.3454 2017/02/03(Fri) 23:11:25
エクセルに計算式を埋め込みたい(XLSETDATAとFormula) / SEN
いつもお世話になっております。
エクセルに式を転記して結果をcsvで保存しようとXLSETDATAで作成したのですが、
しろまささんのhpに下記のような掲載されていて、これなら<#DBL>とかもいれる必要もなく
シンプルで良いのですが、このような場合はXLSETDATAを敢えて使う必要はないのでしょうか?

//http://siromasa.html.xdomain.jp/uwsc/u_term/ExcelApplication.html
// .Range("A1").Formula = "=A2" // 式入力




PUBLIC Excel = XLOPEN("C:\実績.xlsx")

P計算式埋め込み("AS2","=LEFT(A2,4)")//年
P計算式埋め込み("AT2","=MID(A2,5,2)")//月
P計算式埋め込み("AU2","=IF(MID(A2,5,2)*1<=3,LEFT(A2,4)*1-1,LEFT(A2,4)*1)&<#DBL>年度<#DBL>")// & <#TAB>年度<#TAB>")//年度
P計算式埋め込み("AV2","=<#DBL>第<#DBL>&CHOOSE(MID(A2,5,2)*1,4,4,4,1,1,1,2,2,2,3,3,3)&<#DBL>四半期<#DBL>")//四半期
P計算式埋め込み("AW2","=IF(and(MID(A2,5,2)*1>=4,mid(a2,5,2)*1<=9),<#DBL>上半期<#DBL>,<#DBL>下半期<#DBL>)")//前期
P計算式埋め込み("AX2","=LEFT(AI2,2)")//統計コード2
P計算式埋め込み("AY2","=IFERROR(LEFT(AJ2,SEARCH(<#DBL>-*<#DBL>,AJ2)-1),LEFT(AJ2,SEARCH(<#DBL>SZ*<#DBL>,AJ2)-1))")//品番左
Pオートフィル("AS",2,"AY")

EXCEL.ActiveWorkbook.SaveAS("C:\実績.csv",FileFormat:= 6)

PROCEDURE P計算式埋め込み(セル位置,計算式)
XLSETDATA( Excel,計算式, セル位置 )
FEND

PROCEDURE Pオートフィル(列アルファベット前,開始行,列アルファベット後)
DIM 下終端セル行数 = Excel.Range("A1").end(-4121).ROW()
適用範囲 = EXCEL.Range(列アルファベット前+開始行+":"+ 列アルファベット後 + 下終端セル行数)
開始セル = 列アルファベット前+開始行+":"+ 列アルファベット後 + 開始行
EXCEL.Range(開始セル).AutoFill(適用範囲)
FEND

No.3441 2017/01/28(Sat) 23:10:52

Re: エクセルに計算式を埋め込みたい(XLSETDATAとFormula) / しろまさ
私は基本的にIE・XL操作はCOMで行いますので、
Pro版持ってますが、IE・XL関連関数を使うことはありません。好みです。

それと定型文ならPasteSpecialのほうが処理速いですよ。

Dim XL = CreateOleObj("Excel.Application")
XL.WorkBooks.Add
XL.Visible = TRUE
Dim WS = XL.ActiveSheet
WS.Range("A2").Value = "20161201"
SendStr(0, RePlace(AS2_AY2, "<#CR>", "<#TAB>"))
WS.Range("AS2").PasteSpecial
TextBlock AS2_AY2
=LEFT(A2,4)
=MID(A2,5,2)
=IF(MID(A2,5,2)*1<=3,LEFT(A2,4)*1-1,LEFT(A2,4)*1)&"年度"
="第"&CHOOSE(MID(A2,5,2)*1,4,4,4,1,1,1,2,2,2,3,3,3)&"四半期"
=IF(and(MID(A2,5,2)*1>=4,mid(a2,5,2)*1<=9),"上半期","下半期")
=LEFT(AI2,2)
=IFERROR(LEFT(AJ2,SEARCH("-*",AJ2)-1),LEFT(AJ2,SEARCH("SZ*",AJ2)-1))
EndTextBlock

No.3446 2017/01/30(Mon) 18:18:16

Re: エクセルに計算式を埋め込みたい(XLSETDATAとFormula) / しろまさ
でも私の場合、計算式は名前定義で行います。管理が楽なので。
当然、名前定義もCOMで作成です^^

Dim XL = CreateOleObj("Excel.Application")
Dim WB = XL.WorkBooks.Add
XL.Visible = TRUE
Dim WS = XL.ActiveSheet
WS.Range("A2").Value = "20161201"

// 名前の定義(ワークブックに)
With WB.Names
.Add(Name:="年", RefersTo:="=1*LEFT($A1,4)")
.Add(Name:="月", RefersTo:="=1*MID($A1,5,2)")
.Add(Name:="年度", RefersTo:="=IF(月<=3,年-1,年)&<#DBL>年度<#DBL>")
.Add(Name:="四半期", RefersTo:="=<#DBL>第<#DBL>&CHOOSE(月,4,4,4,1,1,1,2,2,2,3,3,3)&<#DBL>四半期<#DBL>")
.Add(Name:="前期", RefersTo:="=IF(and(月>=4,月<=9),<#DBL>上半期<#DBL>,<#DBL>下半期<#DBL>)")
EndWith

SendStr(0, RePlace(AS2_AY2, "<#CR>", "<#TAB>"))
WS.Range("AS2").PasteSpecial
TextBlock AS2_AY2
=年
=月
=年度
=四半期
=前期
EndTextBlock

No.3447 2017/01/30(Mon) 19:11:02

Re: エクセルに計算式を埋め込みたい(XLSETDATAとFormula) / SEN
なんか、凄いものを教えて頂いたような気がします。
以前からあるモヤモヤがすっきりしてきました。

修正するのがすごく大変なのです。
抽出されるデータはどうしてもcsvなので、fgetの方が良いのか、excelなんだから計算式の方が良いのか。どっちもどっちなんです。
なるほど、名前の定義ですか。
確かに.xlsのだけの時は、便利で名前の定義は良く使っています。
uwscに取り込むとは。

Names.Add+SendStr+RePlace+PasteSpecial+TextBlockの組合せですね。
このあたりから、どう質問して良いのかも分からなくなるのです。

uwscのファンとして、是非、分かり易い所に保存して欲しいと思います。

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

No.3448 2017/01/30(Mon) 23:52:35

Re: エクセルに計算式を埋め込みたい(XLSETDATAとFormula) / しろまさ
取り込むというか、なんでもUWSCでやってしまおうとしてるだけというか。。

COMやDELLを使えるUWSCはとても汎用性が高いのでアプリ連携が楽に行えます。
ネックは動作スピードですので日々スピード向上のために研究してます^^
テキスト処理は正規表現を覚えると格段に処理スピードが上がりますので是非トライして下さい。

私の正規表現の習得には、しゅんさんにとてもお世話になりました。
この場を借りてお礼申し上げます。

No.3450 2017/02/01(Wed) 09:32:46

Re: エクセルに計算式を埋め込みたい(XLSETDATAとFormula) / sen
やはり、正規表現ですか?
csvなんだから、そうですよね。
次回、チャレンジしたいと思います。

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

No.3452 2017/02/02(Thu) 22:26:15
URLから画像ファイルをダウンロード / Cross
現在あるサイトから、画像ファイルを一括でダウンロードするマクロを作ろうとしています。
現状画像ファイルのURLを取得することはできましたが、ローカルにダウンロードするところで詰まっています。
お知恵を拝借したいです。よろしくお願いします。

No.3435 2017/01/27(Fri) 23:16:41

Re: URLから画像ファイルをダウンロード / satocha
doscmd exec powershellなどでbitsadminをたたくのが簡単そうです。
参考
http://qiita.com/zembutsu/items/f05d7c5835017fb4c796

ほかには、
CreateOleObj( "MSXML2.XMLHTTP" )とかpowershellでInvoke-WebRequestするとかでしょうか。

No.3436 2017/01/28(Sat) 02:52:51

Re: URLから画像ファイルをダウンロード / Cross
satochaさん
ありがとうございます。
ご紹介いただいた方法で解決できました。

No.3443 2017/01/29(Sun) 22:07:18

Re: URLから画像ファイルをダウンロード / satocha
失礼しました。

紹介しておいて何ですが、bitsadminのヘルプを見たら
BITSAdmin is deprecated and is not guaranteed to be available in future versions of Windows.
Administrative tools for the BITS service are now provided by BITS PowerShell cmdlets.
超意訳:BITSAdminは将来なくなっちゃうかもだから、PowerShellを使ってね
ということでした。
お手数ですが
powershell( "import-Module bitstransfer;start-bitsTransfer -source http://www.uwsc.info/logo.jpg folder\to\save\" )
みたいな感じでpowershellのstart-bitsTransferコマンドレットを使ってください。

No.3444 2017/01/30(Mon) 12:11:21

Re: URLから画像ファイルをダウンロード / stuncloud
せっかくなのでMSXML2.XMLHTTP版も

Download("http://www.uwsc.info/logo.jpg", "logo.jpg")

procedure Download(url, path)
 // ダウンロード
 with createoleobj("Msxml2.XMLHTTP")
  .open("GET", url, FALSE)
  .send()
  if .status = 200 then
   bin = .responseBody
  else
   msgbox("ダウンロード失敗")
   exit
  endif
 endwith
 // ファイルの保存
 with createoleobj("ADODB.Stream")
  .Open()
  .Type = 1 // adTypeBinary
  .Write(bin)
  .SaveToFile(path)
  .Close()
 endwith
fend

No.3445 2017/01/30(Mon) 13:58:36

Re: URLから画像ファイルをダウンロード / しろまさ
APIもありますよ。

DEF_DLL URLDownloadToFileA(Long, String, String, Long, Long) :Long :Urlmon
URLDownloadToFileA(0, "http://www.uwsc.info/logo.jpg", "c:\test\logo.jpg", 0, 0)

No.3449 2017/01/31(Tue) 09:06:01
Excel2002のオプションの変更 / みつ
おはようございます。
Excel2002のオプションを以下のようにCOMを使用して変更したいのですが可能でしょうか?

ツール - オプション - 計算方法 - 自動 - OK

GETIDとSCKEYを使用するしかないのでしょうか?
調べてみたのですが分からなかったのでご教授をよろしくお願いします。

No.3437 2017/01/28(Sat) 08:56:53

Re: Excel2002のオプションの変更 / yanyan
Excel2010ですが、マクロ記録すると、下記のようです。

CONST xlAutomatic = -4105
Application.Calculation = xlAutomatic

No.3440 2017/01/28(Sat) 20:23:16
特定のページでcomでテキスト取得する方法 / あゆみ
自分が運営しているサイトのテキストを取得する為、テキスト解析を使用して下記まで調べる事ができました。このテキスト1、テキスト2を取得する方法ないでしょうか?
検索で調べていまいち分かりません。

IE=GetActiveOLEObj("InternetExplorer.Application")
doc=IE.document
上のコード使うとは思いますが、どうしたらできるでしょうか?


doc.forms(1).elements(14).value :"テキスト1"


doc.forms(1).elements(14).defaultValue :"テキスト1"


doc.all.tags("input").post_title.value :"テキスト1"


doc.forms(1).elements(38).value :"テキスト2


doc.forms(1).elements(38).defaultValue :"テキスト2

No.3438 2017/01/28(Sat) 13:13:26
全1170件 [ ページ : << 1 ... 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 ... 117 >> ]