!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part68
https://mevius.5ch.net/test/read.cgi/tech/1598756127/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part69
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 3fad-qZ/b)
2020/12/13(日) 00:22:23.67ID:Fd224klc0230デフォルトの名無しさん (ワッチョイ 5fda-lB9F)
2021/01/10(日) 23:32:18.31ID:LL6dwzdY0 >>229
お前は馬鹿馬鹿いうだけの馬鹿だな
お前は馬鹿馬鹿いうだけの馬鹿だな
231デフォルトの名無しさん (ワッチョイ 7fb5-tn8J)
2021/01/11(月) 22:06:06.53ID:pqPOJoG50 このスレでお世話になりまくった者だけど
金欲しさに工場部門の夜勤に今年から異動したからVBA触ることももうない
数年後間接部門に戻れるかわからんけど
いや戻れないだろうけど
スレの全員に感謝だわ
本当に色々教えてもらったし構文そのまま頂けた
本当にありがとう
金欲しさに工場部門の夜勤に今年から異動したからVBA触ることももうない
数年後間接部門に戻れるかわからんけど
いや戻れないだろうけど
スレの全員に感謝だわ
本当に色々教えてもらったし構文そのまま頂けた
本当にありがとう
232デフォルトの名無しさん (ワッチョイ dfda-Cwx9)
2021/01/11(月) 23:57:28.02ID:pfNMzUxK0 生産管理でまた使うことになったりして・・・
233デフォルトの名無しさん (ワッチョイ 5f01-pMv2)
2021/01/12(火) 01:59:02.62ID:OTa0Zw/f0 VBAに触らなくて良くなるだけで羨ましいわ
234デフォルトの名無しさん (ワッチョイ 5fda-lB9F)
2021/01/12(火) 19:01:11.25ID:dCVmoeOp0 >>231
製造現場になじめないで会社辞めるに1ガバチョ
製造現場になじめないで会社辞めるに1ガバチョ
235210 (ワッチョイ dfda-AFO5)
2021/01/13(水) 19:37:02.44ID:lspxZscb0 Dirコマンドの件で回答くれた皆さん
パスにUTF-8で文字化けする文字を含んでいたのが原因だったわ
しょうもないオチでごめんなさい&ありがとう
パスにUTF-8で文字化けする文字を含んでいたのが原因だったわ
しょうもないオチでごめんなさい&ありがとう
236デフォルトの名無しさん (JP 0H03-Cwx9)
2021/01/13(水) 20:54:16.63ID:aeNWg8u3H UTF-8からシフトJISに正しく変換できない文字かあ
葛飾区とか草薙とか色々あるよな
記号も〜とか¥とか半角スペースとかマイナスとか、よく使うのに化けるのがたくさんある
葛飾区とか草薙とか色々あるよな
記号も〜とか¥とか半角スペースとかマイナスとか、よく使うのに化けるのがたくさんある
237デフォルトの名無しさん (スッップ Sd9f-ZaM3)
2021/01/14(木) 02:22:27.50ID:JNzdWMyDd >>235
それを解決できない馬鹿が中途半端に書き込むなよ
それを解決できない馬鹿が中途半端に書き込むなよ
238デフォルトの名無しさん (ワッチョイ dfda-cu7a)
2021/01/14(木) 05:19:52.68ID:ecyWCD0F0 知恵袋よかこっちの方がよほど親身なのは住人が優しくてイイ人ばかりだからでつか?
239デフォルトの名無しさん (オッペケ Srb3-bwS7)
2021/01/14(木) 07:59:40.60ID:gDZI6jyWr =TEXT(ROUNDDOWN(a1,1-INT(LOG(a1))),IF(1-LOG(a1)>0,"0."&REPT(0,1-INT(LOG(a1))),"0"))
をVBAで記述するとどうなるのか教えて欲しいです。よろしくお願いします。
をVBAで記述するとどうなるのか教えて欲しいです。よろしくお願いします。
240デフォルトの名無しさん (ワッチョイ df11-ZT9E)
2021/01/14(木) 12:22:18.25ID:YIqcuI1O0 a = [TEXT(ROUNDDOWN(a1,1-INT(LOG(a1))),IF(1-LOG(a1)>0,"0."&REPT(0,1-INT(LOG(a1))),"0"))]
241デフォルトの名無しさん (JP 0H03-Cwx9)
2021/01/14(木) 12:56:03.99ID:YzBTA1U5H >>240で解決してたけど、一応正攻法みたいな物
Sub 有効数字2桁()
Dim A1 As Double
Dim L As Integer
Dim S As String
Dim F As String
A1 = Range("A1")
L = 1 - Int(Log(A1) / Log(10#))
If L > 0 Then
F = F & "." & String(L, "0")
Else
F = "0"
End If
S = Format(WorksheetFunction.RoundDown(A1, L), F)
Debug.Print S
End Sub
Sub 有効数字2桁()
Dim A1 As Double
Dim L As Integer
Dim S As String
Dim F As String
A1 = Range("A1")
L = 1 - Int(Log(A1) / Log(10#))
If L > 0 Then
F = F & "." & String(L, "0")
Else
F = "0"
End If
S = Format(WorksheetFunction.RoundDown(A1, L), F)
Debug.Print S
End Sub
242デフォルトの名無しさん (ワッチョイ dfda-AFO5)
2021/01/14(木) 18:59:26.33ID:+2NwXrek0243デフォルトの名無しさん (ワッチョイ df68-Cbw0)
2021/01/14(木) 20:01:26.65ID:SduAKFWs0 質問です。
シートモジュール内で、
Private Sub Worksheet_Change(ByVal Target As Range)
For Each test In Range("他シートにある名前付きセルの名前")
Next test
End Sub
これで実行時エラー”1004” ’Range’メソッドは失敗しました:WorkSheetオブジェクト が出てしまうのですが、原因は何でしょうか。
Publicを取ってみたり、シートを指定しみたりしたんですが、変化ありません。
標準モジュールに記述してF5で実行した場合はエラー発生しません。
宜しくお願い致します。
シートモジュール内で、
Private Sub Worksheet_Change(ByVal Target As Range)
For Each test In Range("他シートにある名前付きセルの名前")
Next test
End Sub
これで実行時エラー”1004” ’Range’メソッドは失敗しました:WorkSheetオブジェクト が出てしまうのですが、原因は何でしょうか。
Publicを取ってみたり、シートを指定しみたりしたんですが、変化ありません。
標準モジュールに記述してF5で実行した場合はエラー発生しません。
宜しくお願い致します。
244デフォルトの名無しさん (ワッチョイ 5f7c-lZna)
2021/01/14(木) 20:33:06.60ID:gxjpIPZs0 シートを指定する
名前の適用範囲を確認する
名前の適用範囲を確認する
245デフォルトの名無しさん (ワッチョイ df68-Cbw0)
2021/01/14(木) 20:38:30.13ID:SduAKFWs0 >244
名前の適用範囲を変えてみたりもしたんですが、だめでした。
名前の適用範囲を変えてみたりもしたんですが、だめでした。
246デフォルトの名無しさん (ワッチョイ df68-Cbw0)
2021/01/14(木) 20:52:33.18ID:SduAKFWs0247デフォルトの名無しさん (ワッチョイ 7f2f-9hkR)
2021/01/14(木) 20:55:12.26ID:yNTWs1ET0 >>243
In Rangeの範囲がそのシートだから、そこに名前付きセルはない
その範囲のあるシートがわかってるなら、In 他シート.Range("... のように指定するか
同一ブック内ならIn ThisWorkbook.Names("名前付きセルの名前").RefersToRange
とかでいけんじゃね
In Rangeの範囲がそのシートだから、そこに名前付きセルはない
その範囲のあるシートがわかってるなら、In 他シート.Range("... のように指定するか
同一ブック内ならIn ThisWorkbook.Names("名前付きセルの名前").RefersToRange
とかでいけんじゃね
248デフォルトの名無しさん (オッペケ Srd1-5Wwm)
2021/01/15(金) 07:45:14.16ID:fl9fRXksr249デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/16(土) 04:08:04.09ID:wM/4uvwh0 @Set DB As CurrentDb
ASet DB As CurrentDb()
この二つに使い分ける意味はありますか?
ASet DB As CurrentDb()
この二つに使い分ける意味はありますか?
250デフォルトの名無しさん (ワッチョイ 8d7c-JESV)
2021/01/16(土) 10:41:53.52ID:MRodpgDG0 ないと思う
251デフォルトの名無しさん (ワッチョイ c501-Gfv6)
2021/01/16(土) 16:36:07.57ID:SaJeHrUX0 @はカッコつけたい時
Aはキーボード打つのめんどくさい時
Aはキーボード打つのめんどくさい時
252249 (ワッチョイ cd10-9NFy)
2021/01/16(土) 19:03:22.47ID:wM/4uvwh0253デフォルトの名無しさん (ワッチョイ 8d7c-JESV)
2021/01/16(土) 19:33:57.85ID:MRodpgDG0 同じではない
必要性を感じないというだけ
必要性を感じないというだけ
254デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/16(土) 20:50:02.04ID:wM/4uvwh0 必要ないのを同じと表現したの
255デフォルトの名無しさん (ワッチョイ 317f-WsPm)
2021/01/16(土) 21:12:53.28ID:haZmUiAy0 >>253
使い分ける意味がないのに同じでないのはないってどういう意味?
使い分ける意味がないのに同じでないのはないってどういう意味?
256デフォルトの名無しさん (ワッチョイ 822f-vYIt)
2021/01/16(土) 21:22:36.09ID:BbkPLu/V0 ExcelのVBAにCurrentDbなんてないのは置いておくとしても
その文ってどっちもエラーになると思うんだが
その文ってどっちもエラーになると思うんだが
257デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/16(土) 21:38:23.62ID:wM/4uvwh0 あ、すみません…
AccessVBAのスレってあったんですね。
申し訳ない。
あと1As」 って書いちゃってたけど「=」
AccessVBAのスレってあったんですね。
申し訳ない。
あと1As」 って書いちゃってたけど「=」
258デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/16(土) 21:39:02.86ID:wM/4uvwh0 訂正
あと「As」って書いちゃってたけど当然「=」でした
あと「As」って書いちゃってたけど当然「=」でした
259デフォルトの名無しさん (ワッチョイ 822f-vYIt)
2021/01/16(土) 21:59:42.58ID:BbkPLu/V0 Accessで試したけどどっちも通って同じ結果だな
俺の予想では2はデフォルトプロパティの呼び出しになると思ったんだが
引数省略したら、かっこそのものも除去されて評価されてるのかもしれん
つかその教本ってなんだ?
俺の予想では2はデフォルトプロパティの呼び出しになると思ったんだが
引数省略したら、かっこそのものも除去されて評価されてるのかもしれん
つかその教本ってなんだ?
260デフォルトの名無しさん (ワッチョイ 822f-vYIt)
2021/01/16(土) 22:14:43.61ID:BbkPLu/V0 >>255
この例は同じ結果になってるけど、その二つはまったく同じではないよ
Accessで違いが出る例
Dim DB
Dim CurrentDb As Database
Set CurrentDb = Application.CurrentDb
Set DB = CurrentDb
MsgBox TypeName(DB)
Set DB = CurrentDb()
MsgBox TypeName(DB)
まあCurrentDbとかいう変数名は少なくともVBAではお勧めできないけどな
この例は同じ結果になってるけど、その二つはまったく同じではないよ
Accessで違いが出る例
Dim DB
Dim CurrentDb As Database
Set CurrentDb = Application.CurrentDb
Set DB = CurrentDb
MsgBox TypeName(DB)
Set DB = CurrentDb()
MsgBox TypeName(DB)
まあCurrentDbとかいう変数名は少なくともVBAではお勧めできないけどな
261デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/16(土) 22:21:15.40ID:wM/4uvwh0 CurrentDb自体を変数にするとか、それはもう別の話では
262デフォルトの名無しさん (ワッチョイ 822f-vYIt)
2021/01/16(土) 23:00:55.60ID:BbkPLu/V0 前提を絞らなければ、動作に違いが出るかどうかの話だから別の話じゃない
変数名の良し悪しに関してはまあ別だが
つかその教本とやらを曝せ
俺的にはデータベースのインスタンスを取得する目的で後者の書き方とかなら、そっちのほうが問題だわ
変数名の良し悪しに関してはまあ別だが
つかその教本とやらを曝せ
俺的にはデータベースのインスタンスを取得する目的で後者の書き方とかなら、そっちのほうが問題だわ
263デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/17(日) 05:07:21.78ID:Bpeq2DcA0 実際にはやらない無理な方法で無理矢理話を混ぜ返したいだけで、
そもそも意図を汲んでない
そもそも意図を汲んでない
264デフォルトの名無しさん (スップ Sd22-RONI)
2021/01/17(日) 18:18:57.16ID:6FyugFd+d 初心者です
オートシェイプの名前を検索して置換できるコードを教えてください
調べてもオートシェイプ内のテキスト変換しかありません
お願いします
オートシェイプの名前を検索して置換できるコードを教えてください
調べてもオートシェイプ内のテキスト変換しかありません
お願いします
265デフォルトの名無しさん (JP 0Hcd-sTIO)
2021/01/17(日) 20:37:25.77ID:EfLIE7TKH266デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/17(日) 21:03:01.02ID:Bpeq2DcA0 それはすでに使ってるシェイプの名前だろう
使ってない奴から選びたいんだろう
使ってない奴から選びたいんだろう
267デフォルトの名無しさん (スップ Sd22-RONI)
2021/01/17(日) 21:25:06.25ID:6FyugFd+d >>265
返信ありがとうございます
下記のオートシェイプに入力されたテキストを検索して置換するコードじゃなくてオートシェイプの名前を検索して置換したいのですがどこを直せばいいのでしょうか
Sub 置換() Dim tbox As Object Dim findStr As String Dim replaceStr As String Dim count As Long Dim i As Long Dim myDocument As Worksheet findStr = InputBox("置換対象文字列") replaceStr = InputBox("置換文字") Set myDocument = Worksheets(1) myDocument.Shapes.SelectAll
For i = 1 To myDocument.Shapes.count If myDocument.Shapes(i).Type = msoGroup Then Selection.ShapeRange.Ungroup.Select For Each tbox In Selection.ShapeRange tbox.TextFrame.Characters.Text = _ Replace(tbox.TextFrame.Characters.Text, findStr, replaceStr)
Next Selection.ShapeRange.Regroup.Select Else
Set tbox = myDocument.Shapes(i).TextFrame tbox.Characters.Text = _ Replace(tbox.Characters.Text, findStr, replaceStr)
End If
Next
End Sub
返信ありがとうございます
下記のオートシェイプに入力されたテキストを検索して置換するコードじゃなくてオートシェイプの名前を検索して置換したいのですがどこを直せばいいのでしょうか
Sub 置換() Dim tbox As Object Dim findStr As String Dim replaceStr As String Dim count As Long Dim i As Long Dim myDocument As Worksheet findStr = InputBox("置換対象文字列") replaceStr = InputBox("置換文字") Set myDocument = Worksheets(1) myDocument.Shapes.SelectAll
For i = 1 To myDocument.Shapes.count If myDocument.Shapes(i).Type = msoGroup Then Selection.ShapeRange.Ungroup.Select For Each tbox In Selection.ShapeRange tbox.TextFrame.Characters.Text = _ Replace(tbox.TextFrame.Characters.Text, findStr, replaceStr)
Next Selection.ShapeRange.Regroup.Select Else
Set tbox = myDocument.Shapes(i).TextFrame tbox.Characters.Text = _ Replace(tbox.Characters.Text, findStr, replaceStr)
End If
Next
End Sub
268デフォルトの名無しさん (ワッチョイ 4602-sTIO)
2021/01/17(日) 21:32:27.18ID:sTdEmPzt0 聞く気ないだろw
269デフォルトの名無しさん (ワッチョイ cd10-9NFy)
2021/01/17(日) 22:02:29.00ID:Bpeq2DcA0 そのようだなw
270デフォルトの名無しさん (ワッチョイ 6e8e-gw59)
2021/01/17(日) 22:10:02.50ID:vD50J/Wf0 適当にコードをコピペして聞きだそうとする手口
質問です。よろしくお願いいたします。
VBA でスクレイピングを行っています
対象ページ:https://www.rakuten-sec.co.jp/web/market/data/rub.html ‥@
取得したい要素、 CSS セレクタで記載:document.querySelector("#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em").innerText ‥‥A
しかし、Aは google chrome では取得できて、しかもコンソールでAを指定した場合も目的の値を取得できていますが、
Aを IE11 ->F12 で表示できるコンソールに食わせても、目的の値を取得できません。
質問1:google chrome におけるページ@のCSSセレクタAは、IE11 ではどのようになるのでしょうか?‥‥B
質問2:IE11 でBを取得する方法はどのようなものでしょうか?
以上よろしくお願いいたします。
VBA でスクレイピングを行っています
対象ページ:https://www.rakuten-sec.co.jp/web/market/data/rub.html ‥@
取得したい要素、 CSS セレクタで記載:document.querySelector("#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em").innerText ‥‥A
しかし、Aは google chrome では取得できて、しかもコンソールでAを指定した場合も目的の値を取得できていますが、
Aを IE11 ->F12 で表示できるコンソールに食わせても、目的の値を取得できません。
質問1:google chrome におけるページ@のCSSセレクタAは、IE11 ではどのようになるのでしょうか?‥‥B
質問2:IE11 でBを取得する方法はどのようなものでしょうか?
以上よろしくお願いいたします。
272デフォルトの名無しさん (ドコグロ MMca-gKIs)
2021/01/17(日) 23:48:28.14ID:7Jg8yd50M >>267
いろいろと修正箇所が多いので
https://qiita.com/Umaremin/items/b7726fa7340c7f175e77
このサイトのコードの
4行目の後に
Dim findStr As String, replaceStr As String
findStr = InputBox("置換対象文字列")
replaceStr = InputBox("置換文字")
'各Shapeに対する処理の2箇所に
shp.Name = Replace(shp.Name, findStr, replaceStr)
を追加すればうまく出来ると思う
ちなみに、理由は知らないけどリボンのページレイアウトの中のオブジェクトと選択と表示のシェイプの名前を変えずにデフォルトのままだとVBAが出す名前が英語表記になるので注意
いろいろと修正箇所が多いので
https://qiita.com/Umaremin/items/b7726fa7340c7f175e77
このサイトのコードの
4行目の後に
Dim findStr As String, replaceStr As String
findStr = InputBox("置換対象文字列")
replaceStr = InputBox("置換文字")
'各Shapeに対する処理の2箇所に
shp.Name = Replace(shp.Name, findStr, replaceStr)
を追加すればうまく出来ると思う
ちなみに、理由は知らないけどリボンのページレイアウトの中のオブジェクトと選択と表示のシェイプの名前を変えずにデフォルトのままだとVBAが出す名前が英語表記になるので注意
273デフォルトの名無しさん (JP 0Hcd-sTIO)
2021/01/18(月) 02:58:44.09ID:pyrT8iNXH ちょっとソースを整理
Sub 置換()
Dim tbox As Object
Dim findStr As String
Dim replaceStr As String
Dim count As Long
Dim i As Long
Dim myDocument As Worksheet
findStr = InputBox("置換対象文字列")
replaceStr = InputBox("置換文字")
Set myDocument = Worksheets(1)
myDocument.Shapes.SelectAll
For i = 1 To myDocument.Shapes.count
If myDocument.Shapes(i).Type = msoGroup Then
Selection.ShapeRange.Ungroup.Select
For Each tbox In Selection.ShapeRange
tbox.TextFrame.Characters.Text = Replace(tbox.TextFrame.Characters.Text, findStr, replaceStr)
Next
Selection.ShapeRange.Regroup.Select
Else
Set tbox = myDocument.Shapes(i).TextFrame
tbox.Characters.Text = Replace(tbox.Characters.Text, findStr, replaceStr)
End If
Next
End Sub
Sub 置換()
Dim tbox As Object
Dim findStr As String
Dim replaceStr As String
Dim count As Long
Dim i As Long
Dim myDocument As Worksheet
findStr = InputBox("置換対象文字列")
replaceStr = InputBox("置換文字")
Set myDocument = Worksheets(1)
myDocument.Shapes.SelectAll
For i = 1 To myDocument.Shapes.count
If myDocument.Shapes(i).Type = msoGroup Then
Selection.ShapeRange.Ungroup.Select
For Each tbox In Selection.ShapeRange
tbox.TextFrame.Characters.Text = Replace(tbox.TextFrame.Characters.Text, findStr, replaceStr)
Next
Selection.ShapeRange.Regroup.Select
Else
Set tbox = myDocument.Shapes(i).TextFrame
tbox.Characters.Text = Replace(tbox.Characters.Text, findStr, replaceStr)
End If
Next
End Sub
274デフォルトの名無しさん (スップ Sd22-RONI)
2021/01/18(月) 06:51:20.31ID:hmFdo1dud275デフォルトの名無しさん (ワッチョイ 6e2c-vYIt)
2021/01/18(月) 12:58:34.46ID:JT9EgKXH0 >>271
漏れが、Ruby, Selenium WebDriver, Chrome でアクセスしたら、空要素が返ってきた
CSS の :nth-child() 擬似クラスは、
兄弟要素のグループの中での位置に基づいて選択します
https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll
Document.querySelectorAll()
elementList = parentNode.querySelectorAll(selectors);
指定された selectors が CSS 擬似要素を含む場合、返されるリストは常に空になります
エラーログ
"jQuery.Deferred exception: Cannot read
property 'msie' of undefined TypeError: Cannot read property 'msie' of undefined
at HTMLDocument.<anonymous> (https://www.rakuten-sec.co.jp/web/shared/js/app/jquery.share-button.js?20160125:5:415)
at l (https://www.rakuten-sec.co.jp/web/shared/js/jquery.js:2:29375)
at c (https://www.rakuten-sec.co.jp/web/shared/js/jquery.js:2:29677) undefined",
source: https://www.rakuten-sec.co.jp/web/shared/js/jquery.js (2)
ひょっとして、そのサイトがバグっているのかも?
それかログインなど、特別な認証が必要なのかも?
漏れが、Ruby, Selenium WebDriver, Chrome でアクセスしたら、空要素が返ってきた
CSS の :nth-child() 擬似クラスは、
兄弟要素のグループの中での位置に基づいて選択します
https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll
Document.querySelectorAll()
elementList = parentNode.querySelectorAll(selectors);
指定された selectors が CSS 擬似要素を含む場合、返されるリストは常に空になります
エラーログ
"jQuery.Deferred exception: Cannot read
property 'msie' of undefined TypeError: Cannot read property 'msie' of undefined
at HTMLDocument.<anonymous> (https://www.rakuten-sec.co.jp/web/shared/js/app/jquery.share-button.js?20160125:5:415)
at l (https://www.rakuten-sec.co.jp/web/shared/js/jquery.js:2:29375)
at c (https://www.rakuten-sec.co.jp/web/shared/js/jquery.js:2:29677) undefined",
source: https://www.rakuten-sec.co.jp/web/shared/js/jquery.js (2)
ひょっとして、そのサイトがバグっているのかも?
それかログインなど、特別な認証が必要なのかも?
276275 (ワッチョイ 6e2c-vYIt)
2021/01/18(月) 13:03:01.53ID:JT9EgKXH0 それか、
jquery.share-button.js
と書いてあるから、
jQuery で作った画面か何かの、ボタンをクリックするなどの、
人間による操作が必要なのかも?
jquery.share-button.js
と書いてあるから、
jQuery で作った画面か何かの、ボタンをクリックするなどの、
人間による操作が必要なのかも?
277デフォルトの名無しさん (アウアウウー Sa05-Gfv6)
2021/01/18(月) 13:14:48.80ID:ipljQC5/a まあでもVBA関係ないな
278275 (ワッチョイ 6e2c-vYIt)
2021/01/18(月) 13:39:24.37ID:JT9EgKXH0 そのサイト固有の問題かも。
それに、IE 11 はサポート切れで、多くのサイトで、まともに動かない
基本、Chrome しか動かない。
Chrome以外のブラウザは、まともに動かない
それに、IE 11 はサポート切れで、多くのサイトで、まともに動かない
基本、Chrome しか動かない。
Chrome以外のブラウザは、まともに動かない
>>275,276,278
検証いただきありがとうございます
なにぶん、単に株価等をスクレイピングするためだけに年始から web スクレイピングを始めたばかりなので、難しいことはよくわかりません‥‥
やっぱり HTML5/CSS の基礎本からじっくりやるしかないでしょうか
引き続き、なにかコメントがありましたらよろしくお願いいたします‥‥
>>277
VBA で
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
objIE.navigate ur
時間待ちl
Dim htmlDoc As HTMLDocument
Set htmlDoc = objIE.document
Dim elementText As String
elementText = htmlDoc.querySelector("#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em").innerText
と書いていますが、それでもやっぱり VBA は関係ないのでしょうか?
検証いただきありがとうございます
なにぶん、単に株価等をスクレイピングするためだけに年始から web スクレイピングを始めたばかりなので、難しいことはよくわかりません‥‥
やっぱり HTML5/CSS の基礎本からじっくりやるしかないでしょうか
引き続き、なにかコメントがありましたらよろしくお願いいたします‥‥
>>277
VBA で
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
objIE.navigate ur
時間待ちl
Dim htmlDoc As HTMLDocument
Set htmlDoc = objIE.document
Dim elementText As String
elementText = htmlDoc.querySelector("#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em").innerText
と書いていますが、それでもやっぱり VBA は関係ないのでしょうか?
280デフォルトの名無しさん (ワッチョイ c563-jDmM)
2021/01/18(月) 23:19:34.42ID:froKP66m0 スクレイピングが目的なら悪いことは言わないから大人しくpythonあたりにしとけ
281デフォルトの名無しさん (ドコグロ MMca-2/Tp)
2021/01/19(火) 00:16:19.06ID:9X7jktdiM 今月からpythonを始めてサイトから文字を取ってきてエクセルにぶち込むくらいなら一週間で出来たな
その後のエクセルの処理はもちろんVBAだけどなw
その後のエクセルの処理はもちろんVBAだけどなw
282デフォルトの名無しさん (JP 0Hcd-sTIO)
2021/01/19(火) 00:26:22.17ID:i//ZhdNzH 最近のホームページはブラウザごとに動作が違うから、本などを参考にするなら同じブラウザを使わないと、
本質と無関係なところではまって時間を無駄にすることになる
あと株価なんかスクレイピングしてもまったく意味ないぞ
どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな
本質と無関係なところではまって時間を無駄にすることになる
あと株価なんかスクレイピングしてもまったく意味ないぞ
どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな
>>282
>どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな
そのとおりだと私も思います、ただし、さや取り(裁定取引)を米国株に適用するのなら商機あり、とみています
さや取り(裁定取引)とは:https://investars.jp/sayatori.php
>どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな
そのとおりだと私も思います、ただし、さや取り(裁定取引)を米国株に適用するのなら商機あり、とみています
さや取り(裁定取引)とは:https://investars.jp/sayatori.php
284デフォルトの名無しさん (ブーイモ MMe5-rIb5)
2021/01/19(火) 06:36:37.01ID:6NIqY8sOM そもそも自動売買に使う頻度でスクレイピングって規約確認したのか?
285275 (ワッチョイ 6e2c-vYIt)
2021/01/19(火) 07:21:09.11ID:JrdPscbl0 >>275
を修正
275は、ヘッドレスモードで動かしたので、エラーになったけど、
表示させて動かしたら、エラーにならなかった
でも、要素は取得できなかった
IE11 は、もうサポート切れじゃないの?
使わない方が良い
基本、Chrome を使うべき!
を修正
275は、ヘッドレスモードで動かしたので、エラーになったけど、
表示させて動かしたら、エラーにならなかった
でも、要素は取得できなかった
IE11 は、もうサポート切れじゃないの?
使わない方が良い
基本、Chrome を使うべき!
286275 (ワッチョイ 6e2c-vYIt)
2021/01/19(火) 07:23:53.98ID:JrdPscbl0 勝手に頻繁にスクレイピングしたら、業務妨害で逮捕されるよ
基本、どの会社のサービスでも、
相手と契約して、API を使わないといけない
基本、どの会社のサービスでも、
相手と契約して、API を使わないといけない
287275 (ワッチョイ 6e2c-vYIt)
2021/01/19(火) 07:51:13.37ID:JrdPscbl0 そもそも、そのページ内に、id="cFx" が存在しない
var elems_1 = document.querySelectorAll( '#cFx' );
var elems_2 = document.querySelectorAll( '#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em' );
console.log( elems_1, elems_2 );
Chrome のF12 開発者ツールで実行しても、どちらも取得できない
var elems_1 = document.querySelectorAll( '#cFx' );
var elems_2 = document.querySelectorAll( '#cFx > table:nth-child(6) > tbody > tr:nth-child(1) > td.cell-02 > em' );
console.log( elems_1, elems_2 );
Chrome のF12 開発者ツールで実行しても、どちらも取得できない
288275 (ワッチョイ 6e2c-vYIt)
2021/01/19(火) 08:28:20.74ID:JrdPscbl0 Chrome のF12 開発者ツールのコンソール画面を開くと、幾つかエラーが出てる
ログインしてるとか、営業時間内とか、
何かの条件が揃わないと、
そのページ内に、id="cFx" が現れないのかも
ログインしてるとか、営業時間内とか、
何かの条件が揃わないと、
そのページ内に、id="cFx" が現れないのかも
290275 (ワッチョイ 6e2c-vYIt)
2021/01/20(水) 06:54:28.87ID:sOzWFlEJ0 エンジニアチャンネル・粟島が、
2つの取引所の価格差を利用して、Ruby で鞘取りしてる
【検証】プログラミングでビットコインを自動売買すると一週間でいくら稼げるのか?
https://www.youtube.com/channel/UCMMjv61LfBy5J3AT8Ua0NGQ
2つの取引所の価格差を利用して、Ruby で鞘取りしてる
【検証】プログラミングでビットコインを自動売買すると一週間でいくら稼げるのか?
https://www.youtube.com/channel/UCMMjv61LfBy5J3AT8Ua0NGQ
291デフォルトの名無しさん (オッペケ Srd1-VCNG)
2021/01/20(水) 19:14:01.82ID:WKaEu4ler 初心者です。
質問をさせてください。
A列のデータをソートして、境目に改ページを適用するVBAを組みました。
その後にもう1つ動作を組み込みたいのですが、可能でしょうか?
組み込みたい動作は、
改ページの境目の1つ上のC列の内容をF1セルに都度反映させる。
イメージとしては、改ページで分けた内容ごとにタイトル行の一部を変えたい、といった感じです。
例:都道府県別に改ページをし、
東京の場合はタイトル行に東京と入れ込む。
そもそも無理なのかもしれませんが、お伺いしたく。。
長文失礼しました。
ご教示いただけますよう、お願いいたします。
質問をさせてください。
A列のデータをソートして、境目に改ページを適用するVBAを組みました。
その後にもう1つ動作を組み込みたいのですが、可能でしょうか?
組み込みたい動作は、
改ページの境目の1つ上のC列の内容をF1セルに都度反映させる。
イメージとしては、改ページで分けた内容ごとにタイトル行の一部を変えたい、といった感じです。
例:都道府県別に改ページをし、
東京の場合はタイトル行に東京と入れ込む。
そもそも無理なのかもしれませんが、お伺いしたく。。
長文失礼しました。
ご教示いただけますよう、お願いいたします。
292デフォルトの名無しさん (ワッチョイ 8d7c-JESV)
2021/01/20(水) 20:49:26.31ID:j7C4dot+0 まずその通りやってみればいいのに
>>290
面白い動画を紹介いただきありがとうございました。
しかし裁定取引では、売りと買いの両方ができないと実現は困難かと考えています
BTC を売りから入ることは、たしか、まだできなかったのではないかと思います
面白い動画を紹介いただきありがとうございました。
しかし裁定取引では、売りと買いの両方ができないと実現は困難かと考えています
BTC を売りから入ることは、たしか、まだできなかったのではないかと思います
294デフォルトの名無しさん (ワッチョイ 8d04-sRMI)
2021/01/21(木) 21:48:26.77ID:YIL/x+Jj0 ソルバーが全然うまくいかないし会社の人も誰もソルバー自体知らんかった
マイナーか…
マイナーか…
295デフォルトの名無しさん (アウアウウー Sa4b-DUPd)
2021/01/22(金) 02:14:04.86ID:JMbV/GNCa 何て会社?
296デフォルトの名無しさん (JP 0H6b-xA1r)
2021/01/22(金) 02:36:21.59ID:hl68e8TDH ソルバーは基本原理がわかってないと、どんな計算でもできると思い込んでるとはまる
297デフォルトの名無しさん (ワッチョイ 5fb5-yTna)
2021/01/22(金) 08:31:07.53ID:2tHgWLf00 上司と折りがあわずに部署異動になったのに
その職場の連中がlineでマクロが使えんくなったとか簡単に直せるかとか聞いてきて本当にうざい
自分も覚えてないの一点張りで返してるけど
Excelの数式すらまともに使えずに開発タブもチェックしてない連中に直せんわ
連絡してくんなよ
その職場の連中がlineでマクロが使えんくなったとか簡単に直せるかとか聞いてきて本当にうざい
自分も覚えてないの一点張りで返してるけど
Excelの数式すらまともに使えずに開発タブもチェックしてない連中に直せんわ
連絡してくんなよ
298デフォルトの名無しさん (ブーイモ MMcf-BQY2)
2021/01/22(金) 08:35:33.62ID:+nZCsLp6M で、質問は何ですか?
299デフォルトの名無しさん (ワッチョイ 5f7f-rvE3)
2021/01/22(金) 08:41:50.70ID:hJPaHw/b0 すいません、教えてください。
Excel VBAでIEを制御しています。IEからデータをもって来てExcelに書き込んだり、
逆にExcel上のデータをIEに書き込んだり。
で、そろそろIEも駆逐されるみたいなのでEdgeとかChromeに対応させなくてはなりません。
そのままでは無理で、Web Driverとか、Selenium Basicが必要。
ここまであってますか?
で、これでEdgeとかChromeに対応した.xlsmを作ったとして、配布するとしたら、配布された側のPCにも
Web Driverとか、Selenium Basicをいれないといけないですか?
Excel VBAでIEを制御しています。IEからデータをもって来てExcelに書き込んだり、
逆にExcel上のデータをIEに書き込んだり。
で、そろそろIEも駆逐されるみたいなのでEdgeとかChromeに対応させなくてはなりません。
そのままでは無理で、Web Driverとか、Selenium Basicが必要。
ここまであってますか?
で、これでEdgeとかChromeに対応した.xlsmを作ったとして、配布するとしたら、配布された側のPCにも
Web Driverとか、Selenium Basicをいれないといけないですか?
300デフォルトの名無しさん (スップ Sd7f-6OeB)
2021/01/22(金) 10:48:34.97ID:NBj8+FQEd エクセル VBA マクロで良い参考書はありますか?
301デフォルトの名無しさん (オッペケ Sr7b-ereA)
2021/01/22(金) 10:54:17.14ID:Ti3taKZXr まだブラウザ操作しようなんてとこあるのか
302デフォルトの名無しさん (アウアウカー Sa5b-GkDv)
2021/01/22(金) 12:22:32.49ID:I4Aue8uTa >>296
できると思ってんだけどなー、できないやつなのかもしれんな
できると思ってんだけどなー、できないやつなのかもしれんな
303299 (ワッチョイ 5f7f-rvE3)
2021/01/22(金) 14:11:09.33ID:hJPaHw/b0304デフォルトの名無しさん (ワッチョイ 7f8e-09qk)
2021/01/22(金) 14:15:47.27ID:y6abuyBz0 どうしようもないだろ
はい、次
はい、次
305デフォルトの名無しさん (JP 0H6b-xA1r)
2021/01/22(金) 14:41:53.73ID:hl68e8TDH >>303
何も追加インストールせずにEdgeをコントロールする方法ならここに書いてある
サンプルは32bit版だけどPtrsafe追加だけで64bitでも動く
https://www.ka-net.org/blog/?p=7921
ただしこの方法はWindowsやEdgeのバージョンが上がると使えなくなる可能性があるので注意
何も追加インストールせずにEdgeをコントロールする方法ならここに書いてある
サンプルは32bit版だけどPtrsafe追加だけで64bitでも動く
https://www.ka-net.org/blog/?p=7921
ただしこの方法はWindowsやEdgeのバージョンが上がると使えなくなる可能性があるので注意
306デフォルトの名無しさん (ワッチョイ 7f2c-UxXy)
2021/01/22(金) 15:06:57.75ID:KA18g7jM0 Ruby, Selenium WebDriver, Chrome が一般的
307299 (ワッチョイ 5f7f-rvE3)
2021/01/22(金) 16:52:44.80ID:hJPaHw/b0308306 (ワッチョイ 7f2c-UxXy)
2021/01/22(金) 17:48:37.37ID:KA18g7jM0 例えば、ヤフーに自動ログインするなら、
ユーザー名を入力して、ボタンをクリック、
パスワードを入力して、ボタンをクリック
以下のコードを、a.rb に書いて、ruby a.rb みたいに実行する。
パソコン内に、Ruby の実行環境を構築しないといけないけど
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 10 # default timeout
driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym"
element = driver.find_element(:id => "username")
element.send_key "ユーザー名"
driver.find_element(:id => "btnNext").click # ボタンをクリック
element = driver.find_element(:id => "passwd")
element.send_key "パスワード"
driver.find_element(:id => "btnSubmit").click # ボタンをクリック
ユーザー名を入力して、ボタンをクリック、
パスワードを入力して、ボタンをクリック
以下のコードを、a.rb に書いて、ruby a.rb みたいに実行する。
パソコン内に、Ruby の実行環境を構築しないといけないけど
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 10 # default timeout
driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym"
element = driver.find_element(:id => "username")
element.send_key "ユーザー名"
driver.find_element(:id => "btnNext").click # ボタンをクリック
element = driver.find_element(:id => "passwd")
element.send_key "パスワード"
driver.find_element(:id => "btnSubmit").click # ボタンをクリック
309デフォルトの名無しさん (ワッチョイ df91-+JF/)
2021/01/22(金) 19:04:19.47ID:fPx0q4lA0310デフォルトの名無しさん (ブーイモ MMcf-QXKr)
2021/01/22(金) 19:10:53.50ID:AXkriLC/M seleniumでググるとPythonのほうが出てくると思うんだが本当にRubyのほうが一般的か?
311デフォルトの名無しさん (ワッチョイ 7fba-xA1r)
2021/01/22(金) 19:14:00.08ID:j9mQzeTK0 狭い世界を一般的という人はどこにでもいる
312デフォルトの名無しさん (ブーイモ MMcf-QXKr)
2021/01/22(金) 19:26:14.35ID:AXkriLC/M 環境のこと考えるならGASかpowershellを検討してみては?
313デフォルトの名無しさん (JP 0H6b-xA1r)
2021/01/22(金) 23:52:36.81ID:hl68e8TDH >>307
最新のEdge (バージョン88.0.705.50 Chromium) で動いた
最新のEdge (バージョン88.0.705.50 Chromium) で動いた
314デフォルトの名無しさん (ワッチョイ df91-+JF/)
2021/01/23(土) 00:14:35.39ID:tp3qQjJz0315デフォルトの名無しさん (ワッチョイ 87da-DUPd)
2021/01/23(土) 04:24:33.18ID:W5gOUdwX0 できる奴はネットも本も見ない、わからない事はF1押して調べるだけ
これ定説
これ定説
316デフォルトの名無しさん (ワッチョイ 5fb5-yTna)
2021/01/23(土) 04:56:15.16ID:xJNbQORc0 みんながそんな熟練者じゃないんだし
俺みたいなど初心者をここで助けてくれた人もいる
平和にいこう
俺みたいなど初心者をここで助けてくれた人もいる
平和にいこう
317デフォルトの名無しさん (ワッチョイ 87da-DUPd)
2021/01/23(土) 09:29:09.37ID:W5gOUdwX0 そうですよねやっぱ
どこかの知恵袋と違って、ここはみんな優しく解説までしてくれる。器大きいぜ
どこかの知恵袋と違って、ここはみんな優しく解説までしてくれる。器大きいぜ
318デフォルトの名無しさん (スプッッ Sd1f-xA1r)
2021/01/23(土) 11:21:37.02ID:XQqwzCqOd どの方法だってバージョンアップで使えなくなる可能性はある
CSSやJavaScriptが必要なければXHRオブジェクトが無難
完全にデファクトスタンダードと言えるブラウザが今は存在しないから、VBAでスクレイピングは鬼門になりつつある
今はまだWindowsマシンには必ずIEが入ってるから、しばらくはIEでやってくのがいいんじゃないかなあ
CSSやJavaScriptが必要なければXHRオブジェクトが無難
完全にデファクトスタンダードと言えるブラウザが今は存在しないから、VBAでスクレイピングは鬼門になりつつある
今はまだWindowsマシンには必ずIEが入ってるから、しばらくはIEでやってくのがいいんじゃないかなあ
319デフォルトの名無しさん (スップ Sdff-6OeB)
2021/01/23(土) 12:55:12.09ID:E44LngeNd 俺が昨日、勉強したことを共有するぞ
VBAの記述の仕方は、オブジェクト.プロパティの順番だ
覚えておけよ
VBAの記述の仕方は、オブジェクト.プロパティの順番だ
覚えておけよ
320デフォルトの名無しさん (スップ Sdff-6OeB)
2021/01/23(土) 12:56:50.53ID:E44LngeNd MsgBox でTESTと表示できたときの感動ったらなかったね!
これから、少しずつ勉強するぞ
これから、少しずつ勉強するぞ
321デフォルトの名無しさん (ワッチョイ 87da-AH3V)
2021/01/23(土) 18:45:02.47ID:H5pOJUEN0322デフォルトの名無しさん (スフッ Sd7f-xA1r)
2021/01/23(土) 21:45:57.51ID:AoWSUa07d >>321
それ単なる画像じゃね?
それ単なる画像じゃね?
323デフォルトの名無しさん (ワッチョイ 87da-AH3V)
2021/01/23(土) 23:31:46.72ID:H5pOJUEN0324デフォルトの名無しさん (ワッチョイ 87da-DUPd)
2021/01/24(日) 05:01:50.09ID:O96X//w/0 田中君
広瀬君
桜井君
松岡君
広瀬君
桜井君
松岡君
325デフォルトの名無しさん (ワッチョイ df91-+JF/)
2021/01/24(日) 11:41:17.66ID:NPfUvm+L0326デフォルトの名無しさん (ワッチョイ 87da-AH3V)
2021/01/25(月) 00:06:00.16ID:bvf1oedN0 >>325
クリックして、アクティブ&最前面にしてF12押しても何も出てこないんだよね。
クリックして、アクティブ&最前面にしてF12押しても何も出てこないんだよね。
327デフォルトの名無しさん (スプッッ Sd1f-xA1r)
2021/01/25(月) 01:12:50.11ID:YwFiLI6Vd >>326
エロサイトでも怒らないから、ちょっとそのサイト晒して
エロサイトでも怒らないから、ちょっとそのサイト晒して
328デフォルトの名無しさん (ワッチョイ e7da-b71I)
2021/01/27(水) 02:51:52.41ID:jiG8/Aof0 >>326
Fが12個表示されてないか?
Fが12個表示されてないか?
329デフォルトの名無しさん (アークセー Sx7b-VhOq)
2021/01/27(水) 08:04:15.56ID:rs7ltanux F*ck F**k FFFFF**k
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【STARTO ENTERTAINMENT】timelesz篠塚大輝『大きな古時計』替え歌一発ギャグ「今はもう動かない おじいさんにトドメ~♪」が波紋 [Ailuropoda melanoleuca★]
- 【朗報】外務省局長、中国側の要求を断固拒否。「高市さんの答弁は日本政府の立場を変えるものではないし、撤回しない」 [519511584]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【実況】博衣こよりのえちえち歌枠🧪
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- たまにaカップの女いるけど何を楽しめばいいの?
