!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part66
https://mevius.5ch.net/test/read.cgi/tech/1589085825/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Excel VBA 質問スレ Part67
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 33da-3+hg)
2020/06/26(金) 02:01:29.56ID:uDfmpksE0657デフォルトの名無しさん (ワッチョイ 7949-xE3T)
2020/07/29(水) 00:46:40.06ID:d6pTrFks0658デフォルトの名無しさん (ワッチョイ d610-1vA1)
2020/07/29(水) 01:00:46.72ID:X5Dn8QJR0 >>644
ありがとうございます
objIE.document.GetElementsByTagName("タグ名")(添え字)
上記の構文で該当のページに自動クリックするようになったのです
For p = 1 to 10
objIE.document.GetElementsByTagName("タグ名")(p)
Next p
上のような構文で最初は2ページにきちんと遷移するのですが、次は4ページ、次は2ページ、次は3ページと
うまくページ遷移が出来ません。
一応MsgBoxでpを参照すると1〜10の数字は格納されてるみたいなのですが
objIE.document.GetElementsByTagName("タグ名")(1)で2ページ目
objIE.document.GetElementsByTagName("タグ名")(2)で4ページ目
objIE.document.GetElementsByTagName("タグ名")(3)で3ページ目
上記のように変数の数字と同じページに進んでくれない処理になります。
For文を使用してインクリメントするのではなく、表示させたいページとそれに対応する添え字で処理をしてくしか方法はないのでしょうか
ありがとうございます
objIE.document.GetElementsByTagName("タグ名")(添え字)
上記の構文で該当のページに自動クリックするようになったのです
For p = 1 to 10
objIE.document.GetElementsByTagName("タグ名")(p)
Next p
上のような構文で最初は2ページにきちんと遷移するのですが、次は4ページ、次は2ページ、次は3ページと
うまくページ遷移が出来ません。
一応MsgBoxでpを参照すると1〜10の数字は格納されてるみたいなのですが
objIE.document.GetElementsByTagName("タグ名")(1)で2ページ目
objIE.document.GetElementsByTagName("タグ名")(2)で4ページ目
objIE.document.GetElementsByTagName("タグ名")(3)で3ページ目
上記のように変数の数字と同じページに進んでくれない処理になります。
For文を使用してインクリメントするのではなく、表示させたいページとそれに対応する添え字で処理をしてくしか方法はないのでしょうか
659デフォルトの名無しさん (ワッチョイ d663-uaxO)
2020/07/29(水) 02:34:23.24ID:TpnjQV/H0 それでページ遷移したらバグを疑うが
660デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/29(水) 13:22:46.34ID:mS6Tz06p0 本社が作って社内システムにアップロードされてるVBAマクロが
マクロの記録をつなぎ合わせて作った酷いコードでつらい・・・
連続した1000行*5列ぐらいのコピペするだけなのにVBE50行ぐらい使っててつらい・・・
マクロの記録をつなぎ合わせて作った酷いコードでつらい・・・
連続した1000行*5列ぐらいのコピペするだけなのにVBE50行ぐらい使っててつらい・・・
661デフォルトの名無しさん (スプッッ Sd7a-u4+4)
2020/07/29(水) 13:57:55.28ID:MurrSo1vd >>657
まず、最初の方にあるSet r = ActiveSheet.UsedRangeは意味が無いし、必要無い。
rはFor文の中でUsedRangeの中の1つ1つのセルを巡っていくのであって、UsedRangeそのものじゃない。
次に、元々のプログラムでも思ったのだが、書ける人は文字列を与えると変換する関数を作ることを考える。
それさえ出来てしまえばrにそれを与えるだけ。
Private Sub test()
Dim r As Range
For Each r In ActiveSheet.UsedRange
r.Value=ConvertString(r.Value)
Next
End Sub
Private Function ConvertString(strData As String) As String
Dim lngLen As Long
Do While lngLen<>Len(strData)
lngLen=Len(strData)
strData=Replace(strData,"||","|")
Loop
If Left(strData,1)="|" Then
strData=Mid(strData,2)
EndIf
If Right(strData,1)="|" Then
strData=Left(strData,Len(strData)-1)
EndIf
ConvertString=strData
End Function
まず、最初の方にあるSet r = ActiveSheet.UsedRangeは意味が無いし、必要無い。
rはFor文の中でUsedRangeの中の1つ1つのセルを巡っていくのであって、UsedRangeそのものじゃない。
次に、元々のプログラムでも思ったのだが、書ける人は文字列を与えると変換する関数を作ることを考える。
それさえ出来てしまえばrにそれを与えるだけ。
Private Sub test()
Dim r As Range
For Each r In ActiveSheet.UsedRange
r.Value=ConvertString(r.Value)
Next
End Sub
Private Function ConvertString(strData As String) As String
Dim lngLen As Long
Do While lngLen<>Len(strData)
lngLen=Len(strData)
strData=Replace(strData,"||","|")
Loop
If Left(strData,1)="|" Then
strData=Mid(strData,2)
EndIf
If Right(strData,1)="|" Then
strData=Left(strData,Len(strData)-1)
EndIf
ConvertString=strData
End Function
662デフォルトの名無しさん (スプッッ Sd7a-u4+4)
2020/07/29(水) 14:31:44.31ID:MurrSo1vd >>658
クリックする命令が無いが、For文の中でクリックしているとして、
1.そのpの1〜10が正しく遷移出来るリンクのあるタグかどうか?
2.一旦、遷移したら場合にもよるがobjIEは遷移後のページになる。
とすれば、Document以下のソースが遷移後のぺージのソースになる。
3.遷移には時間がかかるが、それをきちんと待つことが考慮されている?
ぐらいは気になるね。
クリックする命令が無いが、For文の中でクリックしているとして、
1.そのpの1〜10が正しく遷移出来るリンクのあるタグかどうか?
2.一旦、遷移したら場合にもよるがobjIEは遷移後のページになる。
とすれば、Document以下のソースが遷移後のぺージのソースになる。
3.遷移には時間がかかるが、それをきちんと待つことが考慮されている?
ぐらいは気になるね。
663デフォルトの名無しさん (ワッチョイ 99cc-UdrD)
2020/07/29(水) 15:27:30.52ID:6iCm/sfN0 配列ary2の重複を削除して配列ary3にいれたいのですが
実行後ary3の値はすべて空欄になってしまいます
ary2には全て値が入っています
Option Base 1
Sub Test4()
Dim EndRow, cnt, cnt2 As Long
Dim flg As Boolean
EndRow = Cells(Rows.Count,1).End(xlUp).Row
ReDim ary2(EndRow)
ReDim ary3(EndRow)
実行後ary3の値はすべて空欄になってしまいます
ary2には全て値が入っています
Option Base 1
Sub Test4()
Dim EndRow, cnt, cnt2 As Long
Dim flg As Boolean
EndRow = Cells(Rows.Count,1).End(xlUp).Row
ReDim ary2(EndRow)
ReDim ary3(EndRow)
664663 (ワッチョイ 99cc-UdrD)
2020/07/29(水) 15:28:20.62ID:6iCm/sfN0 ↓続きです
For cnt = 1 To EndRow 'ary2に値は入っています
ary2(cnt) = Cells(cnt,1)
End cnt
For cnt = 1 To UBound(ary2)
flg = False
For cnt2 = 1 To UBound(ary3)
If (ary2(cnt) = ary3(cnt2)) Then
flg = True
Exit For
End If
Next cnt2
If (flg = False) Then
ary3(UBound(ary3)) = ary2(cnt)
ReDim Preserve ary3(UBound(ary3) + 1)
End If
Next cnt
End Sub
For cnt = 1 To EndRow 'ary2に値は入っています
ary2(cnt) = Cells(cnt,1)
End cnt
For cnt = 1 To UBound(ary2)
flg = False
For cnt2 = 1 To UBound(ary3)
If (ary2(cnt) = ary3(cnt2)) Then
flg = True
Exit For
End If
Next cnt2
If (flg = False) Then
ary3(UBound(ary3)) = ary2(cnt)
ReDim Preserve ary3(UBound(ary3) + 1)
End If
Next cnt
End Sub
665デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/07/29(水) 16:02:10.87ID:AAZ7Zxr30666デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/07/29(水) 16:11:12.11ID:AAZ7Zxr30667デフォルトの名無しさん (ワッチョイ 017c-1vA1)
2020/07/29(水) 17:54:47.23ID:OLLqLA300 >>663
変数の中身がどういう動きしてるか1行1行確認しよう
変数の中身がどういう動きしてるか1行1行確認しよう
668663 (ワッチョイ 99cc-UdrD)
2020/07/29(水) 18:28:53.19ID:6iCm/sfN0669デフォルトの名無しさん (ワッチョイ 7a4f-1TqB)
2020/07/29(水) 18:36:47.82ID:XMqoLN/00670デフォルトの名無しさん (ワッチョイ 6501-pXS1)
2020/07/29(水) 19:15:26.15ID:pwxjYZ3c0 Mapに固定値設定してMapから取り出すってなんか意味ある?
直接固定値見てもいいんだけど
直接固定値見てもいいんだけど
671デフォルトの名無しさん (ラクッペペ MMee-LxoB)
2020/07/29(水) 19:38:04.93ID:/vJCggp/M 書いたやつに聞けよ
672デフォルトの名無しさん (ワッチョイ 017c-1vA1)
2020/07/29(水) 20:52:19.99ID:OLLqLA300 >>668
どうして空になってるのか順に追って行かないと原因わからんでしょ・・・
どうして空になってるのか順に追って行かないと原因わからんでしょ・・・
673デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 09:11:02.16ID:G1iLlMLAH VBAの知識0なんですけど
・1000円以上買うごとに1口
・1ヶ月感の累計購入金額総額で抽選
この条件で最大300人に当たるキャンペーンやりたいんだけど
これをVBAで動かして抽出するのにどれくらいの手間がかかりますか?
口数は1人あたり0口から5000口(最大500万円想定)
対象人数は最大2万人を想定してます
ランダム関数でなんとか無理やり組もうとするとデータ多すぎてメモリたんなくなる・・・
・1000円以上買うごとに1口
・1ヶ月感の累計購入金額総額で抽選
この条件で最大300人に当たるキャンペーンやりたいんだけど
これをVBAで動かして抽出するのにどれくらいの手間がかかりますか?
口数は1人あたり0口から5000口(最大500万円想定)
対象人数は最大2万人を想定してます
ランダム関数でなんとか無理やり組もうとするとデータ多すぎてメモリたんなくなる・・・
674デフォルトの名無しさん (ワッチョイ 99da-xE3T)
2020/07/30(木) 09:15:44.99ID:sgyBPyzj0 >>673
できる業者に委託する金だけだせばいいんじゃね
できる業者に委託する金だけだせばいいんじゃね
675デフォルトの名無しさん (テテンテンテン MMee-LTj5)
2020/07/30(木) 09:20:25.92ID:oxoY3p6DM そんなもんDBに投入してSQLで一発だろ
676デフォルトの名無しさん (ラクッペペ MMee-LxoB)
2020/07/30(木) 09:23:42.54ID:JMS2FJh9M 一口ごとに1枚プリントアウト。この時なるべく小さい紙に印刷するのがポイント!
後は紙を穴の空いたボックスに詰めて目隠しした担当者が300枚を抜き出す
後は紙を穴の空いたボックスに詰めて目隠しした担当者が300枚を抜き出す
677デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/30(木) 09:36:09.05ID:tHevDqCo0 個人の氏名ごとに口数記録するじゃんね
口数の合計値をlongにいれるじゃんね
longの最大は21億〜だからいけるじゃんね
んでその合計値が例えば20万だったら
20万の中からRandomをうまいこと使って300個の数字を抽出すればいいだけじゃんね
各数字は氏名ごとに記録した口数を上から合計したときの数値と一致するわけじゃんね
簡単じゃんね
口数の合計値をlongにいれるじゃんね
longの最大は21億〜だからいけるじゃんね
んでその合計値が例えば20万だったら
20万の中からRandomをうまいこと使って300個の数字を抽出すればいいだけじゃんね
各数字は氏名ごとに記録した口数を上から合計したときの数値と一致するわけじゃんね
簡単じゃんね
678デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/30(木) 09:43:40.24ID:tHevDqCo0 抽出するには、いろんな方法あるけど
位ごとに数字を選ぶみたいなのでもいいじゃんね
例えば合計値が232,984口だったとしたら
10万の位→2,1,0から1つえらぶ
1万の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
千の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
百の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
10の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
1の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
これで1つの数字ができる
これを300回繰り返すんだけど
0になったり、重複したりしたら無効でやり直しするじゃんね
位ごとに数字を選ぶみたいなのでもいいじゃんね
例えば合計値が232,984口だったとしたら
10万の位→2,1,0から1つえらぶ
1万の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
千の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
百の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
10の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
1の位→9,8,7,6,5,4,3,2,1,0から1つ選ぶ
これで1つの数字ができる
これを300回繰り返すんだけど
0になったり、重複したりしたら無効でやり直しするじゃんね
679デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/30(木) 09:44:36.17ID:tHevDqCo0 てかどういう風でもいいからゴリゴリやっていくのが面白いのにさー
スマートじゃなくてもいいからゴリゴリいこうぜぇー
スマートじゃなくてもいいからゴリゴリいこうぜぇー
680デフォルトの名無しさん (ドコグロ MM9a-Fc3l)
2020/07/30(木) 09:48:09.38ID:P52O6TU4M おまえら食いつきがいいな
681デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 09:51:09.03ID:G1iLlMLAH 最初口数だして横に5000まで数字並べて
IF(1〜5000<口数,RAND(),"")って全部のセルに埋めてたら
20000×5000の関数が動くからフリーズして困ったんだよね・・・
これをやったあとMAX関数で一番でかい数字引っ張ってきて
それをソートして上から300人ってすれば重複当選もないし問題ないかと思ってた
まさか4〜500万購入ユーザーがいるなんて聞いてなかったから気軽に引き受けちゃったよ・・・
IF(1〜5000<口数,RAND(),"")って全部のセルに埋めてたら
20000×5000の関数が動くからフリーズして困ったんだよね・・・
これをやったあとMAX関数で一番でかい数字引っ張ってきて
それをソートして上から300人ってすれば重複当選もないし問題ないかと思ってた
まさか4〜500万購入ユーザーがいるなんて聞いてなかったから気軽に引き受けちゃったよ・・・
682デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 09:53:13.58ID:G1iLlMLAH 取り敢えず2万人の口数を順番に足していったリスト作って
合計数からランダムに300個抜き出して
それを作ったリストと照らし合わせればいいのか
サンクス、突破口見えた気がする
VBAじゃなくてもいいのか・・・ありがとう
合計数からランダムに300個抜き出して
それを作ったリストと照らし合わせればいいのか
サンクス、突破口見えた気がする
VBAじゃなくてもいいのか・・・ありがとう
683デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/30(木) 09:56:06.13ID:tHevDqCo0 それなんも工夫ないじゃんね
つまらないじゃんね
のーたりんじゃんね
つまらないじゃんね
のーたりんじゃんね
684デフォルトの名無しさん (ワッチョイ d540-Y3wz)
2020/07/30(木) 10:27:51.92ID:EC4xcxw30 >>673
A列に人の名前なりIDなり入れる
B列に口数
C列は当選番号の割り振りで、C1はB1の値、CnはC(n-1)+Bnとし、C(n-1)+1〜CnがAnの当選番号
これと独立して300回ランダム*全口数+1で当選番号300個を作る
それを1つずつ誰のものか確認して当選者とする
A列に人の名前なりIDなり入れる
B列に口数
C列は当選番号の割り振りで、C1はB1の値、CnはC(n-1)+Bnとし、C(n-1)+1〜CnがAnの当選番号
これと独立して300回ランダム*全口数+1で当選番号300個を作る
それを1つずつ誰のものか確認して当選者とする
685デフォルトの名無しさん (ワッチョイ 7a4f-1TqB)
2020/07/30(木) 10:35:23.48ID:cH8Va6i20 じゃんね、ってどこの方言だろ
東京ではじゃんとは言うけど
じゃんねはあまり使わない
使ったとしてもここまで執拗に使わないじゃんね
東京ではじゃんとは言うけど
じゃんねはあまり使わない
使ったとしてもここまで執拗に使わないじゃんね
686デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 11:11:00.39ID:G1iLlMLAH この方式だと重複当選しちゃうな・・・
2〜3回繰り返して重複当選除外してやるかいね
どうせ1回しかやらんし
2〜3回繰り返して重複当選除外してやるかいね
どうせ1回しかやらんし
687デフォルトの名無しさん (ワッチョイ 5d01-Dfq1)
2020/07/30(木) 11:50:07.24ID:RHK/Swp/0 ああ、重複当選なしなのね
じゃあ300じゃなくて400ぐらいやっといて、301以降は順に重複時用の補欠にすればいい
じゃあ300じゃなくて400ぐらいやっといて、301以降は順に重複時用の補欠にすればいい
688デフォルトの名無しさん (ワッチョイ d663-uaxO)
2020/07/30(木) 11:50:49.23ID:A5neBprE0 2口の人は2回当選して然るべきでは?
口数ってそういうモノだと思うが
口数ってそういうモノだと思うが
689デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 11:58:26.01ID:G1iLlMLAH 複数当選してしまうと総額が景品表示法に引っかかってしまうんですよ・・・
690デフォルトの名無しさん (ワッチョイ ce8c-UdrD)
2020/07/30(木) 12:09:03.16ID:LgbrNaJ+0691デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 12:11:02.85ID:G1iLlMLAH692デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/07/30(木) 12:18:53.15ID:AlO/S9Es0693デフォルトの名無しさん (ワッチョイ 99da-xE3T)
2020/07/30(木) 12:58:00.60ID:sgyBPyzj0 知識0でやろうとするのが間違いだと思うが
694デフォルトの名無しさん (ワッチョイ 017c-1vA1)
2020/07/30(木) 13:01:49.26ID:5b+GEPmC0 >>673
何の手間?
何の手間?
695デフォルトの名無しさん (JP 0H62-5jfS)
2020/07/30(木) 13:20:10.92ID:G1iLlMLAH VBAの基礎を学んで言われたことを遂行するための知識を得るための手間かな・・・ほんと知識0なんで必要ならこれを機に手を出してみようかなと
696デフォルトの名無しさん (ワッチョイ 4583-23Ku)
2020/07/30(木) 13:41:23.22ID:/qyU4NXl0 なんか前もこんな奴居なかった?
697デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/30(木) 13:59:59.21ID:tHevDqCo0 ビール飲みながらすげー適当に組んでみたんだけどあげちゃだめなの?
てかコード貼ったら使えるレベルなん?
うちの3世代ぐらい前のi5のPCで300件で5分ぐらいかかりそうな感じだけど
てかコード貼ったら使えるレベルなん?
うちの3世代ぐらい前のi5のPCで300件で5分ぐらいかかりそうな感じだけど
698デフォルトの名無しさん (ワッチョイ 7a4f-1TqB)
2020/07/30(木) 14:12:07.28ID:cH8Va6i20 >>697
いや、仕事しようよ
いや、仕事しようよ
699デフォルトの名無しさん (オッペケ Sr05-/T2I)
2020/07/30(木) 14:18:10.19ID:vzRw0yWJr >>658
回答頂きましてありがとうございます
再度の質問になえうのですが
getelement.所属クラス.getelementbytagname("a")(インクリメント変数).length -1
messageボックスでouterhtml出力
上記で取得されてる要素を参照すると
1の時、label=page1 何だかcheck=true
2の時、label=page2 何だかcheck=false
3の時、label=page1 何だかcheck=false
4の時、label=page4 何だかcheck=false
5の時、label=page3 何だかcheck=false
上記のような要素取得がなされており、番号順にページ遷移がなされてないことがわかりました
タグ以外にラベルやタイプ等で特定要素を抽出する方法はありませんでしょうか
回答頂きましてありがとうございます
再度の質問になえうのですが
getelement.所属クラス.getelementbytagname("a")(インクリメント変数).length -1
messageボックスでouterhtml出力
上記で取得されてる要素を参照すると
1の時、label=page1 何だかcheck=true
2の時、label=page2 何だかcheck=false
3の時、label=page1 何だかcheck=false
4の時、label=page4 何だかcheck=false
5の時、label=page3 何だかcheck=false
上記のような要素取得がなされており、番号順にページ遷移がなされてないことがわかりました
タグ以外にラベルやタイプ等で特定要素を抽出する方法はありませんでしょうか
700デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/07/30(木) 14:23:09.16ID:tHevDqCo0 >>698
でしゅよねー(ろれつが回らない
でしゅよねー(ろれつが回らない
701デフォルトの名無しさん (ワッチョイ 017c-1vA1)
2020/07/30(木) 14:30:10.36ID:5b+GEPmC0702デフォルトの名無しさん (アウアウエー Sa22-DfbS)
2020/07/30(木) 15:27:13.51ID:YhpZ6thja703デフォルトの名無しさん (ワッチョイ 5d01-Dfq1)
2020/07/30(木) 15:33:07.63ID:zHAo07P50 Excel VBAの問題じゃなくてそれ以前の問題だよな
704デフォルトの名無しさん (スッップ Sd9a-nhZs)
2020/07/30(木) 15:36:31.06ID:keIwCUAVd perl,pythonスレに続く釣りなのかね?
705699 (オッペケ Sr05-/T2I)
2020/07/30(木) 15:36:51.50ID:THFUAhsVr innertextでクラス配下のaタグの行を1つずつ抽出でfor eachでページ番号のラベルに引っ掛けて処理するっていうのは可能でしょうか
706デフォルトの名無しさん (オッペケ Sr05-/T2I)
2020/07/30(木) 17:31:34.81ID:THFUAhsVr すいませんある程度自己解決しましたが、取得した要素にouterhtmlで抽出したところ番号順にタグ情報が取得出来たのですが、outerhtmlに続けて.clickだとエラーになります
一旦変数に格納しないとクリック出来ませんでしょうか
一旦変数に格納しないとクリック出来ませんでしょうか
707デフォルトの名無しさん (スプッッ Sd7a-u4+4)
2020/07/30(木) 19:05:02.57ID:GYhlOBUpd708デフォルトの名無しさん (ワッチョイ d610-1vA1)
2020/07/30(木) 23:18:28.10ID:i0KpmXdS0 >>707
すいません
Dim table_date As MSHTML.HTMLDocument
上の宣言でまずouterhtmlの取得要素を格納する変数を宣言する必要があると思いますが
ユーザー定義型エラーが出てしまい、調べたところ参照設定で[Microsoft HTML Object Library]を有効にしないと使えないという事ですが、
上記のHTMLDocumentオブジェクトで宣言したマクロを他のPCのエクセルでも使用する場合、イチイチ参照設定を有効にしないと使えないのでしょうか
あともう1つの質問になりますが、
table_date = getelementclass(objie,"所属class名").outerhtml
上記でまず対象のタグが所属するclassの全要素を変数に格納したあと
for i = 0 to 10
table_date.getelementsbytag("a")(i).click
next
変数に格納されたhtml文のaタグ要素を一行ずつ取り出してボタンクリックしたいのですが、
この構文で可能でしょうか
すいません
Dim table_date As MSHTML.HTMLDocument
上の宣言でまずouterhtmlの取得要素を格納する変数を宣言する必要があると思いますが
ユーザー定義型エラーが出てしまい、調べたところ参照設定で[Microsoft HTML Object Library]を有効にしないと使えないという事ですが、
上記のHTMLDocumentオブジェクトで宣言したマクロを他のPCのエクセルでも使用する場合、イチイチ参照設定を有効にしないと使えないのでしょうか
あともう1つの質問になりますが、
table_date = getelementclass(objie,"所属class名").outerhtml
上記でまず対象のタグが所属するclassの全要素を変数に格納したあと
for i = 0 to 10
table_date.getelementsbytag("a")(i).click
next
変数に格納されたhtml文のaタグ要素を一行ずつ取り出してボタンクリックしたいのですが、
この構文で可能でしょうか
709デフォルトの名無しさん (ワッチョイ fa63-uaxO)
2020/07/30(木) 23:22:34.48ID:b3ddbfY40 ちゃんもリファレンスを読んで返り値の型を確認しようね
710デフォルトの名無しさん (ワッチョイ d68e-nhZs)
2020/07/31(金) 00:01:53.71ID:sBpjKr+V0 >>708
そろそろ死ねよ
そろそろ死ねよ
711デフォルトの名無しさん (アウアウウー Sa09-4GEq)
2020/07/31(金) 06:14:13.92ID:mPBeAG88a >>708
まず自分で考えるくせを付けたほうがいいよ
まず自分で考えるくせを付けたほうがいいよ
712デフォルトの名無しさん (ワッチョイ 4102-UD9X)
2020/07/31(金) 07:35:13.13ID:Seq7lwgB0 ソルバーを使おうと思ってまずは機能するか簡単なものを作ってみたんですが、
与える値によって解があるにも関わらず機能したりしなかったりするんですが何がおかしいのでしょうか
A2 9
A3 15
A4 30
B2 空白
B3 空白
B4 空白
C2 =SUMPRODUCT(A2:A4,B2:B4)
として、値45で実行すると正しく解が見つかるのですが
値60で実行すると解が見つけられないのです。
45の場合
https://i.imgur.com/eAOJ9Ju.jpg
https://i.imgur.com/eCc0hFi.jpg
60の場合
https://i.imgur.com/t2CqGfo.jpg
https://i.imgur.com/lNC6CDZ.jpg
与える値によって解があるにも関わらず機能したりしなかったりするんですが何がおかしいのでしょうか
A2 9
A3 15
A4 30
B2 空白
B3 空白
B4 空白
C2 =SUMPRODUCT(A2:A4,B2:B4)
として、値45で実行すると正しく解が見つかるのですが
値60で実行すると解が見つけられないのです。
45の場合
https://i.imgur.com/eAOJ9Ju.jpg
https://i.imgur.com/eCc0hFi.jpg
60の場合
https://i.imgur.com/t2CqGfo.jpg
https://i.imgur.com/lNC6CDZ.jpg
713デフォルトの名無しさん (アウアウエー Sa22-DfbS)
2020/07/31(金) 08:36:27.75ID:BJAFpQuia714デフォルトの名無しさん (ワッチョイ fa63-uaxO)
2020/07/31(金) 09:39:24.31ID:j4Q2HRqw0 局所最適なんだから初期値によって結果が異なるのは自明です
715デフォルトの名無しさん (ワッチョイ fa2f-SLIs)
2020/07/31(金) 11:33:16.53ID:QyaenPE80 で、それのどこにVBAが関係してるんだ?
716デフォルトの名無しさん (スプッッ Sd7a-u4+4)
2020/07/31(金) 12:13:10.42ID:QmvWOqJdd717デフォルトの名無しさん (ワッチョイ 7a4f-1TqB)
2020/07/31(金) 12:28:54.85ID:TQ16TWaV0 質問です
シェイプを回転させたくて
シェイプのRotationX,RotationY,RotationZを弄ってみたのですが、
Z軸は上手く行くのですが、X軸、Y軸はその軸に併せて縮小するだけで全く奥行きが出ません。
これは設定するプロパティが足りないのでしょうか?
それともこういうものなんでしょうか?
シェイプを回転させたくて
シェイプのRotationX,RotationY,RotationZを弄ってみたのですが、
Z軸は上手く行くのですが、X軸、Y軸はその軸に併せて縮小するだけで全く奥行きが出ません。
これは設定するプロパティが足りないのでしょうか?
それともこういうものなんでしょうか?
718デフォルトの名無しさん (アウアウエー Sa22-DfbS)
2020/07/31(金) 13:03:40.39ID:qhJJRQ9da 2.5Dとか擬似 3Dに過ぎないからでしょ
719デフォルトの名無しさん (ワッチョイ 4102-UD9X)
2020/07/31(金) 20:02:27.14ID:Seq7lwgB0720デフォルトの名無しさん (ワッチョイ 65da-xE3T)
2020/08/01(土) 08:39:00.72ID:kuObS2ra0721デフォルトの名無しさん (ワッチョイ 4583-23Ku)
2020/08/01(土) 09:22:34.54ID:wQymbaU60 部屋の模様替え後のレイアウトをExcelで作ろうとしてた人はいたな
722デフォルトの名無しさん (ブーイモ MMbe-PQMy)
2020/08/01(土) 09:31:20.60ID:znOplMqnM 一軒家の建築図面をExcelで作ろうとしてる人もいるかもしれない
723デフォルトの名無しさん (ワッチョイ 1602-xE3T)
2020/08/01(土) 11:11:05.09ID:Y2rZE5zP0 セルの色で絵を描くおじいちゃんがいる
724デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/08/01(土) 11:15:30.51ID:qSPnGZZQ0 15年ぐらい前に、セルに色を塗ってゲームやアニメを作るのがはやった
725デフォルトの名無しさん (アウアウカー Sa5d-DfbS)
2020/08/01(土) 11:19:29.08ID:biQ1QRTHa Excelで 3Dモデル表示は出来るぞ?
ホーム
わかできブログ
ExcelやWordでも3Dモデルが扱えるというので試してみた
https://www.wakarutodekiru.com/blog/tips/673.html
https://www.wakarutodekiru.com/blog/wp-content/uploads/2020/05/2017-09-25_15h52_57-600x447-1.png
ホーム
わかできブログ
ExcelやWordでも3Dモデルが扱えるというので試してみた
https://www.wakarutodekiru.com/blog/tips/673.html
https://www.wakarutodekiru.com/blog/wp-content/uploads/2020/05/2017-09-25_15h52_57-600x447-1.png
726デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/08/01(土) 11:33:13.92ID:qSPnGZZQ0 できるかできないかじゃなくて、表示パフォーマンスや製作コストが実用レベルかどうかが重要では
727デフォルトの名無しさん (アウアウカー Sa5d-DfbS)
2020/08/01(土) 11:39:41.69ID:biQ1QRTHa728デフォルトの名無しさん (ワッチョイ 5d01-UdrD)
2020/08/01(土) 11:47:14.76ID:bRba9mah0 エクセルを禁止しないと日本のITは韓国に追いつけない。
エクセルのせいで数学がわからない子供たちが増えている。
Ubuntuを使うべき。
エクセルのせいで数学がわからない子供たちが増えている。
Ubuntuを使うべき。
729デフォルトの名無しさん (ワッチョイ 99da-xE3T)
2020/08/01(土) 12:06:15.89ID:51ANSeyq0 EXCELとの因果関係を証明せよ
730デフォルトの名無しさん (ワッチョイ 4583-23Ku)
2020/08/01(土) 12:21:54.41ID:wQymbaU60 そもそも子供はExcel使ってねーだろ
なんか電波でも出してるのか?
なんか電波でも出してるのか?
731デフォルトの名無しさん (アウアウカー Sa5d-DfbS)
2020/08/01(土) 12:29:20.74ID:biQ1QRTHa ソロバンから電卓に代わってもそうゆう人って一定数いるよね
小学生からExcel使えるなら
FAXで集計してるコロナ関係者よりマシ
小学生からExcel使えるなら
FAXで集計してるコロナ関係者よりマシ
732デフォルトの名無しさん (ワッチョイ 1d02-pXIf)
2020/08/01(土) 12:35:20.61ID:GdrGS70y0 そうゆうとか言ってる人はVBAの前に日本語勉強したほうがいいよ
733デフォルトの名無しさん (ワッチョイ 5d01-UdrD)
2020/08/01(土) 12:49:17.09ID:bRba9mah0 小学生のIT教育でUbuntuのインストールを教えるべきでは?
734デフォルトの名無しさん (アウアウカー Sa5d-DfbS)
2020/08/01(土) 12:59:14.62ID:biQ1QRTHa すいませんすみませんあーざーっす
「なんで、そーゆーこと言うの?」さおいふ
オッハーマヨチュチュ
タイガーアッパっパー
「こちらの方でよろしかったですか?」
「おにぎり温めなかったほうで大丈夫ですか?」
「お買い物袋はお持ちでありませんでかまいませんか?」
「なんで、そーゆーこと言うの?」さおいふ
オッハーマヨチュチュ
タイガーアッパっパー
「こちらの方でよろしかったですか?」
「おにぎり温めなかったほうで大丈夫ですか?」
「お買い物袋はお持ちでありませんでかまいませんか?」
735デフォルトの名無しさん (ワッチョイ 2590-roBb)
2020/08/01(土) 13:03:30.83ID:cAfu1ZYc0736デフォルトの名無しさん (ワッチョイ 5d01-UdrD)
2020/08/01(土) 13:04:03.06ID:bRba9mah0 UbuntuはスパコンのOSにも使われているので、数学に強いです。
エクセルは禁止にするべきです。
エクセルは禁止にするべきです。
737デフォルトの名無しさん (ワッチョイ 7a4f-1TqB)
2020/08/01(土) 13:50:27.99ID:VVRkNkWF0 >>736
金持ちLinuxおじさんこっちに来てまで迷惑掛けるなよ
金持ちLinuxおじさんこっちに来てまで迷惑掛けるなよ
738デフォルトの名無しさん (ワッチョイ d6b3-UD9X)
2020/08/01(土) 17:35:39.71ID:l0aqZI9e0 マクロ実行ボタン1を押すとマクロ実行ボタン1が消えて
新しいマクロ実行ボタン2が出現。ボタン2を押すとマクロ実行ボタン3が出現するような
繰り返し動作を行いたいのですが可能でしょうか?
コードを教えていただきたく、よろしくお願いします。
新しいマクロ実行ボタン2が出現。ボタン2を押すとマクロ実行ボタン3が出現するような
繰り返し動作を行いたいのですが可能でしょうか?
コードを教えていただきたく、よろしくお願いします。
739デフォルトの名無しさん (ワッチョイ cd92-23Ku)
2020/08/01(土) 17:45:47.31ID:BG2/nyCb0 >>738
つVisible
つVisible
740デフォルトの名無しさん (ワッチョイ 7aef-xE3T)
2020/08/01(土) 18:55:56.93ID:7hgxy1yb0 >>738
少し違うけど、こうした方が楽
With マクロ実行ボタン
Select Case .Caption
Case "マクロ実行ボタン2"
マクロ2
.Caption = "マクロ実行ボタン3"
Case "マクロ実行ボタン3"
マクロ3
.Caption = "マクロ実行ボタン1"
Case Else
マクロ1
.Caption = "マクロ実行ボタン2"
End Select
End With
少し違うけど、こうした方が楽
With マクロ実行ボタン
Select Case .Caption
Case "マクロ実行ボタン2"
マクロ2
.Caption = "マクロ実行ボタン3"
Case "マクロ実行ボタン3"
マクロ3
.Caption = "マクロ実行ボタン1"
Case Else
マクロ1
.Caption = "マクロ実行ボタン2"
End Select
End With
741デフォルトの名無しさん (ワッチョイ 6501-pXS1)
2020/08/01(土) 18:58:42.53ID:B3d0/RPj0 一つのボタンにいろんな機能を詰め込むのはどうかと思うの
742デフォルトの名無しさん (ドコグロ MM9a-LWbo)
2020/08/01(土) 19:43:27.83ID:0WCKoTHWM >>738
最近そう言うUI多いけど昔のように押せない時はグレーアウト(.Enabled)する方がわかりやすいと思うのは俺だけ?
最近そう言うUI多いけど昔のように押せない時はグレーアウト(.Enabled)する方がわかりやすいと思うのは俺だけ?
743デフォルトの名無しさん (アウアウエー Sa22-Vs42)
2020/08/01(土) 20:04:46.26ID:xQeMvl7Qa もう少し背景が分かるとね
インストーラの [次へ] みたいならこうだとか、有意義な回答が得られそうだけど
インストーラの [次へ] みたいならこうだとか、有意義な回答が得られそうだけど
744デフォルトの名無しさん (ワッチョイ 1602-xE3T)
2020/08/01(土) 20:14:10.47ID:Y2rZE5zP0 ボタン1が押される
表示をボタン2に変える
無効にする
ボタン1の処理する
処理終わる
有効にする
これならまぁ押された時の表示によって分岐もありかな
表示をボタン2に変える
無効にする
ボタン1の処理する
処理終わる
有効にする
これならまぁ押された時の表示によって分岐もありかな
745デフォルトの名無しさん (ワッチョイ 99da-xE3T)
2020/08/02(日) 00:24:11.20ID:fhoRH5wU0 >>743
その場合はシートの移動のほうがスッキリする
その場合はシートの移動のほうがスッキリする
746デフォルトの名無しさん (テテンテンテン MMee-DfbS)
2020/08/02(日) 04:27:47.15ID:yz3gxwYFM ラウンドワンとかゲームセンターに置いてある
「動体視力ゲーム」みたいなのじゃないの?
数字ボタンがランダムな位置に出現して
押したら次のボタンが別の位置に現れるヤツ
「動体視力ゲーム」みたいなのじゃないの?
数字ボタンがランダムな位置に出現して
押したら次のボタンが別の位置に現れるヤツ
747デフォルトの名無しさん (ワッチョイ 4e06-LqCg)
2020/08/02(日) 12:51:46.72ID:i29UoGb/0 >>673
エクセルのほうが簡単だと思います。
A列:1〜20000までの連番
B列:口数
C列:∔B1/B列合計 (以下コピー)
D列:1行目は0、2行目 +C1、3行目以降は=+D2+C2をコピー
E列:+A1(以下コピー)
F列:=RAND()(以下コピー)
G列:=VLOOKUP(+F1,D$1:E$20000,2)を300行目までコピー
300/20000なら大口がいないと重複しなさそう。
重複があったらシートコピーして当選行を削除。
エクセルのほうが簡単だと思います。
A列:1〜20000までの連番
B列:口数
C列:∔B1/B列合計 (以下コピー)
D列:1行目は0、2行目 +C1、3行目以降は=+D2+C2をコピー
E列:+A1(以下コピー)
F列:=RAND()(以下コピー)
G列:=VLOOKUP(+F1,D$1:E$20000,2)を300行目までコピー
300/20000なら大口がいないと重複しなさそう。
重複があったらシートコピーして当選行を削除。
748デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/08/02(日) 13:42:27.44ID:7JTul7vs0 俺らそういうのいやだから
重複しなさそうとか認めないし
重複しなさそうとか認めないし
749デフォルトの名無しさん (ワッチョイ 4e06-LqCg)
2020/08/02(日) 14:04:53.69ID:i29UoGb/0 ベースモデル考えて確率的に速い手段を選ぶだけ。
コード書くのが好きなら計算結果を配列に入れて、既定カウントに達するまで回せばいいけど、時間の無駄。
コード書くのが好きなら計算結果を配列に入れて、既定カウントに達するまで回せばいいけど、時間の無駄。
750デフォルトの名無しさん (ワッチョイ f102-Y3wz)
2020/08/02(日) 14:52:01.85ID:6ZNrYs7D0 条件にもよるけど今回の話の場合は1回目重複覚悟でやってから重複分だけ再度重複なしの方法でやるのが速そうだね
751デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/08/02(日) 15:17:38.22ID:7JTul7vs0 時間かかるってそんなの5分で終わるし
752デフォルトの名無しさん (ワッチョイ 4e06-hU8h)
2020/08/02(日) 18:40:53.06ID:i29UoGb/0 >>751
ワッチョイって何かわかる?
ワッチョイって何かわかる?
753デフォルトの名無しさん (ワッチョイ 7a01-he4x)
2020/08/02(日) 19:11:50.62ID:7JTul7vs0754デフォルトの名無しさん (ワッチョイ 5d01-UD9X)
2020/08/02(日) 22:26:59.52ID:RZU5Rxbr0 >>747
A列:連番
B列:口数
C列:当選確率 = 口数/口数の合計
D列:点数 = 当選確率*RAND()
これでソートかけたほうが簡単じゃね
300番付近のボーダーラインで点数の重複が生じたら
重複者のみを対象に再度抽選
まだ重複者がいたらさらに再度抽選(・・・)
再抽選回数が0〜300と未定だけども現実的には多くても数回で終わるだろうよ
A列:連番
B列:口数
C列:当選確率 = 口数/口数の合計
D列:点数 = 当選確率*RAND()
これでソートかけたほうが簡単じゃね
300番付近のボーダーラインで点数の重複が生じたら
重複者のみを対象に再度抽選
まだ重複者がいたらさらに再度抽選(・・・)
再抽選回数が0〜300と未定だけども現実的には多くても数回で終わるだろうよ
755デフォルトの名無しさん (ワッチョイ 4e06-LqCg)
2020/08/02(日) 22:40:10.04ID:i29UoGb/0 >>754
そちらの方がいいですね。
そちらの方がいいですね。
756デフォルトの名無しさん (ワッチョイ 79ce-Xvfy)
2020/08/03(月) 02:34:06.94ID:R5x2YJ6L0 それだと当選確率が公平にならない気がする
まあコーディングの手間と計算時間と公平さとどっちを取るかだな
まあコーディングの手間と計算時間と公平さとどっちを取るかだな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【鹿児島】5キロ2000円台ではコメ作りを続けられない――生産者不在で乱高下する米価。消費者も納得できる適正価格は実現するのか?★2 [シャチ★]
- 【独自】農水省内にコメ対策チーム あすにも立ち上げ方針 価格高騰などに対応 [少考さん★]
- 中居正広氏の暴露本争奪戦が水面下で始動 100万部超え間違いなし? [ネギうどん★]
- QRコード決済、なぜ今“やめる店”が出てきた? QRコード決済廃止で店舗が得る利点とは [パンナ・コッタ★]
- 「夫が私の不倫を言いふらしています」2度目の過ちで追い詰められた妻の苦悩 名誉毀損は成立する? [少考さん★]
- ハーバード大に日本学術会議…なぜ「学術研究」に圧力をかけるのか 「都合の悪い意見」を許せない悲しき権力 [少考さん★]
- この「コメ高騰・食糧難」の時代に「昆虫食」が攻勢をかけない理由マジで謎。もう抵抗なく食えそうなくらいに進化してるのに [399583221]
- 【実況】博衣こよりのえちえち鬼武者6🧪
- 今日、インドのGDPが4兆ドルを突破し、日本を追い越して世界4位になったと発表される [949681385]
- 【生活保護】なぜ、安倍政権は「物価偽装」とまで言われる算出方法で3度も生活保護の支給額を引下げてしまったのか?まもなく最高裁弁論 [219241683]
- 【実況】博衣こよりのえちえち鬼武者5🧪
- QR決済、完全に終わる… 嫌儲板の予想していた通りだったな [452836546]