• ベストアンサー

UWSCで使うファイルをexcelで作りたい

imogasiの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

このソフトの機能で 繰り返しで対処できないのかな。 WINDOWSマクロテクニック(小林シンヤ)翔泳社 2005 というUWSCの解説本を読みましたか。 私も最近目を通したのだが、まだ身についてないので、今は具体的にかけません。すみません。 For Next、その他の繰り返しも使える。 文字列を1文でキーーインする書き方もあるようだ SENDSTR 数字列もそれがないかな。 ーーー エクセルVBAでやれば、質問どおりだけなら何とかできる。 VBAで考えた。 手抜きして KBD(VK_b,DOWN,) KBD(VK_5,CLICK,) <== この5を1桁打ち式に連続した番号で 変える KBD(VK_TAB,CLICK,) のところ(3行)しか考えてない。後は定まった文を増やすだけ ーーー Sub test01() k = 1 For i = 1 To 101 '500は多いので101で止めた Cells(k, "A") = "KBD(VK_b,DOWN,)" k = k + 1 Select Case i '-- Case 1 To 9 X = Trim(Str(i)) Cells(k, "A") = "KBD(vk_" & X & ",CLICK)" k = k + 1 '--- Case 10 To 99 X = Trim(Str(Int(i / 10))) Cells(k, "A") = "KBD(vk_" & X & ",CLICK)" k = k + 1 X = Trim(Str(i Mod 10)) Cells(k, "A") = "KBD(vk_" & X & ",CLICK)" k = k + 1 '-- Case 100 To 500 X = Trim(Str(Int(i / 100))) Cells(k, "A") = "KBD(vk_" & X & ",CLICK)" k = k + 1 X = Trim(Str(Int((i Mod 100) / 10))) Cells(k, "A") = "KBD(vk_" & X & ",CLICK)" k = k + 1 X = Trim(Str(i Mod 10)) Cells(k, "A") = "KBD(vk_" & X & ",CLICK)" k = k + 1 End Select Cells(k, "A") = "KBD(VK_TAB,CLICK,)" k = k + 1 Next i End Sub このコードを修正することが出来るかな。 結果 1部 KBD(VK_b,DOWN,) KBD(vk_1,CLICK) KBD(VK_TAB,CLICK,) KBD(VK_b,DOWN,) KBD(vk_2,CLICK) KBD(VK_TAB,CLICK,) KBD(VK_b,DOWN,) KBD(vk_3,CLICK) KBD(VK_TAB,CLICK,) KBD(VK_b,DOWN,) ーー 終わりの方 100のあたり KBD(VK_b,DOWN,) KBD(vk_9,CLICK) KBD(vk_9,CLICK) KBD(VK_TAB,CLICK,) KBD(VK_b,DOWN,) KBD(vk_1,CLICK) KBD(vk_0,CLICK) KBD(vk_0,CLICK) KBD(VK_TAB,CLICK,) KBD(VK_b,DOWN,) KBD(vk_1,CLICK) KBD(vk_0,CLICK) KBD(vk_1,CLICK) KBD(VK_TAB,CLICK,) === あとエクセルのセルではなく、テキストに書くコードを知る必要がある(略) しかしUWSCが言語である以上、こんなに単純に文を並べなければならない仕様のはずないと思うよ。

masaaki12
質問者

お礼

ありがとうございます。 UWSCもエクセルも初心者なので四苦八苦しております。 わざわざお調べいただいてありがとうございます。 お心づかい感謝です。

関連するQ&A

  • UWSCのスクリプトについて

    画像Dを認識したら画面上に画像Bがあっても 処理Bを実行しない為にはどうしたら良いでしょうか。 -------- while True BTN(LEFT,click,150,10,110)   //処理A Sleep(2) ifb CHKIMG("A.bmp")    x=G_IMG_X            y=G_IMG_Y BTN(left,click,x,y,110) Sleep(1.5) endif Ifb ChkImg("B.bmp")       //処理B BTN(LEFT,click,1120,90,110) Sleep(1) KBD(VK_return,DOWN,30) endif ifb CHKIMG("C.bmp")      //処理C x=G_IMG_X            y=G_IMG_Y BTN(left,click,x,y,110) Sleep(1.5) wend --------

  • (UWSC) エクセルのセルをコピーするには?

    UWSCで、エクセルにあるセルの中身をコピーしたいと 考えています。 getstrを使って、 a = GETSTR(GETID("Microsoft Excel","XLMAIN"),p)  (pは適当な数字) としましたがうまくいかないみたいです。 例えば、i行j列のセルにある文字をコピーするには、 どのようにすればいいのでしょうか? KBD(VK_CTRL,DOWN,32) KBD(VK_C,CLICK,31) KBD(VK_CTRL,UP,40) でもかまいません。

  • USWC初心者です。画像で終了させたいのですが

    USWCをさわり初めたばかりの初心者です。 3ヵ所をクリック+キー押しするだけで、基本ループし、指定画像が出たら終了するようにしたいのですが、終了が上手くできません。延々とループしてしまいます・・・・。 いろいろと検索して、調べながらやっているのですが、1日やってても解決しない状態です。 USWCがおわかりにになる方がいらっしゃいましたら、ご教授いただけますと助かります(>_<) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ //tabキーが押されるとマクロ終了。 While !GetKeyState(vk_tab) WHILE (TRUE) BTN(LEFT,DOWN,1403,796,1154) MMV(1403,796,10) BTN(LEFT,UP,1403,796,125) MMV(1403,796,405) KBD(VK_1,CLICK,2574) KBD(VK_2,CLICK,25210) MMV(1403,797,13574) SLEEP(0.01) Wend Wend IFB (CHKIMG("owari.bmp")=TRUE) THEN x=G_IMG_X + 1213 y=G_IMG_Y + 457 BTN(LEFT,DOWN,1213,457,858) endif Wend Sleep(2) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  • UWSCで ENTERキーを押した時の挙動について

    UWSCで ENTERキーを押した時の挙動を再現したいのですが上手くいきません。 アバター sekiguchi_kou_dayoさん2017/6/2302:40:58 UWSCで ENTERキーを押した時の挙動を再現したいのですが上手くいきません。 ●試したコード IESetData(IE,True,"","innerText=編集",2) sleep(0.5) IESetData(IE,"2017/08/28","TAG=input",9) sleep(0.5) KBD(VK_RETURN) 実際、手でエンターキーを押すのとテキストボックスの日付が更新されるのですが、KBD(VK_RETURN)だと更新がかかりません。 考えられる可能性がございましたらアドバイスを頂けると助かります。宜しくお願い致します。

  • エクセルにて為替の自動売買プログラムを作成しており、キー記録マクロ「U

    エクセルにて為替の自動売買プログラムを作成しており、キー記録マクロ「UWSC」を使用して 指し値を貼りたいと思っております。 エクセルの値を持つことは出来たのですが、それをUWSCでクリックで指定した所に値を代入する事が できません。 下記プログラムの一番下の行です。 だれか教えて欲しいです。 ctrlwin(getid("FX Trading Station 2.0"),max) ACW(GETID("FX Trading Station 2.0"),-7,-7,1036,750,0) BTN(RIGHT,CLICK,172,208,300) ACW(GETID("FX Trading Station 2.0"),-7,-7,1036,750,0) BTN(LEFT,CLICK,230,221,78) ACW(GETID("新規指値の作成","#32770"),328,193,371,342,0) BTN(LEFT,CLICK,504,341,62) KBD(VK_BACK,CLICK,40) KBD(VK_BACK,CLICK,40) KBD(VK_BACK,CLICK,40) KBD(VK_BACK,CLICK,40) KBD(VK_BACK,CLICK,40) KBD(VK_DELETE,CLICK,40) Excel = GETACTIVEOLEOBJ("Excel.Application"); val1 = Excel.ActiveSheet.range("A1").value;

  • UWSC 指定範囲内・及び指定文字の置き換え

    UWSC便利!…だけど難しい…な初心者です。お知恵を貸して下さい BTN(LEFT,CLICK,413,267,125) BTN(LEFT,DOWN,527,253,32) BTN(LEFT,UP,529,253,10) BTN(LEFT,CLICK,530,377,15) BTN(LEFT,CLICK,439,413,47) BTN(LEFT,CLICK,550,515,300) 上記の文字列のうち 1.各行の最後の,から)にある数字を一律50にしたい(上から125,32,10...とある数字です) 2.DOWNとUPのいずれか1つをCLICKに置換し、もう片行を削除したい よろしくお願いします

  • UWSCについて質問です。

    UWSCについて質問です。 特定のボタンを押している間だけループさせるスクリプトを組むにはどうすればいいでしょうか? ボタンを押している間はループされ、ボタンを押していない時は処理が止まる といったようなスクリプトをくみたいのですがどうもうまくいきません。処理させるスクリプト自体は簡単で NUMPAD7を押している間はAの処理 NUMPAD8を押している間はBの処理 NUMPAD9を押している間はCの処理 といった具合にスクリプトを組みたいのですがどうすればよろしいでしょうか? 教えて頂けると助かります。 ちなみに行う処理は以下のとおりです。 処理A BTN(LEFT,CLICK,450,500,10) BTN(VK_3,CLICK,10) while true //7を押している間はここからループ開始 BTN(LEFT,CLICK,400,300,10) BTN(LEFT,CLICK,700,660,10) Wend 処理B while true BTN(LEFT,CLICK,400,300,10) BTN(LEFT,CLICK,700,660,10) Wend 処理C while true BTN(LEFT,CLICK,400,300,10) BTN(LEFT,CLICK,400,660,10) wend

  • UWSCの指定画像チェック

    UWSCを利用して、画面内に指定画像があるか無いかチェックし、あればクリックしたりするスクリプト文を作成したいのですが・・・、うまくいきません; 詳しい方、どうか回答お願いしますm(_ _)m 自分の作ったスクリプト文は下記のとおりです。 ""のところの「A」はフォルダ名で、「neko.bmp」が画像ファイル名です。   IFB CHKIMG(".\A\neko.bmp")     MMV(G_IMG_X,G_IMG_Y)     KBD(VK_CTRL,DOWN)     BTN(LEFT,DOWN,G_IMG_X,G_IMG_Y)     KBD(VK_CTRL,UP)     BTN(LEFT,UP,G_IMG_X,G_IMG_Y)   ENDIF 上記のスクリプト文でUWSCを実行させると、なぜか「エラー NOT Found".\A\neko.bmp"」と出てき、実行してくれません。 画像の問題ではあると思うのですが、ちゃんとuws形式で保存されてますし、画像の方もbmp形式になってるので・・・どこか悪いのかと、思い当たるふしがありません。 悪いところや指摘がございましたらどうか教えてくださいm(_ _)m また、スクリプト文を作れる方がいましたら作成を頼めませんでしょうか。。。 私の希望する、UWSCの実行は下記のとおりです。また、"neko"は画像ファイル名のことです。 "neko"が画面内にあるか無いかチェックし、もしあれば、Ctrlキーを押したまま、"neko"が見つかった座標に左クリック。 この繰り返し。

  • UWSCについて

    ゲームで自動化マクロを作りたいのですが調べてもたのですがうまくいかずよくわからないので教えてください。 やりたい事は ・文字を見つけたらある場所をクリックする ・見つからなかったときは更新ボタンを押し見つかるまで繰り返す この二つなのですが While true  // 繰り返し ここから if GETKEYSTATE(VK_ESC) then exit // Escapeキーでスクリプト停止 Search = "○○" // 検索文字 // ここから あった時 BTN(LEFT,CLICK,232,344,702) BTN(LEFT,DOWN,200,530,593) MMV(200,530,10) BTN(LEFT,UP,200,530,125) MMV(200,530,203) BTN(LEFT,DOWN,245,365,390) MMV(245,365,15) BTN(LEFT,UP,245,365,141) MMV(245,365,203) MMV(245,365,374) MMV(245,365,422) BTN(LEFT,DOWN,193,542,343) MMV(193,542,10) BTN(LEFT,UP,193,542,109) MMV(193,542,94) MMV(193,542,46) MMV(193,542,452) BTN(LEFT,CLICK,245,421,110) BTN(LEFT,CLICK,219,250,230) BTN(LEFT,DOWN,184,245,47) MMV(185,246,78) BTN(LEFT,UP,185,246,63) // ここまで あった時 // ここから なかった時 BTN(LEFT,CLICK,74,60,1217) Search = "○○" // 検索文字 終了 wend //繰り返し ここまで これをすると検索もせずクリックする部分を繰り返してしまいます。 どこを直せばいいのでしょうか? よろしくお願いします。

  • UWSCで変数をキー入力

    UWSCで変数に応じたキー入力をしたいのですが、 どうすればいいのでしょうか? たとえば 変数Aが 1 の場合は 01 とキー入力 変数Aが 25 の場合は 25 とキー入力 という感じで、変数Aは1~84までの値を取ります。 これをSELECT文で試してみたのですが、 1~5くらいまでならうまくいくのですが、 さすがに84まであるとエラーがでてしまいます。 SELECT A CASE 1 KBD(VK_0,CLICK,40) KBD(VK_1,CLICK,40) CASE 2 KBD(VK_0,CLICK,40) KBD(VK_2,CLICK,40) ・ ・ CASE 84 KBD(VK_8,CLICK,40) KBD(VK_4,CLICK,40) SELEND ↑エラー 二桁目と一桁目で分けて入力すればよさそうですが、 どう処理すればいいのかわかりません。 また、仮に変数が文字列を値として取る場合も、 その文字列をそのままキー入力させるにはどうしたらよいでしょうか?