|
配列からエクセルファイルに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
|
|