ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part59
https://mevius.5ch.net/test/read.cgi/tech/1549692750/
Excel VBA 質問スレ Part60
■ このスレッドは過去ログ倉庫に格納されています
2019/03/16(土) 20:39:09.64ID:6HWXzj9o
136デフォルトの名無しさん
2019/03/22(金) 23:08:19.23ID:E2ofkEmJ まとめてダウンロードしてファイルに保存
その後一つずつ解析するべき
domなんて使わなくても正規表現で何とかするべき
その後一つずつ解析するべき
domなんて使わなくても正規表現で何とかするべき
137デフォルトの名無しさん
2019/03/22(金) 23:19:11.20ID:tgov+uRX でもpowershellなら.NETのWorkflowが手軽に使えるよね
138デフォルトの名無しさん
2019/03/22(金) 23:23:39.28ID:tgov+uRX Runspaceも使えるし
139デフォルトの名無しさん
2019/03/22(金) 23:36:27.88ID:f/f2Qmpp >>133
すまん、無理だった
他の人頼む
arrayでurl設定して、class使ってforeachだろうけど
vbaのclassを覚える気力がもう内
とりあえず2つだとこんな感じ
Sub foo()
Set httpReq = CreateObject("MSXML2.XMLHTTP")
httpReq.Open "GET", "https://www.yahoo.co.jp/", False
httpReq.Send
Set httpReq2 = CreateObject("MSXML2.XMLHTTP")
httpReq2.Open "GET", "https://urasunday.com/", False
httpReq2.Send
Do
flg = False
If httpReq.readyState < 4 Then flg = True
If httpReq2.readyState < 4 Then flg = True
DoEvents
Loop While flg
Set HTML = CreateObject("htmlfile")
HTML.write httpReq.responsetext
Set HTML2 = CreateObject("htmlfile")
HTML2.write httpReq.responsetext
End Sub
すまん、無理だった
他の人頼む
arrayでurl設定して、class使ってforeachだろうけど
vbaのclassを覚える気力がもう内
とりあえず2つだとこんな感じ
Sub foo()
Set httpReq = CreateObject("MSXML2.XMLHTTP")
httpReq.Open "GET", "https://www.yahoo.co.jp/", False
httpReq.Send
Set httpReq2 = CreateObject("MSXML2.XMLHTTP")
httpReq2.Open "GET", "https://urasunday.com/", False
httpReq2.Send
Do
flg = False
If httpReq.readyState < 4 Then flg = True
If httpReq2.readyState < 4 Then flg = True
DoEvents
Loop While flg
Set HTML = CreateObject("htmlfile")
HTML.write httpReq.responsetext
Set HTML2 = CreateObject("htmlfile")
HTML2.write httpReq.responsetext
End Sub
140デフォルトの名無しさん
2019/03/23(土) 00:08:10.78ID:GJYnZjvR If httpReq.readyState < 4 Then flg = True
If httpReq2.readyState < 4 Then flg = True
片方で抜ける
配列ぐらい使えよ
If httpReq2.readyState < 4 Then flg = True
片方で抜ける
配列ぐらい使えよ
141デフォルトの名無しさん
2019/03/23(土) 00:23:31.53ID:GJYnZjvR 読み込めた物から処理するんだよ
142デフォルトの名無しさん
2019/03/23(土) 00:41:36.68ID:sBAP9hOD143デフォルトの名無しさん
2019/03/23(土) 00:42:04.83ID:sBAP9hOD >>133
Sub foo()
Const max_count = 1000 '1000で決め打ち
url_arr = Array( _
"https://www.yahoo.co.jp/", _
"https://urasunday.com/" _
)
Dim httpReq(max_count)
index_httpReq = 0
For Each url_foo In url_arr
Set httpReq(index_httpReq) = CreateObject("MSXML2.XMLHTTP")
httpReq(index_httpReq).Open "GET", url_foo, False
httpReq(index_httpReq).Send
index_httpReq = index_httpReq + 1
Next
Sub foo()
Const max_count = 1000 '1000で決め打ち
url_arr = Array( _
"https://www.yahoo.co.jp/", _
"https://urasunday.com/" _
)
Dim httpReq(max_count)
index_httpReq = 0
For Each url_foo In url_arr
Set httpReq(index_httpReq) = CreateObject("MSXML2.XMLHTTP")
httpReq(index_httpReq).Open "GET", url_foo, False
httpReq(index_httpReq).Send
index_httpReq = index_httpReq + 1
Next
144デフォルトの名無しさん
2019/03/23(土) 00:42:09.03ID:sBAP9hOD Do
flg = False
For Each url_foo In url_arr ' どれかがまだ
If httpReq(index_foo).readyState < 4 Then flg = True
Next
DoEvents
Loop While flg
Dim html(max_count)
index_html = 0
For Each url_foo In url_arr
Set html(index_html) = CreateObject("htmlfile")
html(index_html).write httpReq(index_html).responsetext
Cells(index_html + 1, 1).Value = httpReq(index_html).responsetext 'テスト。A列に出力する
index_html = index_html + 1
Next
End Sub
flg = False
For Each url_foo In url_arr ' どれかがまだ
If httpReq(index_foo).readyState < 4 Then flg = True
Next
DoEvents
Loop While flg
Dim html(max_count)
index_html = 0
For Each url_foo In url_arr
Set html(index_html) = CreateObject("htmlfile")
html(index_html).write httpReq(index_html).responsetext
Cells(index_html + 1, 1).Value = httpReq(index_html).responsetext 'テスト。A列に出力する
index_html = index_html + 1
Next
End Sub
145デフォルトの名無しさん
2019/03/23(土) 00:45:06.99ID:sBAP9hOD146デフォルトの名無しさん
2019/03/23(土) 01:11:21.36ID:GJYnZjvR If httpReq(index_foo).readyState < 4 Then flg = True
コレじゃ1つでも読み込めたらループから抜ける
set したのはリリースする
処理がおもいのは
html(index_html).write httpReq(index_html).responsetext
これだろ
コレじゃ1つでも読み込めたらループから抜ける
set したのはリリースする
処理がおもいのは
html(index_html).write httpReq(index_html).responsetext
これだろ
147デフォルトの名無しさん
2019/03/23(土) 01:15:54.12ID:GJYnZjvR 同じ個数配列で使うものはTypeを使って構造体にしろよ
構造体を配列で取る
redimぐらい使えよ
構造体を配列で取る
redimぐらい使えよ
148デフォルトの名無しさん
2019/03/23(土) 01:39:28.59ID:sBAP9hOD >>144
Do
flg = False
For Each url_foo In url_arr ' どれかがまだ
If httpReq(index_foo).readyState < 4 Then flg = True
Next
DoEvents
Loop While flg
↓
For Each url_foo In url_arr ' どれかがまだ
Do
flg = False
If httpReq(index_foo).readyState < 4 Then flg = True
DoEvents
Loop While flg
Next
>>146
>コレじゃ1つでも読み込めたらループから抜ける
入れ子逆だった、スマン
>set したのはリリースする
httpReq is nothingがエラーになる
vbaって配列 is nothing出来ないのか
>処理がおもいのは
相対的に重いけど体感上重くは無いと思う
>>147
vbaのclassは正直もう無理や
Do
flg = False
For Each url_foo In url_arr ' どれかがまだ
If httpReq(index_foo).readyState < 4 Then flg = True
Next
DoEvents
Loop While flg
↓
For Each url_foo In url_arr ' どれかがまだ
Do
flg = False
If httpReq(index_foo).readyState < 4 Then flg = True
DoEvents
Loop While flg
Next
>>146
>コレじゃ1つでも読み込めたらループから抜ける
入れ子逆だった、スマン
>set したのはリリースする
httpReq is nothingがエラーになる
vbaって配列 is nothing出来ないのか
>処理がおもいのは
相対的に重いけど体感上重くは無いと思う
>>147
vbaのclassは正直もう無理や
149デフォルトの名無しさん
2019/03/23(土) 02:18:04.14ID:GJYnZjvR 構造体を使うのは処理を分かりやすくするため
リリースは
Set オブジェクト変数 = Nothing
感覚的に難しいかな
リリースは
Set オブジェクト変数 = Nothing
感覚的に難しいかな
150デフォルトの名無しさん
2019/03/23(土) 04:53:32.37ID:4V4ijAbJ >>142
普通は以下のように、自分で状態を調べたりしない。
If httpReq.readyState < 4 Then flg = True
これは、Node.js などの低レベルな書き方で、普通はこれらの状態をラップして、
簡潔に書ける方法が、ライブラリ・フレームワークに用意されている
例えば以下は、JavaScript, jQuery の非同期処理の書き方。
ready になったら、引数で定義した、callback 関数を呼んでもらう。
document.ready(function(){}〜
非同期処理には、promise, deffered, async/await の書き方もある
Ruby で、Selenium WebDriver なら、非同期処理を考えなくても、普通に同期的に書ける。
非同期処理の書き方のすべてが、ラップされているから。
Timeout 設定時間までに、状態が満たさなければ、Timeout Error になるだけ
普通は以下のように、自分で状態を調べたりしない。
If httpReq.readyState < 4 Then flg = True
これは、Node.js などの低レベルな書き方で、普通はこれらの状態をラップして、
簡潔に書ける方法が、ライブラリ・フレームワークに用意されている
例えば以下は、JavaScript, jQuery の非同期処理の書き方。
ready になったら、引数で定義した、callback 関数を呼んでもらう。
document.ready(function(){}〜
非同期処理には、promise, deffered, async/await の書き方もある
Ruby で、Selenium WebDriver なら、非同期処理を考えなくても、普通に同期的に書ける。
非同期処理の書き方のすべてが、ラップされているから。
Timeout 設定時間までに、状態が満たさなければ、Timeout Error になるだけ
151150
2019/03/23(土) 05:31:12.29ID:4V4ijAbJ 漏れなら、Ruby で、Selenium WebDriver で、
url.txt には、行区切りでURL を書いておく。
script.rb には、Selenium WebDriver での処理を書いておく
main.rb には、以下を書いておいて、このファイルを、ruby main.rb で実行する
File.foreach( "url.txt" ) do |line|
`ruby script.rb #{ line }`
end
url.txtを、1行ずつ処理して、各URLを取得して、それを引数にして、
ruby script.rb URL の別プロセスを呼び出す。
ただし、Selenium WebDriverでの処理が、URLだけが異なって、他は同じ事が条件
つまり、マルチプロセス
これをマルチスレッドにすると、排他処理などが面倒。
それに同一プロセス内の処理になるので、1つのエラーで、すべての処理が止まるし、やってられない!
url.txt には、行区切りでURL を書いておく。
script.rb には、Selenium WebDriver での処理を書いておく
main.rb には、以下を書いておいて、このファイルを、ruby main.rb で実行する
File.foreach( "url.txt" ) do |line|
`ruby script.rb #{ line }`
end
url.txtを、1行ずつ処理して、各URLを取得して、それを引数にして、
ruby script.rb URL の別プロセスを呼び出す。
ただし、Selenium WebDriverでの処理が、URLだけが異なって、他は同じ事が条件
つまり、マルチプロセス
これをマルチスレッドにすると、排他処理などが面倒。
それに同一プロセス内の処理になるので、1つのエラーで、すべての処理が止まるし、やってられない!
152デフォルトの名無しさん
2019/03/23(土) 05:42:27.10ID:GJYnZjvR VBA以外の構造化言語で書けば綺麗に書ける
まあ出来るだけ近いように書くのがよいが
まあ所詮俺もこんな処理ではJavaかPHPでしか書かない
まあ
まあ出来るだけ近いように書くのがよいが
まあ所詮俺もこんな処理ではJavaかPHPでしか書かない
まあ
153デフォルトの名無しさん
2019/03/23(土) 07:22:22.14ID:4ZM/hDcb154デフォルトの名無しさん
2019/03/23(土) 08:17:41.71ID:Rd0MSm4a たぶん、構造体 = Type = 型 = クラス っていうアナロジーで考えてたんだろうね
155デフォルトの名無しさん
2019/03/23(土) 09:27:10.21ID:GJYnZjvR まあ、コードも間違ってるし書き方も良くない
配列すら得意でないようなので・・・
あと、せっかくExcelを使ってるんだから
Url等の情報はセルから読み込むよな
配列すら得意でないようなので・・・
あと、せっかくExcelを使ってるんだから
Url等の情報はセルから読み込むよな
156デフォルトの名無しさん
2019/03/23(土) 11:00:19.04ID:tmlWK/3A >>151
seleniumってまだ使えんの?もう機能しなくなったと思ってた
seleniumってまだ使えんの?もう機能しなくなったと思ってた
157デフォルトの名無しさん
2019/03/23(土) 11:18:14.30ID:sBAP9hOD158fusianasan
2019/03/23(土) 11:19:15.45ID:j1qksDnK Debug.Print("test")
159デフォルトの名無しさん
2019/03/23(土) 11:39:13.69ID:uLwnX5A6160デフォルトの名無しさん
2019/03/23(土) 11:47:22.03ID:4ZM/hDcb161デフォルトの名無しさん
2019/03/23(土) 11:52:28.25ID:/daUWZWt >>157
Excelでコールバックで受けたいって言っても、やったことないな
所詮そんなにクリティカルなルーチンを書く環境じゃないだろ
そんなことしなくても、ステータスが読み込めた物から処理して
全ての配列が処理出来たら終わればいいぐらいのコーディングだな
自分で書かなきゃ意味ないぞ
Excelでコールバックで受けたいって言っても、やったことないな
所詮そんなにクリティカルなルーチンを書く環境じゃないだろ
そんなことしなくても、ステータスが読み込めた物から処理して
全ての配列が処理出来たら終わればいいぐらいのコーディングだな
自分で書かなきゃ意味ないぞ
162デフォルトの名無しさん
2019/03/23(土) 12:03:01.48ID:jhd39dfA163デフォルトの名無しさん
2019/03/23(土) 12:12:55.71ID:/daUWZWt >>162
他の言語で簡単にかけるって言っても
所詮その言語で提供されたルーチンを使うだけだから
適した言語で書けば比較的簡単にかけることは確か
コーディングに関しては直感で書いたからもう少し読んでみよう
他の言語で簡単にかけるって言っても
所詮その言語で提供されたルーチンを使うだけだから
適した言語で書けば比較的簡単にかけることは確か
コーディングに関しては直感で書いたからもう少し読んでみよう
164デフォルトの名無しさん
2019/03/23(土) 12:16:35.94ID:/daUWZWt まあ、所詮夜勤から帰って書き込みしてるから
午後は、お酒が進むんでまあ気にするな
午後は、お酒が進むんでまあ気にするな
165デフォルトの名無しさん
2019/03/23(土) 12:44:05.74ID:4ZM/hDcb >>157
> コールバックの部分だけはマジで分からんかった
> どうやって書くんだ
コールバックなんていらんだろ
素直にreadyStateが4になったら処理すればいいだけ
スマホから打ってるからデバッグしてないけどこんな感じ
Type Request
Session As Object
Done As Boolean
End Type
url_arr = Array("https://www.yahoo.co.jp/", "https://urasunday.com/")
Dim Requests()
ReDim Requests(LBound(url_arr) To UBound(url_arr))
Dim Index As Integer
For Index = LBound(url_arr) To UBound(url_arr)
With Requests(Index)
Set .Session = CreateObject("MSXML2.XMLHTTP")
.Session.Open "GET", url_arr(Index), False
.Session.Send
.Done = False
End With
Next
' 続く…
> コールバックの部分だけはマジで分からんかった
> どうやって書くんだ
コールバックなんていらんだろ
素直にreadyStateが4になったら処理すればいいだけ
スマホから打ってるからデバッグしてないけどこんな感じ
Type Request
Session As Object
Done As Boolean
End Type
url_arr = Array("https://www.yahoo.co.jp/", "https://urasunday.com/")
Dim Requests()
ReDim Requests(LBound(url_arr) To UBound(url_arr))
Dim Index As Integer
For Index = LBound(url_arr) To UBound(url_arr)
With Requests(Index)
Set .Session = CreateObject("MSXML2.XMLHTTP")
.Session.Open "GET", url_arr(Index), False
.Session.Send
.Done = False
End With
Next
' 続く…
166デフォルトの名無しさん
2019/03/23(土) 12:44:29.37ID:4ZM/hDcb ' 続き
Dim AllDone As Boolean
Do
AllDone = True
For Index = LBound(url_arr) To UBound(url_arr)
With Requests(Index)
If Not .Done Then
If .Session.readyState < 4 Then
AllDone = False
Else
Cells(Index + 1, 1).Value = .responseText
.Done = True
End If
End If
End With
Next
DoEvents
Until AllDone
Dim AllDone As Boolean
Do
AllDone = True
For Index = LBound(url_arr) To UBound(url_arr)
With Requests(Index)
If Not .Done Then
If .Session.readyState < 4 Then
AllDone = False
Else
Cells(Index + 1, 1).Value = .responseText
.Done = True
End If
End If
End With
Next
DoEvents
Until AllDone
167デフォルトの名無しさん
2019/03/23(土) 14:51:45.33ID:uLwnX5A6168デフォルトの名無しさん
2019/03/23(土) 14:57:22.48ID:jhd39dfA169デフォルトの名無しさん
2019/03/23(土) 15:09:34.24ID:4ZM/hDcb >>167
お前はアンカーもまともに見れないのかよw
お前はアンカーもまともに見れないのかよw
170デフォルトの名無しさん
2019/03/23(土) 19:02:03.41ID:4V4ijAbJ 157デフォルトの名無しさん2019/03/23(土) 11:18:14.30ID:sBAP9hOD
>>150
クソ言語乙
142デフォルトの名無しさん2019/03/23(土) 00:41:36.68ID:sBAP9hOD
こいつは荒らしじゃね?
相手しない方がよい
>>150
クソ言語乙
142デフォルトの名無しさん2019/03/23(土) 00:41:36.68ID:sBAP9hOD
こいつは荒らしじゃね?
相手しない方がよい
171デフォルトの名無しさん
2019/03/23(土) 19:19:07.38ID:tumCHHdc >>170
ここはVBAのスレだよ。 そこにRubyとか持ってきたからじゃねえのw
ここはVBAのスレだよ。 そこにRubyとか持ってきたからじゃねえのw
172デフォルトの名無しさん
2019/03/23(土) 20:10:53.10ID:VsaUG60l173デフォルトの名無しさん
2019/03/23(土) 22:49:02.19ID:XxYiFSG+ コールバックって何?
ググると、関数の引数に渡す関数って出てくるけど、
それって、複数の処理を、
↓こうやって横着して1行に書くのと何が違うのかわからん。
a = Replace(Replace("あいうえお", "あい", ""), "えお", "")
ググると、関数の引数に渡す関数って出てくるけど、
それって、複数の処理を、
↓こうやって横着して1行に書くのと何が違うのかわからん。
a = Replace(Replace("あいうえお", "あい", ""), "えお", "")
174デフォルトの名無しさん
2019/03/23(土) 22:57:17.29ID:VsaUG60l >>173
a関数の処理が終わった場合、a関数の引数を受け取ってb関数を自動的に開始する・・・という処理
非同期、特にスクレイピングが多重で続くような場合は非常に強力
https://www.sejuku.net/blog/67743
使う場面が分からないのは、使う必要が無いと思って良い
jsだと死ぬほど使うが、EXCELで使う事はまずない
a関数の処理が終わった場合、a関数の引数を受け取ってb関数を自動的に開始する・・・という処理
非同期、特にスクレイピングが多重で続くような場合は非常に強力
https://www.sejuku.net/blog/67743
使う場面が分からないのは、使う必要が無いと思って良い
jsだと死ぬほど使うが、EXCELで使う事はまずない
175デフォルトの名無しさん
2019/03/23(土) 23:43:32.78ID:vBZJiXyX VBAでコールバックを実装しようとしたら、 Application.Runを使うかクラスモジュールでメソッド書いてCallByName関数で呼び出すようにするかって感じになるんかね
176デフォルトの名無しさん
2019/03/23(土) 23:54:56.46ID:49H4PHbP >>175
AddressOf
AddressOf
177デフォルトの名無しさん
2019/03/23(土) 23:57:25.89ID:49H4PHbP178デフォルトの名無しさん
2019/03/24(日) 00:19:26.62ID:lQI3nZvh >>177
そう、外部プログラムにVBA側の関数ポインタを渡す話じゃなくて、受けとる側の処理の書き方
そう、外部プログラムにVBA側の関数ポインタを渡す話じゃなくて、受けとる側の処理の書き方
179デフォルトの名無しさん
2019/03/24(日) 00:40:55.67ID:MjUvfGmD クラスのメソッドとしてコールバック関数を実装してinterfaceか遅延バインディング使えばいい
180デフォルトの名無しさん
2019/03/24(日) 07:46:43.58ID:myNgr9GS >>173
> a = Replace(Replace("あいうえお", "あい", ""), "えお", "")
これは外側のReplace()に内側のReplace()の「結果」を渡してる
コールバック関数は内部で呼ぶ関数を変えたい時に使う
例えば図形を描くルーチンがあったとして出力先を色々切り替えたいとかだと出力する関数を自体を渡す
やり方はこの辺りを参考にして
https://qiita.com/rai_suta/items/c07b22130b302682b729
> a = Replace(Replace("あいうえお", "あい", ""), "えお", "")
これは外側のReplace()に内側のReplace()の「結果」を渡してる
コールバック関数は内部で呼ぶ関数を変えたい時に使う
例えば図形を描くルーチンがあったとして出力先を色々切り替えたいとかだと出力する関数を自体を渡す
やり方はこの辺りを参考にして
https://qiita.com/rai_suta/items/c07b22130b302682b729
181デフォルトの名無しさん
2019/03/24(日) 11:58:57.43ID:DVu1xjKe182デフォルトの名無しさん
2019/03/24(日) 12:25:58.30ID:3NyLxN/m https://i.imgur.com/nvGsYOy.jpg
エクセルあればワードもパワポもアクセスもいらない
エクセルあればワードもパワポもアクセスもいらない
183デフォルトの名無しさん
2019/03/24(日) 12:32:32.58ID:4ve/ST91 そんな事をエクセルVBAでやる意味って何?
何が何でもVBAって馬鹿のひとつ覚えって言うんだよ
何が何でもVBAって馬鹿のひとつ覚えって言うんだよ
184デフォルトの名無しさん
2019/03/24(日) 12:35:25.20ID:aL5blMH8 >>183
他言語を覚えなくて良いのは大きなメリット
環境構築、記述方法、言語仕様
この辺全部覚えなくて良いのはデカイ
特にvbaはプログラマーじゃなく事務員が使ってる場合も多いので、環境構築が苦手な事が多々ある
他言語を覚えなくて良いのは大きなメリット
環境構築、記述方法、言語仕様
この辺全部覚えなくて良いのはデカイ
特にvbaはプログラマーじゃなく事務員が使ってる場合も多いので、環境構築が苦手な事が多々ある
185デフォルトの名無しさん
2019/03/24(日) 13:44:54.25ID:PQbtijKV ノコギリで刺身切ろうとして包丁使えよって言われて包丁の使い方覚えなくていいのはメリットって言ってる構図
186デフォルトの名無しさん
2019/03/24(日) 13:53:08.65ID:aL5blMH8 >>185
例え下手でわらった
例え下手でわらった
187デフォルトの名無しさん
2019/03/24(日) 13:54:25.82ID:PQbtijKV >>186
お前は仕事下手だよな
お前は仕事下手だよな
188デフォルトの名無しさん
2019/03/24(日) 14:07:22.16ID:OZ1kvGmt 他言語を覚えなくて良いって発想がどうかと思う
適材適所で効率良くするのも仕事だし
死にゆく言語の代表がVBA
適材適所で効率良くするのも仕事だし
死にゆく言語の代表がVBA
189デフォルトの名無しさん
2019/03/24(日) 14:08:05.28ID:myNgr9GS190デフォルトの名無しさん
2019/03/24(日) 14:30:37.07ID:aL5blMH8 >>187
根拠もなく、何を見てそう思ったの?
>>188
>他言語を覚えなくて良いって発想がどうかと思う
>適材適所で効率良くするのも仕事だし
これは同意
俺も効率化のためにphpとjsはある程度覚えてるわ
ただ、人に勧めるのは現実的に厳しい面がある
たまーに出てくるスクレイピングのためにphp覚えろって言うのはなかなか酷
時間がかかって良いならウンコみたいなコードでも処理できるしな
ここの人でもサーバー=レンタルサーバーって発想した人いるけど、
スクレイピングのためにphp動かすならxamppで良い
>死にゆく言語の代表がVBA
ずっと言われてるけど全然死なないので俺も困っている。せめてバージョンアップして
根拠もなく、何を見てそう思ったの?
>>188
>他言語を覚えなくて良いって発想がどうかと思う
>適材適所で効率良くするのも仕事だし
これは同意
俺も効率化のためにphpとjsはある程度覚えてるわ
ただ、人に勧めるのは現実的に厳しい面がある
たまーに出てくるスクレイピングのためにphp覚えろって言うのはなかなか酷
時間がかかって良いならウンコみたいなコードでも処理できるしな
ここの人でもサーバー=レンタルサーバーって発想した人いるけど、
スクレイピングのためにphp動かすならxamppで良い
>死にゆく言語の代表がVBA
ずっと言われてるけど全然死なないので俺も困っている。せめてバージョンアップして
191デフォルトの名無しさん
2019/03/24(日) 14:34:03.77ID:dT6Xb8jy 既に公式にはJavaScriptに置き換わってるのに今更バージョンアップもクソも
192デフォルトの名無しさん
2019/03/24(日) 14:35:01.83ID:aL5blMH8 >>191
JavaScriptに置き換わってるって言ってもアドインだけでしょ
JavaScriptに置き換わってるって言ってもアドインだけでしょ
193デフォルトの名無しさん
2019/03/24(日) 14:43:19.68ID:dT6Xb8jy194デフォルトの名無しさん
2019/03/24(日) 14:53:50.44ID:aL5blMH8195デフォルトの名無しさん
2019/03/24(日) 15:03:11.84ID:A9z4XFqj 自分の現在分かる範囲で創意工夫してやろうとするのは良いことで出来ちゃってるんだろうけどこの先ずっと出来るかは不明
新しいのを取り入れないとダメ
特にエクセルVBAでやる必要のないのがあるなら勉強のチャンスなのに古いのでやろうとするから進歩しない
新しいのを取り入れないとダメ
特にエクセルVBAでやる必要のないのがあるなら勉強のチャンスなのに古いのでやろうとするから進歩しない
196デフォルトの名無しさん
2019/03/24(日) 15:10:13.55ID:gZMjxNOF xampp入れてPHP一から覚えるぐらいなら、VB.NET覚える方がはるかにマシだわ
197デフォルトの名無しさん
2019/03/24(日) 15:19:49.80ID:Mw3X0nZC198デフォルトの名無しさん
2019/03/24(日) 15:23:45.60ID:aL5blMH8 >>197
アドインがjsで書けるように鳴ったんだよ
アドインがjsで書けるように鳴ったんだよ
199デフォルトの名無しさん
2019/03/24(日) 15:39:49.96ID:y9CSgW5G ここは言語スレじゃなくてExcel VBAスレなんだが
バイクやチャリの板で日本縦断の準備とか注意点についての質問レスに対して飛行機使えよ馬鹿とレスしてるやつ居たらアホだろ
バイクやチャリの板で日本縦断の準備とか注意点についての質問レスに対して飛行機使えよ馬鹿とレスしてるやつ居たらアホだろ
200デフォルトの名無しさん
2019/03/24(日) 15:47:43.47ID:aL5blMH8201デフォルトの名無しさん
2019/03/24(日) 15:54:11.30ID:Mw3X0nZC >>198
マクロは関係ないのね。 VBAが無くなるとは考えられん
マクロは関係ないのね。 VBAが無くなるとは考えられん
202デフォルトの名無しさん
2019/03/24(日) 16:01:00.66ID:dT6Xb8jy203デフォルトの名無しさん
2019/03/24(日) 16:08:12.38ID:Mw3X0nZC204デフォルトの名無しさん
2019/03/24(日) 16:19:40.92ID:aL5blMH8 >マクロ自身が廃止
上でそう言ってたけどソースが見つからない
ただの噂かも
>VBAじゃなくてjavascriptになるのか
現状はjsでもアドインを作れるようになっただけ
俺もvbaは廃止しないと思う
上でそう言ってたけどソースが見つからない
ただの噂かも
>VBAじゃなくてjavascriptになるのか
現状はjsでもアドインを作れるようになっただけ
俺もvbaは廃止しないと思う
205デフォルトの名無しさん
2019/03/24(日) 16:19:49.86ID:rXU7uH3v だってVBAってセキュリティ的にヤバいし
エクセルファイルに偽装してマルウェア的なかなりの事までやれちゃうから廃止で良いよ
エクセルファイルに偽装してマルウェア的なかなりの事までやれちゃうから廃止で良いよ
206デフォルトの名無しさん
2019/03/24(日) 16:23:34.70ID:Mw3X0nZC207デフォルトの名無しさん
2019/03/24(日) 16:46:14.04ID:cASdygc2 全くバカばっかりだ。
その場で最適なのを選択すりゃ良いんだよ。
レガシーとか言ってるバカは救いようがない。
VBAで簡潔出来るならその方が良いんだよ。
VBScriptでファイル選択ダイアログを使う時にExcel.Application使うなんてのは本当はやりたくないけど他にうまい方法が無いから仕方ない。
このやりたくないというか筋が悪いと感じることが出来ない奴は結局駄目だね。
レガシーなのはその通りだが、それで別言語使って筋悪プログラミングしてたら意味が無い。
その場で最適なのを選択すりゃ良いんだよ。
レガシーとか言ってるバカは救いようがない。
VBAで簡潔出来るならその方が良いんだよ。
VBScriptでファイル選択ダイアログを使う時にExcel.Application使うなんてのは本当はやりたくないけど他にうまい方法が無いから仕方ない。
このやりたくないというか筋が悪いと感じることが出来ない奴は結局駄目だね。
レガシーなのはその通りだが、それで別言語使って筋悪プログラミングしてたら意味が無い。
208デフォルトの名無しさん
2019/03/24(日) 17:13:35.45ID:cASdygc2 “Office アドインはVBAやVSTOを置き換えるものではないので(現時点では)、「何でこんな簡単なこともできないの!?」とイライラしてはいけない”だとさ。
209デフォルトの名無しさん
2019/03/24(日) 17:17:26.83ID:iA9UpJgV Officeアドインとかいうの忌み子になりそうだよな
210デフォルトの名無しさん
2019/03/24(日) 17:43:12.27ID:bibhGphx とりまIEが消えればVBAでスクレイピングは消える
OS依存の負債を作りかねない機能はどんどん省いて欲しいね
OS依存の負債を作りかねない機能はどんどん省いて欲しいね
211デフォルトの名無しさん
2019/03/24(日) 17:58:19.82ID:XiACCcaf セルの中に、そのセルが存在するシート名を抜き出す関数の定義ってどんなのがある?
シンプルで分かり易い、エクセルの版に依存しないのが良いな。
シンプルで分かり易い、エクセルの版に依存しないのが良いな。
212デフォルトの名無しさん
2019/03/24(日) 18:00:03.79ID:XiACCcaf ここはVBAのスレだから、セル内で使う計算式の質問はスレ違か。
213デフォルトの名無しさん
2019/03/24(日) 18:03:25.87ID:APHXkx0k 言ってみ
214デフォルトの名無しさん
2019/03/24(日) 18:10:28.59ID:aL5blMH8215デフォルトの名無しさん
2019/03/24(日) 18:26:04.21ID:bibhGphx216デフォルトの名無しさん
2019/03/24(日) 19:01:26.26ID:eoRp1F4j217デフォルトの名無しさん
2019/03/24(日) 20:51:56.44ID:IVIO7oct というか、IE消えても出来るぞ。Winsockとか知らんか?
218デフォルトの名無しさん
2019/03/24(日) 21:58:17.14ID:aL5blMH8 >>216
onlineか、無いっぽい
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_other/excelonline%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4/5d3f3344-87e7-4977-80c5-600013790290?auth=1
SHEET()ってのもあるみたいでどうにかすれば行けそうな気もしたけどやっぱり無理だった
onlineか、無いっぽい
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_other/excelonline%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4/5d3f3344-87e7-4977-80c5-600013790290?auth=1
SHEET()ってのもあるみたいでどうにかすれば行けそうな気もしたけどやっぱり無理だった
219デフォルトの名無しさん
2019/03/24(日) 23:27:39.47ID:APHXkx0k スクレイピングならJSで良いと思うけど何が何でもVBAなの?
何か幼少期に家庭的な問題でお父さんから虐待されてたとか?
何か幼少期に家庭的な問題でお父さんから虐待されてたとか?
220デフォルトの名無しさん
2019/03/24(日) 23:39:48.89ID:3fqiTHWE pythonスレのスレタイに、ruby禁止と入れて、スレ立てしている奴は荒らしだよ
lodash 禁止とか、jQuery 禁止とか、ライブラリの話は禁止とか書いて、
テンプレを勝手に改変して、スレ立てしている奴は荒らし
色々なスレを荒らしてる
相手をすると居つくから、相手をするな!
lodash 禁止とか、jQuery 禁止とか、ライブラリの話は禁止とか書いて、
テンプレを勝手に改変して、スレ立てしている奴は荒らし
色々なスレを荒らしてる
相手をすると居つくから、相手をするな!
221デフォルトの名無しさん
2019/03/24(日) 23:41:24.84ID:dT6Xb8jy 次スレはここもRuby禁止をスレタイに入れよう
222デフォルトの名無しさん
2019/03/24(日) 23:46:49.32ID:3fqiTHWE スクレイピングのために、xampp, PHP を学ぶのはキツイ。
Ruby, Nokogiri, Selenium WebDriver で良い。
JavaScript, jQuery も呼び出せるし
VBScript のスレ主のピッコロ大魔王のように、
VBScript, PowerShell で、.NET のライブラリを使って、5ch をスクレイピングする猛者もいるけど、これもキツイ
書きやすいのは、やっぱりRuby!
Ruby, Nokogiri, Selenium WebDriver で良い。
JavaScript, jQuery も呼び出せるし
VBScript のスレ主のピッコロ大魔王のように、
VBScript, PowerShell で、.NET のライブラリを使って、5ch をスクレイピングする猛者もいるけど、これもキツイ
書きやすいのは、やっぱりRuby!
223デフォルトの名無しさん
2019/03/24(日) 23:52:43.94ID:aL5blMH8 という荒らしがいるのでruby禁止をスレタイに入れるのは賛成だ
224デフォルトの名無しさん
2019/03/25(月) 00:01:34.20ID:PcSty2cw スクレイピングってその分野なら必須なのでVBAなんて低速非効率でするなんて馬鹿げてる
225デフォルトの名無しさん
2019/03/25(月) 00:18:14.82ID:QHkTeEIZ エクセル方眼紙で出来ることの限界に挑む
226デフォルトの名無しさん
2019/03/25(月) 00:44:08.18ID:hbWmkRbh 極めると魔法使いになれる
227デフォルトの名無しさん
2019/03/25(月) 12:33:19.91ID:O3TyiYmg バカだよなあ。
どんな言語でも出来るがVBAでやるのが最適な場合の質問だろ。
VBAのスレなんだから。
スクレイピングのためにxampp,PHPを学ぶんだよ。
それが最適なら。
Rubyが最適ならRubyでやれ。
でもここではVBAが最適という前提。
オマエの能力が低くてVBAで答えられんことなんか知らん。
どんな言語でも出来るがVBAでやるのが最適な場合の質問だろ。
VBAのスレなんだから。
スクレイピングのためにxampp,PHPを学ぶんだよ。
それが最適なら。
Rubyが最適ならRubyでやれ。
でもここではVBAが最適という前提。
オマエの能力が低くてVBAで答えられんことなんか知らん。
228222
2019/03/25(月) 23:50:42.64ID:mW0SiMKO スクレイピングのために、Apache, MySQL, PHP を学ぶのは、難しすぎる
Ruby なら、PowerShell から、1-liner で、
Rubyで作られた遅いウェブサーバー、WEBrick が起動する
ruby -run -e httpd . -p 8080
そのフォルダに、index.html があれば、
何も考えなくても、これでブラウザからアクセスできる
http://localhost:8080
DB は、sqlite3 で良い。
sqlite3.exe なら、外部プロセスとして起動できるし、
sqlite3.dll なら、Rubyプロセス内に、DLLを読み込めばよい
それに多くのブラウザは、内部で、sqlite3 を使っている。
MySQL は大げさ
そもそも単に、CSV・テキストファイルに、保存しちゃダメなのか?
Ruby なら、PowerShell から、1-liner で、
Rubyで作られた遅いウェブサーバー、WEBrick が起動する
ruby -run -e httpd . -p 8080
そのフォルダに、index.html があれば、
何も考えなくても、これでブラウザからアクセスできる
http://localhost:8080
DB は、sqlite3 で良い。
sqlite3.exe なら、外部プロセスとして起動できるし、
sqlite3.dll なら、Rubyプロセス内に、DLLを読み込めばよい
それに多くのブラウザは、内部で、sqlite3 を使っている。
MySQL は大げさ
そもそも単に、CSV・テキストファイルに、保存しちゃダメなのか?
229デフォルトの名無しさん
2019/03/26(火) 00:19:09.71ID:oh514UWC ruby禁止
230デフォルトの名無しさん
2019/03/26(火) 01:15:56.88ID:H+8MTdhM いつからスクレイピングとはWEBサーバを立てる事になったんだ
231デフォルトの名無しさん
2019/03/26(火) 01:19:51.23ID:LqY+kMaC スクレイピングの速度を上げすぎるとDoSと勘違いされない?
pythonとかならちゃんと犯罪にならないレベルで収まるよう対策されてるの?
pythonとかならちゃんと犯罪にならないレベルで収まるよう対策されてるの?
232222
2019/03/26(火) 02:40:19.99ID:gZH84WWp wget が、再帰的クローラーのコマンドだけど、オプションでwait 時間も設定できる。
wgetの方が、curl よりも高機能
xampp には、Apache が含まれているから、web サーバーも立てたいのかなと思って
wgetの方が、curl よりも高機能
xampp には、Apache が含まれているから、web サーバーも立てたいのかなと思って
233デフォルトの名無しさん
2019/03/26(火) 08:11:44.77ID:uoYW3oSf 次からruby禁止をスレタイに入れよう
234デフォルトの名無しさん
2019/03/26(火) 09:52:19.15ID:6lKUP98X バカは自分の無能を言い訳に相手の望まない案を提案する。
誰もRubyでやってくれなんて言ってないんだが。
誰もRubyでやってくれなんて言ってないんだが。
235デフォルトの名無しさん
2019/03/26(火) 09:56:34.73ID:YksIzQQu VBAを覚えても馬鹿にされるだけだしVBA程度でプログラミング出来ますって言えないし
本当に辛いよな
本当に辛いよな
236デフォルトの名無しさん
2019/03/26(火) 10:13:52.38ID:uoYW3oSf >>235
>VBAを覚えても馬鹿にされるだけ
どこで?
これぐらいは基本スキルと思う
>VBA程度でプログラミング出来ますって言えない
誰に大して言うの?
vbaは一般事務や営業が楽するためのツールだよ
vbaプログラマーなんて滅多にいない
>VBAを覚えても馬鹿にされるだけ
どこで?
これぐらいは基本スキルと思う
>VBA程度でプログラミング出来ますって言えない
誰に大して言うの?
vbaは一般事務や営業が楽するためのツールだよ
vbaプログラマーなんて滅多にいない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- お前らは“スカイマイルタワー”建設計画を知っているか?
- 万引きJC「すいません許してください!何でもしますから!」←どうする?
- 年増おまんこ見せろ!その勇姿!
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
