1 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 00:22:23.67 ID:Fd224klc0.net] !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
202 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 23:51:53.97 ID:CAJlIzxl0.net] はどうけんてなんですか
203 名前:デフォルトの名無しさん mailto:sage [2021/01/07(木) 23:59:30.52 ID:GNpPPMMj0.net] イギリスのロックバンドのことです
204 名前:デフォルトの名無しさん [2021/01/08(金) 07:36:54.65 ID:/1SPkI99a.net] 行とか列のデータのある範囲を選択するメソッドありますか? currentregionの1行だけみたいなイメージで 今思いつくのは無理くり Range("C5").CurrentRegion.Offset(略).Resize(略〜 ないしは Endとかで割り出してから選択する とかなんですが なんかもう少しスマートな書き方があれば知りたいです
205 名前:デフォルトの名無しさん [2021/01/08(金) 07:38:15.90 ID:/1SPkI99a.net] 説明捕捉 >>203 の表の列はAからD以上まである感じです
206 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 08:45:53.52 ID:F7dsXzNTM.net] columnsとかrowsプロパティで範囲から希望の列や行を取り出すじゃ駄目なの?
207 名前:デフォルトの名無しさん [2021/01/08(金) 09:53:03.11 ID:/1SPkI99a.net] >>205 いや、rowsだと行全体が選ばれてしまうので 例えば 1行目は4列 2行目は5列 とデータの入っている列数がバラバラな場合 (値は全て入っているものとして) それぞれ4列とか5列分ぴったりに選ぶメソッドは無いものかと C列基準とかで選べたら一番いいけど A1選んで「ctrl+shift+→」と同じ結果でもいいです
208 名前:デフォルトの名無しさん [2021/01/08(金) 10:06:49.06 ID:/1SPkI99a.net] すみません >>205 のヒントで自己解決しました Range("C5").EntireRow.SpecialCells(引数) でいけました 失礼しました
209 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 10:12:04.47 ID:0GZaxWieH.net] >>206 一発で求めるメソッドやプロパティはない たとえば3行目だけ選択だと、たぶんこれが最短 Range([A3], [A3].End(xlToRight)).Select
210 名前:デフォルトの名無しさん [2021/01/08(金) 10:18:16.84 ID:/1SPkI99a.net] >>208 ありがとうございます やっぱり1発ではないんですね 自分が書いたspecialcellも定数と数式とが混在してると やはりUnionで繋ぐなどしかないので 煩雑になるなあと思っていたので その書き方の方が良さそうですね
211 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 19:33:14.89 ID:tpxthpMW0.net] Dirコマンド、 コマンドプロンプトに直書きだとローカルもネットワークも取れるのに、 VBAからWSHで取ると、ローカルしか取れないのは何故?
212 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 22:38:35.27 ID:sDO7vtGda.net] 理由は知らないけど、コマンドプロンプトのDIRコマンドと、VBAのDir関数は別物です
213 名前:デフォルトの名無しさん mailto:sage [2021/01/09(土) 22:40:13.80 ID:sDO7vtGda.net] あ、失礼いたしました VBAのDirでなく、スクリプト経由なのか 1つ前のレスは撤回します
214 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 01:05:09.81 ID:kg6XuktW0.net] >>210 まあユーザ認証回りだとおもうけど ちょっとコード晒してみて
215 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 01:13:14.86 ID:4Xu9louP0.net] >>213 これそのまま officetanaka.net/excel/vba/tips/tips27.htm sCmd = "dir [ローカル]" だとOKで、 sCmd = "dir [ネットワーク]" だと取れない Len(Result)で調べると0文字になってる コマンドプロンプトでやると取れるから、打ち間違いじゃないと思うんだけど
216 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 01:40:53.81 ID:bwHYpHvWH.net] >>214 手動でコマンドプロンプトからネットが見えるか再確認した? Windows Updateするとファイル共有が勝手にoffにされることがけっこうあるよ
217 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 02:36:39.33 ID:CEBDD+E50.net] >>215 そんなことねーよ 死ね
218 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 08:23:59.20 ID:4Xu9louP0.net] >>215 確認した \\ネットワークにChr(34)入れて"\\ネットワーク"にしてもダメ (↑半角だと書き込めない)
219 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 08:51:06.81 ID:kg6XuktW0.net] >>214 [ネットワーク]の指定方法正しいか? \\サーバ\共有名 でないと、\\サーバ だけではだめだぞ 手元で試したけど、うちではUNCパスでもネットワークドライブでもちゃんと動いた ただし、パスワードは事前に保存済み パスワード保存してないリソースはテストしてない
220 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 09:02:01.60 ID:qJ1NhQml0.net] ネットワークパス使ってファイルアクセス可能かまず調べる
221 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 09:03:56.67 ID:4Xu9louP0.net] >>218 \\サーバ\共有名って、\\サーバ\共有されてるフォルダ名? それなら合ってる ちなみに\\アドレスの数字\共有されてるフォルダ名ってのも試した パスワードは、エクスプローラーから開くときにパスワード入れなくていい状態になってるから、 保存済だと思う
222 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 11:56:30.27 ID:bwHYpHvWH.net] うちではサンプルのままで問題なく共有フォルダのファイル一覧が出るからWSHのせいではないと思う エラーコードやエラーメッセージは何も出てない? Windowsのシェルを置き換えるとか、何かマニアックなカスタマイズしてる?
223 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 12:45:12.99 ID:4Xu9louP0.net] >>221 いや、サンプルのC:\"を\\〜に変えただけ エラーも何もなく0文字で返ってくる 強いて言えば、試したのがVPN環境 後でVPNなしでどうなるか試してみるけど
224 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 14:01:53.42 ID:bwHYpHvWH.net] >>222 ホスト側のOSはWindows?双方にSMBは間違いなくフルセットで入れてある?
225 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 16:37:15.38 ID:4Xu9louP0.net] >>223 Windows SMBがどうとかは、IT部門じゃないからわからない(会社の)
226 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 17:55:38.15 ID:kg6XuktW0.net] エラー(メッセージ)が出てないのはたぶん標準出力しかひらってないから 標準エラー出力になんか出てると思われ
227 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 18:05:33.95 ID:kg6XuktW0.net] つかここまでしてわざわざDirコマンド使う必要あるのか 何がやりたいんだ
228 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 20:17:18.14 ID:4Xu9louP0.net] >>226 サーバーの空き容量調べたいだけなんだけどね 方法は他にもあるけど、いちいちドライブ文字設定しなきゃいけないとか、 何かアドインみたいなの入れなきゃいけないとかあるし Dirコマンドが一番シンプルだし、 batでテキスト出力するのは問題なくできるから、 それを直接変数に入れられないかなと思ったんだけど
229 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 20:39:03.57 ID:kg6XuktW0.net] >>227 WSHつかうならDriveオブジェクトがUNCパスいけるっぽいけど https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/drive-object
230 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 23:21:47.74 ID:CEBDD+E50.net] 馬鹿が聞いて馬鹿が答えるスレ
231 名前:デフォルトの名無しさん mailto:sage [2021/01/10(日) 23:32:18.31 ID:LL6dwzdY0.net] >>229 お前は馬鹿馬鹿いうだけの馬鹿だな
232 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 22:06:06.53 ID:pqPOJoG50.net] このスレでお世話になりまくった者だけど 金欲しさに工場部門の夜勤に今年から異動したからVBA触ることももうない 数年後間接部門に戻れるかわからんけど いや戻れないだろうけど スレの全員に感謝だわ 本当に色々教えてもらったし構文そのまま頂けた 本当にありがとう
233 名前:デフォルトの名無しさん mailto:sage [2021/01/11(月) 23:57:28.02 ID:pfNMzUxK0.net] 生産管理でまた使うことになったりして・・・
234 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 01:59:02.62 ID:OTa0Zw/f0.net] VBAに触らなくて良くなるだけで羨ましいわ
235 名前:デフォルトの名無しさん mailto:sage [2021/01/12(火) 19:01:11.25 ID:dCVmoeOp0.net] >>231 製造現場になじめないで会社辞めるに1ガバチョ
236 名前:210 mailto:sage [2021/01/13(水) 19:37:02.44 ID:lspxZscb0.net] Dirコマンドの件で回答くれた皆さん パスにUTF-8で文字化けする文字を含んでいたのが原因だったわ しょうもないオチでごめんなさい&ありがとう
237 名前:デフォルトの名無しさん mailto:sage [2021/01/13(水) 20:54:16.63 ID:aeNWg8u3H.net] UTF-8からシフトJISに正しく変換できない文字かあ 葛飾区とか草薙とか色々あるよな 記号も〜とか¥とか半角スペースとかマイナスとか、よく使うのに化けるのがたくさんある
238 名前:デフォルトの名無しさん [2021/01/14(木) 02:22:27.50 ID:JNzdWMyDd.net] >>235 それを解決できない馬鹿が中途半端に書き込むなよ
239 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 05:19:52.68 ID:ecyWCD0F0.net] 知恵袋よかこっちの方がよほど親身なのは住人が優しくてイイ人ばかりだからでつか?
240 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 07:59:40.60 ID:gDZI6jyWr.net] =TEXT(ROUNDDOWN(a1,1-INT(LOG(a1))),IF(1-LOG(a1)>0,"0."&REPT(0,1-INT(LOG(a1))),"0")) をVBAで記述するとどうなるのか教えて欲しいです。よろしくお願いします。
241 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 12:22:18.25 ID:YIqcuI1O0.net] a = [TEXT(ROUNDDOWN(a1,1-INT(LOG(a1))),IF(1-LOG(a1)>0,"0."&REPT(0,1-INT(LOG(a1))),"0"))]
242 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 12:56:03.99 ID:YzBTA1U5H.net] >>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
243 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 18:59:26.33 ID:+2NwXrek0.net] >>240 マジか・・ 普通に書くか、いちいちWorksheetfunctionとか書いてたわ
244 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 20:01:26.65 ID:SduAKFWs0.net] 質問です。 シートモジュール内で、 Private Sub Worksheet_Change(ByVal Target As Range) For Each test In Range("他シートにある名前付きセルの名前") Next test End Sub これで実行時エラー”1004” ’Range’メソッドは失敗しました:WorkSheetオブジェクト が出てしまうのですが、原因は何でしょうか。 Publicを取ってみたり、シートを指定しみたりしたんですが、変化ありません。 標準モジュールに記述してF5で実行した場合はエラー発生しません。 宜しくお願い致します。
245 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 20:33:06.60 ID:gxjpIPZs0.net] シートを指定する 名前の適用範囲を確認する
246 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 20:38:30.13 ID:SduAKFWs0.net] >244 名前の適用範囲を変えてみたりもしたんですが、だめでした。
247 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 20:52:33.18 ID:SduAKFWs0.net] >>244 すみません、解決しました。 名前の適用範囲を参照範囲のシートあるいはブックにして、且つVBAでそのシート指定すればいけました。
248 名前:デフォルトの名無しさん mailto:sage [2021/01/14(木) 20:55:12.26 ID:yNTWs1ET0.net] >>243 In Rangeの範囲がそのシートだから、そこに名前付きセルはない その範囲のあるシートがわかってるなら、In 他シート.Range("... のように指定するか 同一ブック内ならIn ThisWorkbook.Names("名前付きセルの名前").RefersToRange とかでいけんじゃね
249 名前:デフォルトの名無しさん mailto:sage [2021/01/15(金) 07:45:14.16 ID:fl9fRXksr.net] >>240 >>241 ありがとうございます。
250 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 04:08:04.09 ID:wM/4uvwh0.net] @Set DB As CurrentDb ASet DB As CurrentDb() この二つに使い分ける意味はありますか?
251 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 10:41:53.52 ID:MRodpgDG0.net] ないと思う
252 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 16:36:07.57 ID:SaJeHrUX0.net] @はカッコつけたい時 Aはキーボード打つのめんどくさい時
253 名前:249 mailto:sage [2021/01/16(土) 19:03:22.47 ID:wM/4uvwh0.net] >>250 >>251 ありがとう。教本読んだら2種類出てきたので、 何か違いはあるのかと思いまして。 同じだったのか…。
254 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 19:33:57.85 ID:MRodpgDG0.net] 同じではない 必要性を感じないというだけ
255 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 20:50:02.04 ID:wM/4uvwh0.net] 必要ないのを同じと表現したの
256 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 21:12:53.28 ID:haZmUiAy0.net] >>253 使い分ける意味がないのに同じでないのはないってどういう意味?
257 名前:デフォルトの名無しさん mailto:sate [2021/01/16(土) 21:22:36.09 ID:BbkPLu/V0.net] ExcelのVBAにCurrentDbなんてないのは置いておくとしても その文ってどっちもエラーになると思うんだが
258 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 21:38:23.62 ID:wM/4uvwh0.net] あ、すみません… AccessVBAのスレってあったんですね。 申し訳ない。 あと1As」 って書いちゃってたけど「=」
259 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 21:39:02.86 ID:wM/4uvwh0.net] 訂正 あと「As」って書いちゃってたけど当然「=」でした
260 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 21:59:42.58 ID:BbkPLu/V0.net] Accessで試したけどどっちも通って同じ結果だな 俺の予想では2はデフォルトプロパティの呼び出しになると思ったんだが 引数省略したら、かっこそのものも除去されて評価されてるのかもしれん つかその教本ってなんだ?
261 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 22:14:43.61 ID:BbkPLu/V0.net] >>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ではお勧めできないけどな
262 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 22:21:15.40 ID:wM/4uvwh0.net] CurrentDb自体を変数にするとか、それはもう別の話では
263 名前:デフォルトの名無しさん mailto:sage [2021/01/16(土) 23:00:55.60 ID:BbkPLu/V0.net] 前提を絞らなければ、動作に違いが出るかどうかの話だから別の話じゃない 変数名の良し悪しに関してはまあ別だが つかその教本とやらを曝せ 俺的にはデータベースのインスタンスを取得する目的で後者の書き方とかなら、そっちのほうが問題だわ
264 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 05:07:21.78 ID:Bpeq2DcA0.net] 実際にはやらない無理な方法で無理矢理話を混ぜ返したいだけで、 そもそも意図を汲んでない
265 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 18:18:57.16 ID:6FyugFd+d.net] 初心者です オートシェイプの名前を検索して置換できるコードを教えてください 調べてもオートシェイプ内のテキスト変換しかありません お願いします
266 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 20:37:25.77 ID:EfLIE7TKH.net] >>264 オートシェイプの個数は sheets("Sheet1").shapes.count 名前は sheets("Sheet1").shapes(1).name
267 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 21:03:01.02 ID:Bpeq2DcA0.net] それはすでに使ってるシェイプの名前だろう 使ってない奴から選びたいんだろう
268 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 21:25:06.25 ID:6FyugFd+d.net] >>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
269 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 21:32:27.18 ID:sTdEmPzt0.net] 聞く気ないだろw
270 名前:デフォルトの名無しさん mailto:sage [2021/01/17(日) 22:02:29.00 ID:Bpeq2DcA0.net] そのようだなw
271 名前:デフォルトの名無しさん [2021/01/17(日) 22:10:02.50 ID:vD50J/Wf0.net] 適当にコードをコピペして聞きだそうとする手口
272 名前: mailto:sage [2021/01/17(日) 22:23:21.58 ID:gYjAP2D00.net] 質問です。よろしくお願いいたします。 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を取得する方法はどのようなものでしょうか? 以上よろしくお願いいたします。
273 名前:デフォルトの名無しさん [2021/01/17(日) 23:48:28.14 ID:7Jg8yd50M.net] >>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が出す名前が英語表記になるので注意
274 名前:デフォルトの名無しさん mailto:sage [2021/01/18(月) 02:58:44.09 ID:pyrT8iNXH.net] ちょっとソースを整理 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
275 名前:デフォルトの名無しさん mailto:sage [2021/01/18(月) 06:51:20.31 ID:hmFdo1dud.net] >>272 言われた通りにやったら出来ましたありがとうございます。 自分がやりたかったことと同じでした。 >>273 さんも整理してくれてありがとうございます。
276 名前:デフォルトの名無しさん mailto:sage [2021/01/18(月) 12:58:34.46 ID:JT9EgKXH0.net] >>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) ひょっとして、そのサイトがバグっているのかも? それかログインなど、特別な認証が必要なのかも?
277 名前:275 mailto:sage [2021/01/18(月) 13:03:01.53 ID:JT9EgKXH0.net] それか、 jquery.share-button.js と書いてあるから、 jQuery で作った画面か何かの、ボタンをクリックするなどの、 人間による操作が必要なのかも?
278 名前:デフォルトの名無しさん mailto:sage [2021/01/18(月) 13:14:48.80 ID:ipljQC5/a.net] まあでもVBA関係ないな
279 名前:275 mailto:sage [2021/01/18(月) 13:39:24.37 ID:JT9EgKXH0.net] そのサイト固有の問題かも。 それに、IE 11 はサポート切れで、多くのサイトで、まともに動かない 基本、Chrome しか動かない。 Chrome以外のブラウザは、まともに動かない
280 名前: mailto:sage [2021/01/18(月) 23:04:09.16 ID:lUOrFzyB0.net] >>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 は関係ないのでしょうか?
281 名前:デフォルトの名無しさん mailto:sage [2021/01/18(月) 23:19:34.42 ID:froKP66m0.net] スクレイピングが目的なら悪いことは言わないから大人しくpythonあたりにしとけ
282 名前:デフォルトの名無しさん [2021/01/19(火) 00:16:19.06 ID:9X7jktdiM.net] 今月からpythonを始めてサイトから文字を取ってきてエクセルにぶち込むくらいなら一週間で出来たな その後のエクセルの処理はもちろんVBAだけどなw
283 名前:デフォルトの名無しさん mailto:sage [2021/01/19(火) 00:26:22.17 ID:i//ZhdNzH.net] 最近のホームページはブラウザごとに動作が違うから、本などを参考にするなら同じブラウザを使わないと、 本質と無関係なところではまって時間を無駄にすることになる あと株価なんかスクレイピングしてもまったく意味ないぞ どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな
284 名前: mailto:sage [2021/01/19(火) 01:15:30.84 ID:LIV1Afk50.net] >>282 >どんだけ大量の数字を集めたところで、それで利益が出せると思ったら大間違いだからな そのとおりだと私も思います、ただし、さや取り(裁定取引)を米国株に適用するのなら商機あり、とみています さや取り(裁定取引)とは:https://investars.jp/sayatori.php
285 名前:デフォルトの名無しさん mailto:sage [2021/01/19(火) 06:36:37.01 ID:6NIqY8sOM.net] そもそも自動売買に使う頻度でスクレイピングって規約確認したのか?
286 名前:275 mailto:sage [2021/01/19(火) 07:21:09.11 ID:JrdPscbl0.net] >>275 を修正 275は、ヘッドレスモードで動かしたので、エラーになったけど、 表示させて動かしたら、エラーにならなかった でも、要素は取得できなかった IE11 は、もうサポート切れじゃないの? 使わない方が良い 基本、Chrome を使うべき!
287 名前:275 mailto:sage [2021/01/19(火) 07:23:53.98 ID:JrdPscbl0.net] 勝手に頻繁にスクレイピングしたら、業務妨害で逮捕されるよ 基本、どの会社のサービスでも、 相手と契約して、API を使わないといけない
288 名前:275 mailto:sage [2021/01/19(火) 07:51:13.37 ID:JrdPscbl0.net] そもそも、そのページ内に、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 開発者ツールで実行しても、どちらも取得できない
289 名前:275 mailto:sage [2021/01/19(火) 08:28:20.74 ID:JrdPscbl0.net] Chrome のF12 開発者ツールのコンソール画面を開くと、幾つかエラーが出てる ログインしてるとか、営業時間内とか、 何かの条件が揃わないと、 そのページ内に、id="cFx" が現れないのかも
290 名前: mailto:sage [2021/01/19(火) 23:14:02.19 ID:LIV1Afk50.net] >>286 IB証券との契約を検討中です nyse と nasdaq 両市場の全上場株式を取得する必要はありますが、頻度は一社につき一日に一回だけでいいのが裁定取引のいいところだと思っています
291 名前:275 mailto:sage [2021/01/20(水) 06:54:28.87 ID:sOzWFlEJ0.net] エンジニアチャンネル・粟島が、 2つの取引所の価格差を利用して、Ruby で鞘取りしてる 【検証】プログラミングでビットコインを自動売買すると一週間でいくら稼げるのか? https://www.youtube.com/channel/UCMMjv61LfBy5J3AT8Ua0NGQ
292 名前:デフォルトの名無しさん mailto:sage [2021/01/20(水) 19:14:01.82 ID:WKaEu4ler.net] 初心者です。 質問をさせてください。 A列のデータをソートして、境目に改ページを適用するVBAを組みました。 その後にもう1つ動作を組み込みたいのですが、可能でしょうか? 組み込みたい動作は、 改ページの境目の1つ上のC列の内容をF1セルに都度反映させる。 イメージとしては、改ページで分けた内容ごとにタイトル行の一部を変えたい、といった感じです。 例:都道府県別に改ページをし、 東京の場合はタイトル行に東京と入れ込む。 そもそも無理なのかもしれませんが、お伺いしたく。。 長文失礼しました。 ご教示いただけますよう、お願いいたします。
293 名前:デフォルトの名無しさん mailto:sage [2021/01/20(水) 20:49:26.31 ID:j7C4dot+0.net] まずその通りやってみればいいのに
294 名前: mailto:sage [2021/01/20(水) 20:58:51.72 ID:TIrvz66u0.net] >>290 面白い動画を紹介いただきありがとうございました。 しかし裁定取引では、売りと買いの両方ができないと実現は困難かと考えています BTC を売りから入ることは、たしか、まだできなかったのではないかと思います
295 名前:デフォルトの名無しさん mailto:sage [2021/01/21(木) 21:48:26.77 ID:YIL/x+Jj0.net] ソルバーが全然うまくいかないし会社の人も誰もソルバー自体知らんかった マイナーか…
296 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 02:14:04.86 ID:JMbV/GNCa.net] 何て会社?
297 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 02:36:21.59 ID:hl68e8TDH.net] ソルバーは基本原理がわかってないと、どんな計算でもできると思い込んでるとはまる
298 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 08:31:07.53 ID:2tHgWLf00.net] 上司と折りがあわずに部署異動になったのに その職場の連中がlineでマクロが使えんくなったとか簡単に直せるかとか聞いてきて本当にうざい 自分も覚えてないの一点張りで返してるけど Excelの数式すらまともに使えずに開発タブもチェックしてない連中に直せんわ 連絡してくんなよ
299 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 08:35:33.62 ID:+nZCsLp6M.net] で、質問は何ですか?
300 名前:デフォルトの名無しさん [2021/01/22(金) 08:41:50.70 ID:hJPaHw/b0.net] すいません、教えてください。 Excel VBAでIEを制御しています。IEからデータをもって来てExcelに書き込んだり、 逆にExcel上のデータをIEに書き込んだり。 で、そろそろIEも駆逐されるみたいなのでEdgeとかChromeに対応させなくてはなりません。 そのままでは無理で、Web Driverとか、Selenium Basicが必要。 ここまであってますか? で、これでEdgeとかChromeに対応した.xlsmを作ったとして、配布するとしたら、配布された側のPCにも Web Driverとか、Selenium Basicをいれないといけないですか?
301 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 10:48:34.97 ID:NBj8+FQEd.net] エクセル VBA マクロで良い参考書はありますか?
302 名前:デフォルトの名無しさん mailto:sage [2021/01/22(金) 10:54:17.14 ID:Ti3taKZXr.net] まだブラウザ操作しようなんてとこあるのか