[ 掲示板に戻る ]

過去ログ閲覧モード

IESetDataにエクセルのデータのA1からB5の範囲指定した分を入れる方法 / シスイ
IESetDataにエクセルA1からB5の範囲指定したセルの文字列を設定したいのですが、うまくいきません。
下記のコードでやるとXLGETDATA(Excel, "A1:C3")で配列いれていると理解はしているのですが、IESetData(IE,C3[1,2]でやるとA2のセルの文字列しか入力されません。教えて頂けないでしょうか?

No.2735 2016/08/09(Tue) 20:55:39

Re: IESetDataにエクセルのデータのA1からB5の範囲指定した分を入れる方法 / シスイ
PATH = "エクセルファイル.xlsx"
Excel = XLOPEN(PATH)

C3 = XLGETDATA(Excel, "A1:C3")

Public IE
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
setOleEvent()
IE.Navigate("URL")
BusyWait()
IESetData(IE,True,"import[source]","form-field") // RADIO
IESetData(IE,C3[1,2],"import[form_field]") // TEXTAREA
IESetData(IE,True,"submit") // SUBMIT インポート
BusyWait()
// OleEvent(IE); IE.Quit() // OleEventクリア & IE終了

//------
DEF_DLL SendMessageA(Hwnd, Long, Long, Dword): bool: user32
CONST WM_ACTIVATE = $06
Public Pub_url, Pub_docc, Pub_BeforNav_cnt, Pub_DocComp_cnt, Pub_inp_flg
Procedure BusyWait()
Sleep(0.3)
tm = GetTime()
repeat
ifb GetTime() - tm > 90 // TimeOut
Pub_docc = ""; Pub_BeforNav_cnt=0; Pub_DocComp_cnt=0
IE.Navigate(Pub_url)
tm = GetTime()
endif
Sleep(0.2)
ifb Pub_inp_flg
Pub_inp_flg = False
continue
endif
if IE.busy then continue
if Pub_url = "" then break // No read
if (Pos("*"+Pub_url+"*",Pub_docc)) or (Pos("*"+IE.LocationURL+"*",Pub_docc)) or (Pub_BeforNav_cnt<=Pub_DocComp_cnt) then else continue
errflg = False
if IE.document.title = "503 Unavailable" then errflg = True
if IE.document.title = "Service Unavailable" then errflg = True
if IE.document.title = "503 Service Temporarily Unavailable" then errflg = True
ifb errflg
Sleep(90) // 503: Wait&Retry
tm = 0
continue
endif
Sleep(0.3)
until ! Pub_inp_flg
Pub_url=""; Pub_docc=""; Pub_BeforNav_cnt=0; Pub_DocComp_cnt=0
SendMessageA(IE.Hwnd, WM_ACTIVATE, 0, 0)
Fend
Procedure setOleEvent()
OleEvent(IE, "DWebBrowserEvents2", "BeforeNavigate2", "fucBeforNav")
OleEvent(IE, "DWebBrowserEvents2", "DocumentComplete", "fucDocComp")
OleEvent(IE, "DWebBrowserEvents2", "OnQuit", "fucQuit")
Pub_url=""; Pub_docc=""; Pub_BeforNav_cnt=0; Pub_DocComp_cnt=0; Pub_inp_flg=False
Fend
Procedure fucBeforNav()
ifb (Pos("javascript:",""+EVENT_PRM[1])=0) and ("about:blank"<>""+EVENT_PRM[1])
if Pub_url="" then Pub_url = ""+EVENT_PRM[1]
Pub_BeforNav_cnt = Pub_BeforNav_cnt + 1
endif
Pub_inp_flg = True
Fend
Procedure fucDocComp()
ifb (Pos("javascript:",""+EVENT_PRM[1])=0) and ("about:blank"<>""+EVENT_PRM[1])
Pub_docc = Pub_docc + "*"+EVENT_PRM[1]+"*"
Pub_DocComp_cnt = Pub_DocComp_cnt + 1
endif
Pub_inp_flg = True
Fend
Procedure fucQuit()
ExitExit
Fend

No.2736 2016/08/09(Tue) 22:44:11

Re: IESetDataにエクセルのデータのA1からB5の範囲指定した分を入れる方法 / stuncloud
> C3[1,2]
二次元配列でこんな書き方ができるようになってたんですね、恥ずかしながら全然知りませんでした…

で、質問についてなんですがそもそも
・A1:B5の値を取得してそれを入力したい
・A1:C3の値を取得してそれを入力したい
・A1:C3を取得してその中のA1:B5の部分のみ入力したい (無理)
・A1:C5を取得してその中のA1:B5の部分のみ入力したい
のいずれなのかが全くわからないです

ただまぁコードを見る限りA1:C3を取得してそれを入力したいようなのでそういう前提で進めていきます

先ずXLGETDATAで範囲指定すると二次元SafeArrayが返ってきます
この配列の添字は各次元とも1からで、一次元目が取得したRangeの行になっています
なので

> IESetData(IE,C3[1,2]でやるとA2のセルの文字列しか入力されません
は当然です

> C3[1,2]
だと1行目の二つ目の要素、つまりこの場合はA2になります

すべての値を入力したいのであれば配列の各要素から値を取り出さなくてはいけません
で、取り出したものを適当に加工して入力することになります
どういうふうに入力したいかについては全く記述がないのでいくつかサンプルをあげておきます
joinを使うと配列の値をまとめるのがとても楽です

// カンマ区切りで入力
range = xlgetdata(excel, "A1:C3")
text = join(range, ", ")
IESetData(IE,text,"import[form_field]")

-入力値---------------------------
A1, B1, C1, A2, B2, C2, A3, B3, C3
----------------------------------
※実際にはセルの値が入りますが説明のため座標を値として書いています

// カンマ区切りでさらに行ごとに改行する
range = xlgetdata(excel, "A1:C3")
dummy = SafeArray(1, length(range))

for i = 1 to length(range)
 dummy[i] = join(range[i], ", ")
next
text = join(dummy, "<#CR>")
IESetData(IE,text,"import[form_field]")

-入力値---
A1, B1, C1
A2, B2, C2
A3, B3, C3
----------

No.2738 2016/08/10(Wed) 10:32:57

Re: IESetDataにエクセルのデータのA1からB5の範囲指定した分を入れる方法 / シスイ
stuncloud様、私のしたい事を完璧に答えて頂きありがとうございます。配列を使いこなせればかなりできる事の可能性が拡がりそうです。ありがとうございました。
No.2744 2016/08/11(Thu) 22:30:54
RecIEの画面サイズ変更がうまくいかない / たかさん
RecIEは3画面構成になっていますが、上半分の画面表示部を広げたいとき広げることができません。
No.2743 2016/08/11(Thu) 10:31:54
Windows10においてのChromeの起動について / いくさ
Google Chrome にてGoogleを表示、検索 & ニュース表示  #N37

上記サンプルを参考にして、Chromeを立ち上げていたのですが

// 必:起動オプション(accessibilityをOnにする) "--force-renderer-accessibility"
path = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
id = Exec(path + " --force-renderer-accessibility --process-per-tab --new-window http://www.google.co.jp/")
// グーグルクロームの起動

OSをWindows10にしたところ、Chromeが立ち上がらなくなってしまいました。
UWSC Ver 5.2.2.0

立ち上げる方法があれば、教えて頂けないでしょうか?

No.2742 2016/08/11(Thu) 10:00:56
ALTの仮想キーについて / GoG
WHILE TRUE
  SLEEP(0.1)
  IF GETKEYSTATE(VK_ALT) THEN PRINT "押した"
WEND

上のコードで、

VK_ALT だと、キーボードの左と右のAltキーに反応します。

VK_RALT は、右のAltキーに反応します。

VK_LALT は、定義されていません、と表示されてしまいます。

左のAltキーのみに反応させたい場合は、どうしたらいいですか?

SHIFT と CTRL は、L もあるようです。

※なぜか最近気になることが出てきていますが、粗探しをしたいわけではないです。
 作者さまには感謝しています。

Windows 7
UWSC Ver 5.2.2.0

No.2739 2016/08/10(Wed) 19:40:45

Re: ALTの仮想キーについて / しき
//左Alt VK_LMENU は定義されているみたい
//仮に定義されてなくても、キーコードを直接記述できます

print "vk_alt = "+ vk_alt
print "vk_menu = "+ vk_menu
print "vk_ralt = "+ vk_ralt
print "vk_rmenu = "+ vk_rmenu
print "vk_lmenu = "+ vk_lmenu

while true
  sleep(0.1)
  if getkeystate($A4) then print "左alt押した"
wend


//結果
vk_alt = 18
vk_menu = 18
vk_ralt = 165
vk_rmenu = 165
vk_lmenu = 164

//参考URL
仮想キーコード
http://chokuto.ifdef.jp/urawaza/prm/virtual_key_code.html
VK_LMENU A4 左の [Alt]
VK_RMENU A5 右の [Alt]

No.2740 2016/08/10(Wed) 21:28:54

Re: ALTの仮想キーについて / GoG
知りませんでした。
直接記述も勉強になります。
ありがとうございます。

No.2741 2016/08/11(Thu) 08:46:23
パスワードが入力できません。 / リキュール
パスワード部分が入力できません。
IESetData(IE,"XXXXXXXX","webLoginId") // ID
IESetData(IE,"XXXXXXXX","webLoginPwd") // PASSWORD

HTMLのソースは以下の通りです。
<input name="webLoginId" type="text" id="webLoginId" class="loginInputForm" size="34" style="ime-mode:disabled;" />
<input name="webLoginPwd" type="password" id="webLoginPwd" class="loginInputForm" size="34" style="ime-mode:disabled;" oncopy="return false" oncut="return false" onpaste="return true"/>

ちなみにPro版のrecIDでは
IESetData(IE,"●●●●●●●●●","password_webLoginPwd") // TEXT
と表示されます。

よろしくお願いいたします。

No.2711 2016/08/04(Thu) 15:56:08

Re: パスワードが入力できません。 / リキュール
以下で解決しました。
どうしてIESetDataではだめなのか分かりません。
IE.document.forms[0].webLoginId.value = "XXXXXXXX"
IE.document.forms[0].webLoginPwd.value = "XXXXXXXX"

No.2737 2016/08/09(Tue) 23:25:31
BTNで現在位置を省略するには? / GoG
BTN関数のヘルプを見ると、座標を省略すると現在位置でクリックとなるようなのですが、省略するときはどのように書けばよいですか?

以下の3つを試してみたのですが、上の2つは、「定義が間違っています」と表示され、3つ目は、300,0 の座標で動作してしまいます。

BTN(LEFT,CLICK, , ,300)

BTN(LEFT,CLICK,"","",300)

BTN(LEFT,CLICK,300)

Windows 7
UWSC Ver 5.2.2.0

No.2730 2016/08/09(Tue) 09:30:56

Re: BTNで現在位置を省略するには? / stuncloud
ミリ秒も省略しないといけないようですね
そこはsleepで代替すると良いでしょう

sleep(0.3) // 300ミリ秒待つ
btn(LEFT,CLICK)

No.2731 2016/08/09(Tue) 10:33:00

Re: BTNで現在位置を省略するには? / GoG
よくわかりました。
アドバイスありがとうございます。

No.2732 2016/08/09(Tue) 11:55:56
CLKITEMでウィンドウがアクティブになってしまいます / GoG
UWSCにはいつも助かっています。

IEをアクティブにしないで、操作したいのですが、この書き方でアクティブになってしまいます。
どこか間違いはありますか?

CLKITEM(GETID("Internet Explorer"),"新しいタブ (Ctrl+T)",CLK_BTN or CLK_BACK)

Windows 7
IE 11

No.2727 2016/08/08(Mon) 15:27:26

Re: CLKITEMでウィンドウがアクティブになってしまいます / stuncloud
Windows 10 1607 のIE11ですが
CLK_BTNではなくCLK_ACCで非アクティブのまま押せました

No.2728 2016/08/08(Mon) 18:11:40

Re: CLKITEMでウィンドウがアクティブになってしまいます / GoG
思ったとおりに動かすことができました。

これからIEでうまく操作できないときは、CLK_ACC でも試してみるようにします。

ありがとうございます。

No.2729 2016/08/09(Tue) 09:18:17
COMで表示できないWebがあります。 / tyo
IEでWEBにアクセスし、表示が終わるまで待機する簡単なスクリプトなのですが、
Amazonにアクセスしようとするとエラーが出ます。
--------------------------------------------------------------------------------
//Script.uws
Option Explicit
dim IE
IE = CreateOleObj("InternetExplorer.Application")
IE.visible = true
IE.navigate("https://www.amazon.co.jp/") //yahooだとエラーが出ない
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readyState = 4 //ここでエラーが出ます。
--------------------------------------------------------------------------------
エラーメッセージ
COM_ERROR:例外が発生しました。
8行目 UNTIL !IE.busy AND IE.readyState = 4
--------------------------------------------------------------------------------
Windows10、
UWSC Pro
デバッガ
exeモジュール
すべてでエラーが出ました。

No.2716 2016/08/05(Fri) 15:45:16

Re: COMで表示できないWebがあります。 / Nagatani
私の環境では確認できませんでしたが

///////////////////////////////////////////
//Script.uws
IE = CreateOleObj("InternetExplorer.Application")
IE.visible = true
IE.navigate("https://www.amazon.co.jp/") //yahooだとエラーが出ない
busywait(ie)

//FAQ
//IE11にて画面更新後に操作(COM)ができない  #N45

DEF_DLL SendMessageA(Hwnd, Long, Long, Dword): bool: user32
CONST WM_ACTIVATE = $06
Procedure BusyWait(ie)   // 更新待ち処理
 repeat
  Sleep(0.2)
 until (! ie.busy) and (ie.readyState=4)
 SendMessageA(ie.Hwnd, WM_ACTIVATE, 0, 0) // 更新直後に WM_ACTIVATEを送る事によりバックグランドでも操作可となる
Fend
/////////////////////////////
上記で回避できるような気がします!

No.2719 2016/08/06(Sat) 10:24:35

Re: COMで表示できないWebがあります。 / tyo
ありがとうございます。
確認してみます。

No.2726 2016/08/08(Mon) 10:03:56
バックグラウンドで実行 / nano
exec、doscmdで画面表示はさせるがアクティブにはせずバックグラウンドで実行させる事は出来ないのでしょうか?
exec("wget URL",true)
doscmd("wget URL",false,true)
これをアクティブにはせずバックグラウンドで実行させたいです。

No.2725 2016/08/07(Sun) 04:04:28
CASE SLCT_32 以降定義されない / SHINJIさん
下記のような、スクリプトなのですが、変数:SLCT_32 が定義されていません となります。
デバッグを使用してるのですが、なぜかCASE SLCT_32 以降、青色文字になりません。
windows 10 home
よく使うファイルを選択しから選ぶスクリプトです。

FUNCTION OPENセラー表()
SELECT SLCTBOX( SLCT_CMB, 0, "開きたいセラー表の番号を指定" , _
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100)
CASE SLCT_1
fail = "データ セラー表0001.xlsx"
CASE SLCT_2
fail = "データ セラー表0002.xlsx"
CASE SLCT_3
fail = "データ セラー表0003.xlsx"
CASE SLCT_4
fail = "データ セラー表0004.xlsx"
CASE SLCT_5
fail = "データ セラー表0005.xlsx"
CASE SLCT_6
fail = "データ セラー表0006.xlsx"
CASE SLCT_7
fail = "データ セラー表0007.xlsx"
CASE SLCT_8
fail = "データ セラー表0008.xlsx"
CASE SLCT_9
fail = "データ セラー表0009.xlsx"
CASE SLCT_10
fail = "データ セラー表0010.xlsx"
CASE SLCT_11
fail = "データ セラー表0011.xlsx"
CASE SLCT_12
fail = "データ セラー表0012.xlsx"
CASE SLCT_13
fail = "データ セラー表0013.xlsx"
CASE SLCT_14
fail = "データ セラー表0014.xlsx"
CASE SLCT_15
fail = "データ セラー表0015.xlsx"
CASE SLCT_16
fail = "データ セラー表0016.xlsx"
CASE SLCT_17
fail = "データ セラー表0017.xlsx"
CASE SLCT_18
fail = "データ セラー表0018.xlsx"
CASE SLCT_19
fail = "データ セラー表0019.xlsx"
CASE SLCT_20
fail = "データ セラー表0020.xlsx"
CASE SLCT_21
fail = "データ セラー表0021.xlsx"
CASE SLCT_22
fail = "データ セラー表0022.xlsx"
CASE SLCT_23
fail = "データ セラー表0023.xlsx"
CASE SLCT_24
fail = "データ セラー表0024.xlsx"
CASE SLCT_25
fail = "データ セラー表0025.xlsx"
CASE SLCT_26
fail = "データ セラー表0026.xlsx"
CASE SLCT_27
fail = "データ セラー表0027.xlsx"
CASE SLCT_28
fail = "データ セラー表0028.xlsx"
CASE SLCT_29
fail = "データ セラー表0029.xlsx"
CASE SLCT_30
fail = "データ セラー表0030.xlsx"
CASE SLCT_31
fail = "データ セラー表0031.xlsx"
CASE SLCT_32
fail = "データ セラー表0032.xlsx"
CASE SLCT_33
fail = "データ セラー表0033.xlsx"
CASE SLCT_34
fail = "データ セラー表0034.xlsx"
CASE SLCT_35
fail = "データ セラー表0035.xlsx"
CASE SLCT_36
fail = "データ セラー表0036.xlsx"
CASE SLCT_37
fail = "データ セラー表0037.xlsx"
CASE SLCT_38
fail = "データ セラー表0038.xlsx"
CASE SLCT_39
fail = "データ セラー表0039.xlsx"
CASE SLCT_40
fail = "データ セラー表0040.xlsx"
CASE SLCT_41
fail = "データ セラー表0041.xlsx"
CASE SLCT_42
fail = "データ セラー表0042.xlsx"
CASE SLCT_43
fail = "データ セラー表0043.xlsx"
CASE SLCT_44
fail = "データ セラー表0044.xlsx"
CASE SLCT_45
fail = "データ セラー表0045.xlsx"
CASE SLCT_46
fail = "データ セラー表0046.xlsx"
CASE SLCT_47
fail = "データ セラー表0047.xlsx"
CASE SLCT_48
fail = "データ セラー表0048.xlsx"
CASE SLCT_49
fail = "データ セラー表0049.xlsx"
CASE SLCT_50
fail = "データ セラー表0050.xlsx"
CASE SLCT_51
fail = "データ セラー表0051.xlsx"
CASE SLCT_52
fail = "データ セラー表0052.xlsx"
CASE SLCT_53
fail = "データ セラー表0053.xlsx"
CASE SLCT_54
fail = "データ セラー表0054.xlsx"
CASE SLCT_55
fail = "データ セラー表0055.xlsx"
CASE SLCT_56
fail = "データ セラー表0056.xlsx"
CASE SLCT_57
fail = "データ セラー表0057.xlsx"
CASE SLCT_58
fail = "データ セラー表0058.xlsx"
CASE SLCT_59
fail = "データ セラー表0059.xlsx"
CASE SLCT_60
fail = "データ セラー表0060.xlsx"
CASE SLCT_61
fail = "データ セラー表0061.xlsx"
CASE SLCT_62
fail = "データ セラー表0062.xlsx"
CASE SLCT_63
fail = "データ セラー表0063.xlsx"
CASE SLCT_64
fail = "データ セラー表0064.xlsx"
CASE SLCT_65
fail = "データ セラー表0065.xlsx"
CASE SLCT_66
fail = "データ セラー表0066.xlsx"
CASE SLCT_67
fail = "データ セラー表0067.xlsx"
CASE SLCT_68
fail = "データ セラー表0068.xlsx"
CASE SLCT_69
fail = "データ セラー表0069.xlsx"
CASE SLCT_70
fail = "データ セラー表0070.xlsx"
CASE SLCT_71
fail = "データ セラー表0071.xlsx"
CASE SLCT_72
fail = "データ セラー表0072.xlsx"
CASE SLCT_73
fail = "データ セラー表0073.xlsx"
CASE SLCT_74
fail = "データ セラー表0074.xlsx"
CASE SLCT_75
fail = "データ セラー表0075.xlsx"
CASE SLCT_76
fail = "データ セラー表0076.xlsx"
CASE SLCT_77
fail = "データ セラー表0077.xlsx"
CASE SLCT_78
fail = "データ セラー表0078.xlsx"
CASE SLCT_79
fail = "データ セラー表0079.xlsx"
CASE SLCT_80
fail = "データ セラー表0080.xlsx"
CASE SLCT_81
fail = "データ セラー表0081.xlsx"
CASE SLCT_82
fail = "データ セラー表0082.xlsx"
CASE SLCT_83
fail = "データ セラー表0083.xlsx"
CASE SLCT_84
fail = "データ セラー表0084.xlsx"
CASE SLCT_85
fail = "データ セラー表0085.xlsx"
CASE SLCT_86
fail = "データ セラー表0086.xlsx"
CASE SLCT_87
fail = "データ セラー表0087.xlsx"
CASE SLCT_88
fail = "データ セラー表0088.xlsx"
CASE SLCT_89
fail = "データ セラー表0089.xlsx"
CASE SLCT_90
fail = "データ セラー表0090.xlsx"
CASE SLCT_91
fail = "データ セラー表0091.xlsx"
CASE SLCT_92
fail = "データ セラー表0092.xlsx"
CASE SLCT_93
fail = "データ セラー表0093.xlsx"
CASE SLCT_94
fail = "データ セラー表0094.xlsx"
CASE SLCT_95
fail = "データ セラー表0095.xlsx"
CASE SLCT_96
fail = "データ セラー表0096.xlsx"
CASE SLCT_97
fail = "データ セラー表0097.xlsx"
CASE SLCT_98
fail = "データ セラー表0098.xlsx"
CASE SLCT_99
fail = "データ セラー表0099.xlsx"
CASE SLCT_100
fail = "データ セラー表0100.xlsx"

SELEND






RESULT = fail
FEND

No.2714 2016/08/05(Fri) 01:26:42

Re: CASE SLCT_32 以降定義されない / stuncloud
SLCT_* 定数が SLCT_31 までしか定義されてないからです
引数が31個以上の場合はSLCT_NUMかSLCT_STRを使わないといけません
このケースならこんな感じにします

dim list[] = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100

ret = SLCTBOX(SLCT_NUM or SLCT_CMB, 0, "開きたいセラー表の番号を指定", list)
if ret <> -1 then
 fail = "データ セラー表" + replace(format(list[ret], 4), " ", "0") + ".xlsx"
endif
msgbox(fail)

No.2715 2016/08/05(Fri) 11:14:59

Re: CASE SLCT_32 以降定義されない / しろまさ
// listが連番なら生成しても良いですね。
Dim i, list
For i = 1 To 100
  list = list + i + ","
Next
list = Split(list, ",", TRUE)

ret = SLCTBOX(SLCT_NUM or SLCT_CMB, 0, "開きたいセラー表の番号を指定" , list)

No.2717 2016/08/05(Fri) 17:22:27

Re: CASE SLCT_32 以降定義されない / SHINJIさん
stuncloudさん、しろまささん
非常にわかりやすいスクリプトありがとうございます!
めっちゃたすかりました!

No.2720 2016/08/06(Sat) 12:29:26

Re: CASE SLCT_32 以降定義されない / SHINJIさん
failセラー表 = SELECTFailListSerial("データ セラー表", ".xlsx", 100, 4)
print failセラー表

↓↓リストから1を選択↓↓
データ セラー表1111.xlsx 、となってしまいます


下記のようにしてみたのですが

FUNCTION SELECTFailListSerial( ファイル名, 拡張子, リスト数, 固定桁数 )
Dim i, list
For i = 1 To リスト数
  list = list + i + ","
Next
list = Split(list, ",", TRUE)
ret = SLCTBOX(SLCT_NUM or SLCT_CMB, 0, ファイル名, list)
if ret <> -1 then
 fail = ファイル名 + replace(format(list[ret], 固定桁数), " ", "0") + 拡張子
endif
RESULT = fail
FEND

-------------------------------------------------------------------------------------------
この場合はうまくいくのですが
データ セラー表0001.xlsx

FUNCTION SELECTFailListSerial( ファイル名, 拡張子, リスト数, 固定桁数 )
dim list[] = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100

ret = SLCTBOX(SLCT_NUM or SLCT_CMB, 0, ファイル名, list)
if ret <> -1 then
 fail = ファイル名 + replace(format(list[ret], 固定桁数), " ", "0") + 拡張子
endif

RESULT = fail
FEND

No.2721 2016/08/06(Sat) 14:14:57

Re: CASE SLCT_32 以降定義されない / miles
// listの内容がSplit関数で文字型になるからでしょう。
// 数値処理フラグをTRUEにすれば、数値型になるので、formatでの変換が正しくなると思います。

list = Split(list, ",", TRUE, TRUE)

No.2722 2016/08/06(Sat) 14:37:27

Re: CASE SLCT_32 以降定義されない / SHINJIさん
miles さん
ありがとうございます!!

No.2723 2016/08/06(Sat) 17:21:06

Re: CASE SLCT_32 以降定義されない / SHINJIさん
下記のようなスクリプトを作ることができました!ありがとうございます!
指定した連番の数字、ファイル、をリストから選択できます!
こんなにいいもの(自分にとって)が作れて感動です! stuncloud さん、 しろまさ さん、miles さんありがとうございました!!

//コメントは空にできない。
FUNCTION SELECTSerialList( ファイル名, 拡張子, コメント, 始数, 終数, 固定桁数 )


Dim i, list

For i = 始数 To 終数
  list = list + i + ","
Next
list = Split(list, ",", TRUE,TRUE)

ret = SLCTBOX(SLCT_NUM or SLCT_CMB, 0, コメント, list)
if ret <> -1 then
 fail = ファイル名 + replace(format(list[ret], 固定桁数), " ", "0") + 拡張子
endif

RESULT = fail
FEND

No.2724 2016/08/06(Sat) 18:07:19
全796件 [ ページ : << 1 ... 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 80 >> ]