- 1 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 07:07:35.59 ID:tS4zKdphH.net]
- !extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512 ↑同じ内容を3行貼り付けること ExcelのVBAに関する質問スレ コード書き込みや作成依頼もOK 次スレは>>980が立てること 無理なら細かく安価指定 ※前スレ Excel VBA 質問スレ Part76 https://mevius.5ch.net/test/read.cgi/tech/1651339421/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
- 44 名前:デフォルトの名無しさん (ワッチョイ 0593-Xh2z) mailto:sage [2022/07/20(水) 08:21:23 ID:yiSU6HA/0.net]
- >>42
マクロの記録有効にした状態でExcelの操作をして、 記録したマクロをエディタで覗いてみれば良い
- 45 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 08:51:01.06 ID:CrmHohvdd.net]
- >>42
行操作はコストがかかる作業につながるから可能であればこういう方法でもいいかもね 1.返却日が入力されている行だけフィルタで表示する 2.選択行をコピーする 3.コピーした選択行を別のシートに貼り付けする 4.選択行を削除する 5.フィルタを外す これを実行前にマクロの記録を実行しておくとサンプルとなるコードができるから あとはそれをいつでも使えるように加工すればいいかと
- 46 名前:デフォルトの名無しさん [2022/07/20(水) 15:47:00.77 ID:qJwz0nM8a.net]
- マクロの記録で吐き出されるコードって
ActiveCell とか ActiveRange 前提だったりするから 実際には使い物にならんと思うが
- 47 名前:デフォルトの名無しさん [2022/07/20(水) 17:42:23.39 ID:/TT8b0cuM.net]
- >>43-45
皆様ありがとうございます 昼過ぎまでモヤモヤしてたのですが 急にソートの活かし方が分かった途端目から鱗でした お陰様で不恰好でしょうが無事完成できました 本当にありがとうございます!
- 48 名前:デフォルトの名無しさん [2022/07/20(水) 17:49:07.46 ID:mz71iafY0.net]
- 新しいシート用意してソート用に使いたく無ければ
EXCELにADO接続してSQLで取得した Recordsetをシートに貼り付けるという手もあるよ。 少し大掛かりになってしまうかも知れないけど そういう仕組みのモジュールを一つ作っておけば 後々同じようなことが出てきた場合に 結構楽になる。
- 49 名前:デフォルトの名無しさん [2022/07/20(水) 18:20:30.35 ID:hcgHwgQ6d.net]
- そもそもExcelの使い方すらろくにわからん頭で思い付いたことだからまともに相手をしても無駄
- 50 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 18:50:54.91 ID:QKDnNcR/0.net]
- 相手のレベルに合わせた回答ができないRuby厨と同じだな
- 51 名前:デフォルトの名無しさん [2022/07/20(水) 20:05:56.52 ID:mz71iafY0.net]
- >>50
ADO接続なんてネットでちょっと調べればすぐ出てくる。 SQLだってSELECT 〜FROM [シート名$] WHERE〜 程度の簡単なもの。 つまり初心者であってもちょっと調べればすぐに分かる範囲。 相手のレベルというよりお前さんのレベルが初心者以下なのでは?
- 52 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 20:30:27.87 ID:yiSU6HA/0.net]
- ADOって消える消える言われて全然消えないな
- 53 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 20:40:21.12 ID:bRggQ/0k0.net]
- VBAって消える消える言われて全然消えないな
- 54 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 21:53:08.66 ID:BaO5YoZA0.net]
- VBAが消えるはユーザーが勝手に言ってるだけだが
ADOは、公式にOLEDB非推奨が出たけど、取り消されたりしたからな
- 55 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 21:55:26.21 ID:QKDnNcR/0.net]
- >>51
はいはい、Rubyでもやってろ
- 56 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:01:03.48 ID:yiSU6HA/0.net]
- >>54
知らなかった 軽く調べてみたら、2018年にOLE DBの非推奨が取り消しになったのね
- 57 名前:デフォルトの名無しさん mailto:sage [2022/07/20(水) 22:53:19.49 ID:dmRxss6E0.net]
- そいやアレ代替あるの?
- 58 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 11:53:53.93 ID:HtCJq1nnM.net]
- officescriptじゃね
- 59 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 12:03:52.84 ID:jQSVcGnW0.net]
- 初心者にありがちなやつ
Select,Selection Active◯◯ Copy,Paste 他は?
- 60 名前:デフォルトの名無しさん [2022/07/21(木) 12:04:01.31 ID:0IzTDkvO0.net]
- 質問
本日になって急にExcelの描写がおかしくなった。 原因は、描写抑制のVBAがおかしいことを突き止めた。 どうやらFalseだけ実行され、Trueだけが強になって急に作動してなく抑止された状態が続く 同じような経験された人、解決方法しりませんか? Application.ScreenUpdating = False Application.ScreenUpdating = True
- 61 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 12:26:00.60 ID:J3eN/Kn/0.net]
- >>60
365だよね? 俺も画面が更新されず止まったままになってて挙動がおかしい でも実際は動いてるので、保存して開き直し 自分はそれでなんとか凌いだ
- 62 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 12:32:01.87 ID:0IzTDkvO0.net]
- >>61
そう、365です。 描画は止まってても実際は動いてるのも全く一緒ですね。 一度保存して開きなおすと治る?試してみます
- 63 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 13:04:59.71 ID:sCo3tE9G0.net]
- >>59
思い付くのは、Next iとかをNextだけで終わらせるヤツ。 特に若いヤツに多い。
- 64 名前:デフォルトの名無しさん [2022/07/21(木) 13:23:18.80 ID:0IzTDkvO0.net]
- >>61
保存したり閉じたり開いたり再起動したり更新したり色々試したけど直らず。 結局はApplication.ScreenUpdating関連を全て削除して一時的に回避することにした。 どうやらマイクロソフト自体が障害発生してるみたいだから描画バグの修正もしばらくかかりそう・・・
- 65 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 13:29:18.37 ID:V7ED8gxj0.net]
- >>63
あれ不要だよな、センスが悪い
- 66 名前:デフォルトの名無しさん [2022/07/21(木) 13:53:54.83 ID:iXsJsite0.net]
- >>63
いや、Nextだけのほうがよくない? ループ変数を明示したい状況って ・多重ループになっていてどのNextかパッと見でわからない ・For(Each) とNextが遠い あたりが理由だろうけど、それってコードとしてあんまり綺麗な状態じゃないよね
- 67 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 14:11:56.94 ID:gJFaDpGv0.net]
- >>60
VBEのイミディエイトウインドウなりでApplication.ScreenUpdating = Trueを実行すれば良いだけでは
- 68 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 14:33:39.21 ID:yukJsBqWd.net]
- >>66
自分もつけない派だけど他人に押し付けることはしない きれいかきれいじゃないかも人それぞれだから押し付けない 厳密な規約がないならマイルールで問題ないのでは
- 69 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 15:06:53.79 ID:0IzTDkvO0.net]
- >>67
Trueにしても更新されないままなんだよね MS障害で連携とれてないんか
- 70 名前:デフォルトの名無しさん (ワッチョイ 5ada-XFSu) mailto:sage [2022/07/21(木) 16:36:30 ID:sCo3tE9G0.net]
- いや、Next iとかきちんと書いた方が第三者も読みやすいはずよ。
いわゆるマクロを教える側の人間はきちんと書いてる(若いトレーナーは書いていないのもいるが)
- 71 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 17:06:17.40 ID:yukJsBqWd.net]
- わかったわかった
そうしろそうしろ
- 72 名前:デフォルトの名無しさん (ワッチョイ da4f-ZYSS) [2022/07/21(木) 17:59:40 ID:fm0UHw9/0.net]
- >>68に同意
自分も付けない派だけど そもそもそんなデカいループ組むことは稀だし せいぜい2階層ネストするくらいだし それ以上ループをネストすることがあったら まず作りがおかしくないか、 別関数に切り出すかとかの方を先に考える。 ただ、だからといってNextの後に変数名が 付いていたからといって 「律儀な人だなぁ」と思うだけ。 別に付いてても付いてなくても 困らないからどっちでもいい。
- 73 名前:デフォルトの名無しさん (ワッチョイ da4f-ZYSS) [2022/07/21(木) 18:13:16 ID:fm0UHw9/0.net]
- むしろ繰返しの変数名に「I」とか「j」とか付けてる方が
「ああ、そんな時代もあったなぁ」と思ってしまうわ そこまでやるならコメントもシングルクォートじゃなくて 「Rem 」って書くべきだろうと。 自分は絶対イヤだけど。
- 74 名前:デフォルトの名無しさん [2022/07/21(木) 18:33:51.30 ID:7CG+4UZvd.net]
- >>69
GPUオフは?
- 75 名前:デフォルトの名無しさん [2022/07/21(木) 18:41:46.02 ID:ppiq2d/La.net]
- >>66
C言語とかで for(int i=0; i<10; ++i){ hoge; fuga; }i; とかだったら卒倒して死ぬな
- 76 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 18:45:53.15 ID:lyHIL7tOM.net]
- 卒倒する前にエラーでコンパイル通らないだろ
- 77 名前:デフォルトの名無しさん (ワッチョイ 912f-cIkS) mailto:sage [2022/07/21(木) 19:31:54 ID:+XzLMWod0.net]
- Nextの後ろに変数書くかどうかで読みやすさが変わるようなプログラム組んでるなら
そもそも他人に教えるようなレベルじゃないと思うわ あんなのは、まともにインデントすら組めなかった大昔のBASICの残骸だよ
- 78 名前:デフォルトの名無しさん (ワッチョイ da4f-ZYSS) [2022/07/21(木) 19:48:37 ID:fm0UHw9/0.net]
- >>75
それな Cに限らずJavaやC++やC#もみんなそんな書き方だし、自分はVB系のような書き方も明示的で良いとは思ってるけど、 その書き方でもあまり困らないから結局のところは慣れの範疇だよね。
- 79 名前:デフォルトの名無しさん (アウアウウー Sa39-10tP) [2022/07/21(木) 19:55:27 ID:YVyuRB69a.net]
- i付けろとか、どうせ田中とかあの辺が言ってるだけだろ?
なんでも鵜呑みにする奴ってなんなんだろうな
- 80 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 20:07:36.67 ID:gJFaDpGv0.net]
- ついてようがついてまいがインデントさえ正しきゃ好きにしろで終わり
- 81 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 20:09:11.68 ID:VJl0SG/3a.net]
- 呆れたわ
お前ら本当に上級者かよ?
- 82 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 20:16:07.12 ID:KsRI+X9I0.net]
- 正直どうでもいいくせにご飯何膳いくつもりだよ笑
- 83 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 20:57:19.02 ID:KTgkocG90.net]
- >>69
Twitterでも報告されてるな
- 84 名前:デフォルトの名無しさん (ワッチョイ 7dcd-eHP4) mailto:sage [2022/07/21(木) 21:48:53 ID:Ksn9zkHy0.net]
- >>80
これな みんな、そんなにループのネストが多いの? functionに切り分けて配列を引数に持たせるのは無し?
- 85 名前:デフォルトの名無しさん mailto:sage [2022/07/21(木) 23:26:47.96 ID:obwhbA970.net]
- >>64
これちょいと前からなってたけどおま環かと思ってfalseにしないで回避してたわ Twitter見たら前からなってる人も居たみたいね
- 86 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 11:13:35.20 ID:y5iLWMChd.net]
- CreateObject(“Internetexplorer.Application“)が突然エラーを吐くようになった
普通のIEはまだ起動できるのに 他の人どうですか?
- 87 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 11:20:33.73 ID:P7NcnZ58M.net]
- 再起動
- 88 名前:デフォルトの名無しさん [2022/07/22(金) 11:21:00.52 ID:3zl+a5GK0.net]
- それも365?
何かIEはもうやめてEDGEに移行してくれって 随分前からMSからお達しがあったからその関係じゃないかな? 素直にEDGEに移行すれば?
- 89 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 11:28:21.24 ID:y5iLWMChd.net]
- うへ、再起動したら治った
上の人ありがとうございます でも何でだろう MS公式アナウンスは2029までこの手法は使えるとのアナウンスだった 移行したいのは山々だがSelenium + Webdriverは面倒くさ過ぎ
- 90 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 13:04:28.34 ID:RhXUUwNi0.net]
- 正式なアナウンス?
- 91 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 15:29:50.23 ID:Nxononph0.net]
- スタッフの個人ブログは正式アナウンスじゃないよ
- 92 名前:デフォルトの名無しさん mailto:sage [2022/07/22(金) 19:04:07.42 ID:Jcs8pkA+0.net]
- こないだのオフ会楽しかったな
https://blog.tirakita.com/wp-content/uploads/2018/03/ressya1.jpg
- 93 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 21:33:12.94 ID:1FRkz0ow0.net]
- 密です
- 94 名前:デフォルトの名無しさん mailto:sage [2022/07/23(土) 21:51:44.32 ID:ESnt81dA0.net]
- >CreateObject(“Internetexplorer.Application“)
IEってアウトプロセスだしCOMの開放忘れでリークしまくってて正常に起動できなくなってたに300ペリカ
- 95 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 10:04:05.83 ID:Envy3B37M.net]
- Next iってVisualじゃないBASICでインデント付けずにフラットに書くことが多かった時代の名残でしょ
- 96 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 10:30:09.76 ID:qmzvdF1J0.net]
- いつの話題だよ
- 97 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 10:31:25.87 ID:aQHcIofRd.net]
- ネタがないから蒸し返したいんでしょ
- 98 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 14:14:33.64 ID:TIxxPU060.net]
- >>95
インデントは余分にメモリ使うからな
- 99 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 16:11:05.58 ID:GzNr1keE0.net]
- その環境だとNEXT IのIを省略した方が省メモリーじゃなかったっけ?
- 100 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 16:15:14.91 ID:I+fEELmC0.net]
- 確かコマンドごとにコードが決まっててそれでメモリを削ってた気がする
PRINTの命令コードは何番みたいに
- 101 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 16:21:50.51 ID:+mm9gF5i0.net]
- >>99
あのー このレベルの懐古厨にマウントは無理だよ
- 102 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 16:33:12.29 ID:GzNr1keE0.net]
- >>100
環境に依ったような気がする >>101 マウント厨かよw
- 103 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 16:38:39.42 ID:phnqPDxNM.net]
- ? が勝手にPRINTになるやつね
行末;とか意外と難しいよね
- 104 名前:デフォルトの名無しさん [2022/07/25(月) 18:11:29.36 ID:aiOwBskw0.net]
- >>103
わからない馬鹿は書かなければいいのに
- 105 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 19:32:28.46 ID:c0BN6IQOM.net]
- >>103
合ってるよ ?はPRINTの省略でセミコロンはマルチステートメント マルチステートメントは改行(crlf)するより1バイト分お得 プログラムエリアが20kくらいしかなかったから可読性なんて贅沢の極みの状況だった
- 106 名前:デフォルトの名無しさん (ワッチョイ 112f-bldA) mailto:sage [2022/07/25(月) 19:39:56 ID:6AaHjHdw0.net]
- マルチステートメントはセミコロンじゃなくてコロンな
ちな今のVBAでも使える まあ、ソースを削れば早くなるなんてインタプリタ時代の遺物
- 107 名前:デフォルトの名無しさん (スプッッ Sd33-3G+t) [2022/07/25(月) 19:45:38 ID:Gx0l0SiPd.net]
- >>105
馬鹿の仲間か?
- 108 名前:デフォルトの名無しさん (ブーイモ MM4d-/hU7) mailto:sage [2022/07/25(月) 19:53:42 ID:c0BN6IQOM.net]
- >>106
あーすまん、フォローありがとう もうウロ覚えだわ~
- 109 名前:デフォルトの名無しさん (ワッチョイ 0bda-VsAj) mailto:sage [2022/07/25(月) 20:00:39 ID:TIxxPU060.net]
- 行末セミコロンはC言語
- 110 名前:デフォルトの名無しさん (ワッチョイ 0bda-VsAj) mailto:sage [2022/07/25(月) 20:01:10 ID:TIxxPU060.net]
- 行末というか関数の後な
- 111 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 20:15:29.72 ID:GzNr1keE0.net]
- >>103のセミコロンはPRINTの改行抑止の話じゃねーの?
>>110 a = 1; のどこに関数が?
- 112 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 21:09:51.78 ID:6AaHjHdw0.net]
- >>110
行末っていうか文末な >>111 >>103はそういう意味かもしれんとも思ったが、それに対する>>105は... PRINT AよりPRINT A;が早いからPRINTはセミコロンつけろっていうのは太古の昔にはあったなあ
- 113 名前:デフォルトの名無しさん [2022/07/25(月) 21:59:22.05 ID:CW1FoItD0.net]
- 如何にこのスレがじじいばかりか
よく分かるレスだなぁ
- 114 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 22:26:52.71 ID:2R2hqyBdd.net]
- しかもスレチな話題をずっとするし害悪でしかない
- 115 名前:デフォルトの名無しさん (ワッチョイ 5101-R4TS) [2022/07/25(月) 22:30:19 ID:oUQ2GGC10.net]
- ・高度IT人材、富士通は最大年収3500万円へ
・AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ ・【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材 ・来年度から副業解禁 人材多様化へ―大同生命次期社長 ・第一生命HD、副業解禁 約1万5000人対象 ・第一生命HD、副業解禁 1万5000人対象―大手生保初 ・IHI、国内8000人の副業解禁 重厚長大企業も転機 ・IHI、社外兼業を解禁 社内副業もルール化
- 116 名前:デフォルトの名無しさん mailto:sage [2022/07/25(月) 23:25:00.63 ID:qmzvdF1J0.net]
- 高田純次はすごいよな
昔話・自慢話・説教は嫌われるからしないってのを徹底してる 方やここの老害共は
- 117 名前:デフォルトの名無しさん mailto:sage [2022/07/26(火) 18:51:38.02 ID:bRnWAQLB0.net]
- ブーメラン返ってきてるぞ
- 118 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 00:49:40.58 ID:LErGbxXl0.net]
- 2016使っててVBAが複数エクセル開いてると干渉して困ってたけど
タスクバーのアイコンを右クリックして、alt押し続けながらエクセル起動すると 別プロセスで起動できることを最近知った
- 119 名前:デフォルトの名無しさん (ワッチョイ b910-QN/E) [2022/07/27(水) 09:53:31 ID:YpiXqhyl0.net]
- Windows 10 エクスプローラー [表示]-[列の追加]-[列の選択]
「詳細表示の設定」ダイアログが開いて 詳細 「コメント」をチェック。 エクスプローラーに「コメント」列が追加される。 フォルダに設定されたコメントをVBAで取得する方法があったら教えてください。
- 120 名前:デフォルトの名無しさん mailto:sage [2022/07/27(水) 10:42:22.72 ID:y3iJ04t7M.net]
- vba shell.application getdetailsof
- 121 名前:デフォルトの名無しさん [2022/07/27(水) 11:00:39.14 ID:elZrgoJKa.net]
- エクスプローラーが突然アホになる健忘症を治す方法を教えてくれまいか
- 122 名前:デフォルトの名無しさん [2022/07/27(水) 11:13:16.58 ID:elZrgoJKa.net]
- >119
scripting.cocolog-nifty.com/blog/2010/10/desktopini-3818.html
- 123 名前:デフォルトの名無しさん [2022/07/27(水) 11:19:05.52 ID:Uy/d0pUP0.net]
- 質問させてください。
keizann.blog.shinobi.jp/-yahoovba-/yahoo%E3%83%95%E3%82%A1%E3%82%A4%E3%83%8A%E3%83%B3%E3%82%B9%E3%81%8B%E3%82%89%E6%A0%AA%E4%BE%A1%E6%83%85%E5%A0%B1%E3%81%AE%E5%8F%96%E5%BE%97 こちらのものを利用させていただきデータを収集しているのですが、これだと希望する場所にたどり着けないです。 例えばXPathのように2番目のliの中の〜みたいな書き方はできるのでしょうか?
- 124 名前:デフォルトの名無しさん (ワッチョイ 81da-SXL5) mailto:sage [2022/07/27(水) 11:42:49 ID:y/T7OYsG0.net]
- すまん.ワードVBA の質問すれどこにあるか知ってる人がいたら教えて.昔あったけど発見できない.かそってなくなったのかな.アクセスVBAとエクセルVBAしかないのかな.
- 125 名前:デフォルトの名無しさん (ラクッペペ MMeb-FUOq) mailto:sage [2022/07/27(水) 11:48:06 ID:y3iJ04t7M.net]
- VBAなんでも質問スレ Part3
https://mevius.5ch.net/test/read.cgi/tech/1631184381/ ただし…
- 126 名前:デフォルトの名無しさん (ワッチョイ 41ce-VsAj) mailto:sage [2022/07/27(水) 12:09:26 ID:sKOy45jL0.net]
- >>123
ざっと見たところ、単純に文字列を検索して切り出してるだけだから、関数の使い方を工夫すればできそうに見える ここよりその作者に直接聞け
- 127 名前:デフォルトの名無しさん [2022/07/27(水) 15:54:35.41 ID:t59wwtHz0.net]
- エクスプローラーが突然ハゲになる症状を治す方法を教えてくれまいか
- 128 名前:デフォルトの名無しさん mailto:sage [2022/07/28(木) 21:40:24.00 ID:5mhazMD10.net]
- >>127
再起動
- 129 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 11:13:15.94 ID:OVkASiTwd.net]
- >>123
最近ウェブページ操作することが多くて参考にならないかと思ってちょいみてみた 情報取得だけならこういう方法も処理が軽いからありなのかと勉強になったわ 取得したHTMLからお目当ての文字列を切り出すのにGetText関数を重層的に用いるのな GetText自体は簡単なもので、切り出したい文字列の前と後ろにある文字列を指定することで その間に挟まれている文字列を取得するというもの 何度か繰り返しこの関数を使うことで、目的の文字列にたどり着く うまいこと前後の文字列を指定してあげないと切り出しが狂ってしまって目標にたどり着けないので、その辺はHTMLをじっくり見ながらやってみるしかない タグにクラス名とかIDとか細かく設定されてるから、その辺を前後の文字列にうまいこと含ませながらやるのかな 取得したい文字列が存在する複数ページに共通する部分を使っていかないとダメっていう難しさはありそう
- 130 名前:デフォルトの名無しさん [2022/07/29(金) 13:56:47.64 ID:rkOqpdOk0.net]
- (なんでHTMLDocument使わないんだろう…)
- 131 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 14:12:34.81 ID:SQeCuMJr0.net]
- >>123
XPathを知ってるなら、そっちを使えばいいんじゃないの? だいたいスクレイピングといえば、FindElementByCssとかFindElementByXPathをつかうもので、 なんでわざわざ別のやり方をやりたいのか意味がわからん。
- 132 名前:デフォルトの名無しさん (スッップ Sd33-M5Tw) [2022/07/29(金) 15:37:25 ID:4rYLg7AVd.net]
- VBAでシリアル通信を行う場合についての質問です。
CreateFileで指定のCOMポートを開き、WriteFileで指令を送信、ReadFileでデータを格納する流れだと思うのですが、 WriteFileで送る文字列の形式がマニュアルを見ても分かりません。 読み出しメッセージが「STX 10 R PV01 01 ETX BCC」の順だとしたらこれをStringで送ればよいのでしょうか? それとも対応するASCIIコードを並べて送るのでしょうか?
- 133 名前:デフォルトの名無しさん [2022/07/29(金) 16:37:10.32 ID:idOVuMm7a.net]
- 対応するASCIIコードを並べて送る
- 134 名前:デフォルトの名無しさん [2022/07/29(金) 16:50:05.77 ID:4rYLg7AVd.net]
- 回答ありがとうございます。
WriteFileで1バイトずつコードを送っていき、終端のコードを送るとReadFileで返答を持ってこれるという認識でしょうか?
- 135 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 18:22:52.40 ID:Msj+MKnH0.net]
- COMポート送受信なんて、普通はそれ用のコントロールつかうんじゃね
MSCOMMとか今はもう動かのかな
- 136 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 19:50:13.57 ID:rpK6f4vc0.net]
- >>134
そんな簡単にはできない
- 137 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 20:30:37.69 ID:47SIIXKm0.net]
- >>135
Windows10 64bit でも一応動くみたいだけど一手間(ファイルを移動させたりレジストリを書換えたり)が必要みたい 詳しくは mscomm32.ocx windows10 とかでググって
- 138 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 20:43:22.69 ID:47SIIXKm0.net]
- >>134
別に1バイトずつじゃなくても複数バイトを一気に送れるよ まあ送信速度に対してCPUの方がアホほど速いから性能上はどっちでも変わらんけど 念のための確認だけど STX が &H53 &H54 &H58 って思ってないよね
- 139 名前:デフォルトの名無しさん (ワッチョイ 0bda-VsAj) mailto:sage [2022/07/29(金) 21:13:37 ID:rpK6f4vc0.net]
- 最近のPCはシリアルポートがついてない方が多いよね
ハイパーターミナルってVISTA以降は入ってないし
- 140 名前:134 mailto:sage [2022/07/29(金) 21:44:49.02 ID:4rYLg7AVd.net]
- 回答ありがとうございます
>>135,137 MSCOMMというものを使う方法もあるのですね 調べてみます >>138 ASCIIコードの対応でSTXが&H2、ETXが&H3ですよね 一気に送るというのは配列で渡すような形ですか? 基礎的な部分から分かっていないのできつい予感が
- 141 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 21:58:07.50 ID:Msj+MKnH0.net]
- つか通信する相手は何だよ?
相手側機器に、通信用のライブラリとかないのか?
- 142 名前:134 mailto:sage [2022/07/29(金) 23:12:49.30 ID:4rYLg7AVd.net]
- >>141
相手はレコーダーと調節計で目的は現在値の読出しです 調節計のほうは専用のソフトがありますがレコーダーのほうはありません PCで両方に接続して2つから同じタイミングで現在値を読んでExcelに記録していくものを作ろうとしています
- 143 名前:デフォルトの名無しさん [2022/07/29(金) 23:29:37.37 ID:uqH2D3BDd.net]
- 何でExcelで直接入出力する必要があるのか
馬鹿は発想からして馬鹿なんだよな
- 144 名前:デフォルトの名無しさん mailto:sage [2022/07/29(金) 23:58:33.41 ID:47SIIXKm0.net]
- >>140
> MSCOMMというものを使う方法もあるのですね 可能ならmscomm32.ocx使った方が遥かに楽 Win32APIだとボーレートとかの指定はSetCommState()を呼ばないとダメだし あと送信はWriteFile()で書き込めばいいだけだけど受信は何らかの要因で読めない時にキャンセルできるようにしないと使い勝手悪いのでSetCommTimeouts()でタイムアウト設定して制御を戻す必要あるけどmscomm32.ocxだと受信でイベントが発生するからそういう処理が楽 > ASCIIコードの対応でSTXが&H2、ETXが&H3ですよね ああすまんそこは大丈夫なのね、失礼した > 一気に送るというのは配列で渡すような形ですか? そう Byte 型の配列を渡す > 基礎的な部分から分かっていないのできつい予感が 脅かすようで申し訳ないけど結構ハードル高いよ 特にReadFile()の方はバッファサイズを間違えるとExcel自体が落ちたりするし どうしても茨の道を進みたい/進まざるを得ないならまずはファイルに対してCreateFile/ReadFile/WriteFile/CloseHandleから練習した方がいいかも
|

|