一行野郎7

--------------------- [番外7] 一行野郎(最後の戦い1) --------------------------


はじまり、はじまり~。


<まったく持って不満だわ。>
何がだよ?

<この前のに決まってるでしょ! アレはやっぱり真・一行プログラムではないわ!>
はい。はい。一行ではなかったね。まあ良いじゃん。そんなに拘わらくても。

<ダメダメ。Linersの名が泣くわ。ねっ そうでしょ?>
別に。

<じゃあそうゆう事で、次はこれぇ。>
お話がかみ合ってませんけど。

<やっぱ完全一行で答えるのが筋ってもんよ♪>
あ、あの・・・

<ん? 何か用?>
この「クリップボードにコピーの仕方」ってムッチャ長いんですけど・・・ 

<だから?>
かなり無理っぽいんですけど。

<そうよ。 そこを何とかするのがアンタじゃないの!>
「エクセルを開き、sheet4のA1~AG100までをクリップボードにコピーし、terapadを開いて、クリップボードから貼り付け、という処理」を
マジで一行ですか?

<もちろん!>
分割払いとかは?

<今日もニコニコ現金一括払いよ。>
マジで?

<ガチに決まってるでしょ。>
<あっ。言い忘れてた。>
やっぱ分割で?

<質問全部なわけだから、追加の置換作業も込みね。>
<この際だからフリー版でも動くようにして、ノーComでフィニッシュね。もちろんマルチレスよ。 ニコッ!>

アホらしくって聞いておれんワイ。お休みぃ~~~~~。

<・・・流石のアンタも今回は無理だったようね。 アタイ自身も言ってて笑ちゃったぐらいだから。>
<最終的に質問者の完成版で20行。5150さんで4行。しかもこれらはPro版でComを使っている。>

<フリー版でComを使えば Excel=CreateOLEObj("Excel.Application") だけで終了よね。>
<しかし、Comを使わなければ Excel.Sheets[4].Range["A1:AG100"].Copy は想像を絶する難しさよね。>

<でももし可能ならどうしてもスクリプト見てみたいなぁ。・・・>
おはよう。。。まだ居たのアンタ。

<あら。ご挨拶ね。スクリプト出来たの?>
どーしてそうなる!

<最新の睡眠学習していたのかと思いましたわ。>
それは残念。睡眠のみでしたの。

<でもコレって本当に不可能なの?>
可能性はある。ただ非常に面倒なんだ。

<えっ? 出来るの?>
こればかりは、やってみないとね。
このくらいになると、通常の常識を横に置いておいて、背水の陣で臨まなきゃ。
まさに、「最後の戦い」の覚悟がいるね。

<「最後の戦い」?>
そう。なんでもアリのサドンデス。あらゆる可能性を試してみる。諦めない自分自身との戦いなのかも。

<試してみて?>
気軽に言ってくれるよね。やる方は大変なんですけど。まあコレも訓練かな? 今回はチト時間がかかるかも。

=== 結構な時間経過 ===

出来た。
<マジで?>
ガチよ。

<実行してみて。>
ポチットな!

<信じ難い動きだわ。結構速いし、本当に一行なの?>
ご覧あれ。

<う~~ん。アタイの常識では理解し難いわ。 式の中にSleepまであるなんて・・・>
<完全に常識を超越したスクリプトね。>
Linersですから。

<納得!>


おしまい。



-----------------------------------------------------------------------------------------------

提供は: 一行野郎 = 「一日一行(日課)」= Liners でした。

-----------------------------------------------------------------------------------------------
    クリップボードにコピーの仕方 宮    
    本日pro版を使い始めた宮です。
エクセルを開き、sheet4のA1~AG100までをクリップボードにコピーし、
terapadを開いて、クリップボードから貼り付け、という処理を実行したいのですが、
ご教授お願いいたします。

==========================
Excel = XLOPEN("C:Users●●.xls")
XLACTIVATE(Excel, "Sheet4")
SENDSTR(0, Excel.ActiveSheet.Cells[A1,AG100])

id = GETID("", "#32768", -1)
CLKITEM(id, "開く(O)", CLK_ACC or CLK_BACK or CLK_MUSMOVE)
id = GETID("無題 - TeraPad", "TTeraPadMainForm", -1)
SLEEP(1)

ss = GETSTR(0)

Excel.ActiveSheet.Cells[y,x].Value = ss

==========================
初心者というのが嫌いなのですが、
よろしくお願い申し上げます。


DATE:2011/1/4(Tue) 23:42 No.3400    
   
    RE:クリップボードにコピーの仕方 Liners    
   
    問題点が不明ですが、下記を試してみては?

Excel = XLOPEN("C:Users●●.xls")
Excel.Sheets[4].Range["A1:AG100"].Copy
sckey(exec("C:Program FilesTeraPadTeraPad.exe"), vk_ctrl, v)
DATE:2011/1/5(Wed) 01:19    
   
    terapadでの置換作業の仕方 宮    
   
    Liners さま

宮です。

上記で教えていただいたコードで
terapadまでの貼り付けに成功いたしました^^
ありがとうございます!

続けまして、エクセルからのコピーに含まれる
タブ(t)⇒ 削除
n ⇒ n
という置換作業をしたいのですが、

下記のようなコードを作ってみましたが、
t や 空欄、n n といった文字列が
うまくカーソルに代入されません。

連続質問で申し訳ございませんが
宜しくお願いいたします。

==========================


Excel = XLOPEN("C:●●.xls")
// エクセルを開く

Excel.Sheets[4].Range["A1:AG100"].Copy
// シート4のA1~AG100までをクリップボードにコピー

sckey(exec("C:Program FilesTeraPadTeraPad.exe"), vk_ctrl, v)
// terapadを開き、貼り付け

sckey(0, vk_ctrl, r)
// terapadの置換(R)を開く

SLEEP(1)

id = GETID(GET_ACTIVE_WIN)
CLKITEM(id, "n=改行, t=TAB, =(E)", CLK_BTN, True)
// 置換ウインドウでnなどの記号を有効にする

sckey(0, vk_alt, t)
SENDSTR(0, "t", 1, True)
SLEEP(1)
// Altキー+tを押下し、置換前にカーソルを合わせ、tと代入する 


sckey(0, vk_alt, r)
SENDSTR(0, "", 1, True)
SLEEP(1)
// Altキー+r を押下し、置換前にカーソルを合わせ、(空欄)を代入する

sckey(0, vk_alt, a)
SLEEP(1)
// すべて置換(a) を押下する


sckey(0, vk_alt, a)
SLEEP(20)
// 確認ウインドウですべて(a) を押下する


// 20秒待ち、処理が終わるのを待つ



sckey(0, vk_ctrl, r)
// terapadの置換(R)を開く



SLEEP(1)

sckey(0, vk_alt, t)
SENDSTR(0, "n", 1, True)
// Altキー+tを押下し、置換前にカーソルを合わせ、nと代入する 

sckey(0, vk_alt, r)
SENDSTR(0, "n", 1, True)
SLEEP(1)
// Altキー+rを押下し、置換前にカーソルを合わせ、nと代入する 

sckey(0, vk_alt, a)
SLEEP(1)
// すべて置換(a) を押下する


sckey(0, vk_alt, a)
SLEEP(20)
// 確認ウインドウですべて(a) を押下する

==========================

DATE:2011/1/5(Wed) 10:28    
   
    提案 5150    
   
    terapadに貼り付ける前に置換した方が効率よいのでは?
とりあえずtab削除のみ。

Excel = XLOPEN("C:Users●●.xls")
Excel.Sheets[4].Range["A1:AG100"].Copy
REPLACE(getstr(0),"<#TAB>","")
sckey(exec("C:Program FilesTeraPadTeraPad.exe"), vk_ctrl, v)

あとはがんばってください。
DATE:2011/1/5(Wed) 13:33    
   
    terapadでの置換作業の仕方 2 宮    
   
    5150さまのご提案ありがとうございます。

==========================
Excel = XLOPEN("C:Users●●.xls")
Excel.Sheets[4].Range["A1:AG100"].Copy
REPLACE(getstr(0),"<#TAB>","")
sckey(exec("C:Program FilesTeraPadTeraPad.exe"), vk_ctrl, v)
==========================
しかしこのコードでは
処理ができず、置換されぬままテラパッドに
データが貼り付けられました。


引き続き、ご迷惑をおかけしますが
宜しくお願い申しあげます。


DATE:2011/1/5(Wed) 14:20    
   
    terapad置換 解決済み 宮    
   
    宮です。

自分でいじっていたら解決できました^^
ご迷惑をおかけいたしました。

==========================
// エクセルを開く
Excel = XLOPEN("C:●●●")

// シート4のA1~AG100までをクリップボードにコピー
Excel.Sheets[4].Range["A1:AG100"].Copy

// terapadを開き、貼り付け
sckey(exec("C:Program FilesTeraPadTeraPad.exe"), vk_ctrl, v)


sckey(0, vk_ctrl, r) // terapadの置換(R)を開く


// 置換ウインドウでnなどの記号を有効にする
CLKITEM(0, "n=改行, t=TAB, =(E)", CLK_BTN, True)



置換id =GETID("置換")
SendStr(置換id, "t", 1, True)     // 検索
SendStr(置換id, "", 2, True)     // 置換

sckey(0, vk_alt, a) // すべて置換(a) を押下する
SLEEP(1)
sckey(0, vk_alt, a) // 確認ウインドウですべて(a) を押下する
SLEEP(10)



sckey(0, vk_ctrl, r) // terapadの置換(R)を開く


置換id =GETID("置換")
SendStr(置換id, "n", 1, True)     // 検索
SendStr(置換id, "n", 2, True)     // 置換

sckey(0, vk_alt, a) // すべて置換(a) を押下する
SLEEP(1)
sckey(0, vk_alt, a) // 確認ウインドウですべて(a) を押下する
SLEEP(20)
DATE:2011/1/5(Wed) 15:18    
   
    RE:クリップボードにコピーの仕方 5150    
   
    失礼、こうでした。

Excel = XLOPEN("C:Users●●.xls")
Excel.Sheets[4].Range["A1:AG100"].Copy
SENDSTR(0,REPLACE(getstr(0),"<#TAB>",""))
sckey(exec("C:Program FilesTeraPadTeraPad.exe"), vk_ctrl, v)

けど処理速度が遅いかもしません。
いろんな方法がありますので。


    クリップボードにコピーの仕方  宮    
   
    5150さま

いえいえ助かりました。
ありがとうございました^^
それでは今後ともよろしくお願い申し上げます。