Excel VBA 質問スレ Part77 at TECH
[2ch|▼Menu]
[1からを表示]
50:デフォルトの名無しさん
22/07/20 18:50:54.91 QKDnNcR/0.net
相手のレベルに合わせた回答ができないRuby厨と同じだな

51:デフォルトの名無しさん
22/07/20 20:05:56.52 mz71iafY0.net
>>50
ADO接続なんてネットでちょっと調べればすぐ出てくる。
SQLだってSELECT 〜FROM [シート名$] WHERE〜 程度の簡単なもの。
つまり初心者であってもちょっと調べればすぐに分かる範囲。
相手のレベルというよりお前さんのレベルが初心者以下なのでは?

52:デフォルトの名無しさん
22/07/20 20:30:27.87 yiSU6HA/0.net
ADOって消える消える言われて全然消えないな

53:デフォルトの名無しさん
22/07/20 20:40:21.12 bRggQ/0k0.net
VBAって消える消える言われて全然消えないな

54:デフォルトの名無しさん
22/07/20 21:53:08.66 BaO5YoZA0.net
VBAが消えるはユーザーが勝手に言ってるだけだが
ADOは、公式にOLEDB非推奨が出たけど、取り消されたりしたからな

55:デフォルトの名無しさん
22/07/20 21:55:26.21 QKDnNcR/0.net
>>51
はいはい、Rubyでもやってろ

56:デフォルトの名無しさん
22/07/20 22:01:03.48 yiSU6HA/0.net
>>54
知らなかった
軽く調べてみたら、2018年にOLE DBの非推奨が取り消しになったのね

57:デフォルトの名無しさん
22/07/20 22:53:19.49 dmRxss6E0.net
そいやアレ代替あるの?

58:デフォルトの名無しさん
22/07/21 11:53:53.93 HtCJq1nnM.net
officescriptじゃね

59:デフォルトの名無しさん
22/07/21 12:03:52.84 jQSVcGnW0.net
初心者にありがちなやつ
Select,Selection
Active◯◯
Copy,Paste
他は?

60:デフォルトの名無しさん
22/07/21 12:04:01.31 0IzTDkvO0.net
質問
本日になって急にExcelの描写がおかしくなった。
原因は、描写抑制のVBAがおかしいことを突き止めた。
どうやらFalseだけ実行され、Trueだけが強になって急に作動してなく抑止された状態が続く
同じような経験された人、解決方法しりませんか?
Application.ScreenUpdating = False
Application.ScreenUpdating = True

61:デフォルトの名無しさん
22/07/21 12:26:00.60 J3eN/Kn/0.net
>>60
365だよね?
俺も画面が更新されず止まったままになってて挙動がおかしい
でも実際は動いてるので、保存して開き直し
自分はそれでなんとか凌いだ

62:デフォルトの名無しさん
22/07/21 12:32:01.87 0IzTDkvO0.net
>>61
そう、365です。
描画は止まってても実際は動いてるのも全く一緒ですね。
一度保存して開きなおすと治る?試してみます

63:デフォルトの名無しさん
22/07/21 13:04:59.71 sCo3tE9G0.net
>>59
思い付くのは、Next iとかをNextだけで終わらせるヤツ。
特に若いヤツに多い。

64:デフォルトの名無しさん
22/07/21 13:23:18.80 0IzTDkvO0.net
>>61
保存したり閉じたり開いたり再起動したり更新したり色々試したけど直らず。
結局はApplication.ScreenUpdating関連を全て削除して一時的に回避することにした。
どうやらマイクロソフト自体が障害発生してるみたいだから描画バグの修正もしばらくかかりそう・・・

65:デフォルトの名無しさん
22/07/21 13:29:18.37 V7ED8gxj0.net
>>63
あれ不要だよな、センスが悪い

66:デフォルトの名無しさん
22/07/21 13:53:54.83 iXsJsite0.net
>>63
いや、Nextだけのほうがよくない?
ループ変数を明示したい状況って
・多重ループになっていてどのNextかパッと見でわからない
・For(Each) とNextが遠い
あたりが理由だろうけど、それってコードとしてあんまり綺麗な状態じゃないよね

67:デフォルトの名無しさん
22/07/21 14:11:56.94 gJFaDpGv0.net
>>60
VBEのイミディエイトウインドウなりでApplication.ScreenUpdating = Trueを実行すれば良いだけでは

68:デフォルトの名無しさん
22/07/21 14:33:39.21 yukJsBqWd.net
>>66
自分もつけない派だけど他人に押し付けることはしない
きれいかきれいじゃないかも人それぞれだから押し付けない
厳密な規約がないならマイルールで問題ないのでは

69:デフォルトの名無しさん
22/07/21 15:06:53.79 0IzTDkvO0.net
>>67
Trueにしても更新されないままなんだよね
MS障害で連携とれてないんか

70:デフォルトの名無しさん (ワッチョイ 5ada-XFSu)
22/07/21 16:36:30 sCo3tE9G0.net
いや、Next iとかきちんと書いた方が第三者も読みやすいはずよ。
いわゆるマクロを教える側の人間はきちんと書いてる(若いトレーナーは書いていないのもいるが)

71:デフォルトの名無しさん
22/07/21 17:06:17.40 yukJsBqWd.net
わかったわかった
そうしろそうしろ

72:デフォルトの名無しさん (ワッチョイ da4f-ZYSS)
22/07/21 17:59:40 fm0UHw9/0.net
>>68に同意
自分も付けない派だけど
そもそもそんなデカいループ組むことは稀だし
せいぜい2階層ネストするくらいだし
それ以上ループをネストすることがあったら
まず作りがおかしくないか、
別関数に切り出すかとかの方を先に考える。

ただ、だからといってNextの後に変数名が
付いていたからといって
「律儀な人だなぁ」と思うだけ。
別に付いてても付いてなくても
困らないからどっちでもいい。

73:デフォルトの名無しさん (ワッチョイ da4f-ZYSS)
22/07/21 18:13:16 fm0UHw9/0.net
むしろ繰返しの変数名に「I」とか「j」とか付けてる方が
「ああ、そんな時代もあったなぁ」と思ってしまうわ
そこまでやるならコメントもシングルクォートじゃなくて
「Rem 」って書くべきだろうと。
自分は絶対イヤだけど。

74:デフォルトの名無しさん
22/07/21 18:33:51.30 7CG+4UZvd.net
>>69
GPUオフは?

75:デフォルトの名無しさん
22/07/21 18:41:46.02 ppiq2d/La.net
>>66
C言語とかで
for(int i=0; i<10; ++i){
hoge;
fuga;
}i;
とかだったら卒倒して死ぬな

76:デフォルトの名無しさん
22/07/21 18:45:53.15 lyHIL7tOM.net
卒倒する前にエラーでコンパイル通らないだろ

77:デフォルトの名無しさん (ワッチョイ 912f-cIkS)
22/07/21 19:31:54 +XzLMWod0.net
Nextの後ろに変数書くかどうかで読みやすさが変わるようなプログラム組んでるなら
そもそも他人に教えるようなレベルじゃないと思うわ

あんなのは、まともにインデントすら組めなかった大昔のBASICの残骸だよ

78:デフォルトの名無しさん (ワッチョイ da4f-ZYSS)
22/07/21 19:48:37 fm0UHw9/0.net
>>75
それな
Cに限らずJavaやC++やC#もみんなそんな書き方だし、自分はVB系のような書き方も明示的で良いとは思ってるけど、
その書き方でもあまり困らないから結局のところは慣れの範疇だよね。

79:デフォルトの名無しさん (アウアウウー Sa39-10tP)
22/07/21 19:55:27 YVyuRB69a.net
i付けろとか、どうせ田中とかあの辺が言ってるだけだろ?
なんでも鵜呑みにする奴ってなんなんだろうな

80:デフォルトの名無しさん
22/07/21 20:07:36.67 gJFaDpGv0.net
ついてようがついてまいがインデントさえ正しきゃ好きにしろで終わり

81:デフォルトの名無しさん
22/07/21 20:09:11.68 VJl0SG/3a.net
呆れたわ
お前ら本当に上級者かよ?

82:デフォルトの名無しさん
22/07/21 20:16:07.12 KsRI+X9I0.net
正直どうでもいいくせにご飯何膳いくつもりだよ笑

83:デフォルトの名無しさん
22/07/21 20:57:19.02 KTgkocG90.net
>>69
Twitterでも報告されてるな

84:デフォルトの名無しさん (ワッチョイ 7dcd-eHP4)
22/07/21 21:48:53 Ksn9zkHy0.net
>>80
これな
みんな、そんなにループのネストが多いの?

functionに切り分けて配列を引数に持たせるのは無し?

85:デフォルトの名無しさん
22/07/21 23:26:47.96 obwhbA970.net
>>64
これちょいと前からなってたけどおま環かと思ってfalseにしないで回避してたわ
Twitter見たら前からなってる人も居たみたいね

86:デフォルトの名無しさん
22/07/22 11:13:35.20 y5iLWMChd.net
CreateObject(“Internetexplorer.Application“)が突然エラーを吐くようになった
普通のIEはまだ起動できるのに
他の人どうですか?

87:デフォルトの名無しさん
22/07/22 11:20:33.73 P7NcnZ58M.net
再起動

88:デフォルトの名無しさん
22/07/22 11:21:00.52 3zl+a5GK0.net
それも365?
何かIEはもうやめてEDGEに移行してくれって
随分前からMSからお達しがあったからその関係じゃないかな?
素直にEDGEに移行すれば?

89:デフォルトの名無しさん
22/07/22 11:28:21.24 y5iLWMChd.net
うへ、再起動したら治った
上の人ありがとうございます
でも何でだろう

MS公式アナウンスは2029までこの手法は使えるとのアナウンスだった
移行したいのは山々だがSelenium + Webdriverは面倒くさ過ぎ

90:デフォルトの名無しさん
22/07/22 13:04:28.34 RhXUUwNi0.net
正式なアナウンス?

91:デフォルトの名無しさん
22/07/22 15:29:50.23 Nxononph0.net
スタッフの個人ブログは正式アナウンスじゃないよ

92:デフォルトの名無しさん
22/07/22 19:04:07.42 Jcs8pkA+0.net
こないだのオフ会楽しかったな
URLリンク(blog.tirakita.com)

93:デフォルトの名無しさん
22/07/23 21:33:12.94 1FRkz0ow0.net
密です

94:デフォルトの名無しさん
22/07/23 21:51:44.32 ESnt81dA0.net
>CreateObject(“Internetexplorer.Application“)
IEってアウトプロセスだしCOMの開放忘れでリークしまくってて正常に起動できなくなってたに300ペリカ

95:デフォルトの名無しさん
22/07/25 10:04:05.83 Envy3B37M.net
Next iってVisualじゃないBASICでインデント付けずにフラットに書くことが多かった時代の名残でしょ

96:デフォルトの名無しさん
22/07/25 10:30:09.76 qmzvdF1J0.net
いつの話題だよ

97:デフォルトの名無しさん
22/07/25 10:31:25.87 aQHcIofRd.net
ネタがないから蒸し返したいんでしょ

98:デフォルトの名無しさん
22/07/25 14:14:33.64 TIxxPU060.net
>>95
インデントは余分にメモリ使うからな

99:デフォルトの名無しさん
22/07/25 16:11:05.58 GzNr1keE0.net
その環境だとNEXT IのIを省略した方が省メモリーじゃなかったっけ?

100:デフォルトの名無しさん
22/07/25 16:15:14.91 I+fEELmC0.net
確かコマンドごとにコードが決まっててそれでメモリを削ってた気がする
PRINTの命令コードは何番みたいに

101:デフォルトの名無しさん
22/07/25 16:21:50.51 +mm9gF5i0.net
>>99
あのー
このレベルの懐古厨にマウントは無理だよ

102:デフォルトの名無しさん
22/07/25 16:33:12.29 GzNr1keE0.net
>>100
環境に依ったような気がする
>>101
マウント厨かよw

103:デフォルトの名無しさん
22/07/25 16:38:39.42 phnqPDxNM.net
? が勝手にPRINTになるやつね
行末;とか意外と難しいよね

104:デフォルトの名無しさん
22/07/25 18:11:29.36 aiOwBskw0.net
>>103
わからない馬鹿は書かなければいいのに

105:デフォルトの名無しさん
22/07/25 19:32:28.46 c0BN6IQOM.net
>>103
合ってるよ
?はPRINTの省略でセミコロンはマルチステートメント
マルチステートメントは改行(crlf)するより1バイト分お得
プログラムエリアが20kくらいしかなかったから可読性なんて贅沢の極みの状況だった

106:デフォルトの名無しさん (ワッチョイ 112f-bldA)
22/07/25 19:39:56 6AaHjHdw0.net
マルチステートメントはセミコロンじゃなくてコロンな
ちな今のVBAでも使える

まあ、ソースを削れば早くなるなんてインタプリタ時代の遺物

107:デフォルトの名無しさん (スプッッ Sd33-3G+t)
22/07/25 19:45:38 Gx0l0SiPd.net
>>105
馬鹿の仲間か?

108:デフォルトの名無しさん (ブーイモ MM4d-/hU7)
22/07/25 19:53:42 c0BN6IQOM.net
>>106
あーすまん、フォローありがとう
もうウロ覚えだわ~

109:デフォルトの名無しさん (ワッチョイ 0bda-VsAj)
22/07/25 20:00:39 TIxxPU060.net
行末セミコロンはC言語

110:デフォルトの名無しさん (ワッチョイ 0bda-VsAj)
22/07/25 20:01:10 TIxxPU060.net
行末というか関数の後な

111:デフォルトの名無しさん
22/07/25 20:15:29.72 GzNr1keE0.net
>>103のセミコロンはPRINTの改行抑止の話じゃねーの?
>>110
a = 1; のどこに関数が?

112:デフォルトの名無しさん
22/07/25 21:09:51.78 6AaHjHdw0.net
>>110
行末っていうか文末な
>>111
>>103はそういう意味かもしれんとも思ったが、それに対する>>105は...
PRINT AよりPRINT A;が早いからPRINTはセミコロンつけろっていうのは太古の昔にはあったなあ

113:デフォルトの名無しさん
22/07/25 21:59:22.05 CW1FoItD0.net
如何にこのスレがじじいばかりか
よく分かるレスだなぁ

114:デフォルトの名無しさん
22/07/25 22:26:52.71 2R2hqyBdd.net
しかもスレチな話題をずっとするし害悪でしかない

115:デフォルトの名無しさん (ワッチョイ 5101-R4TS)
22/07/25 22:30:19 oUQ2GGC10.net
・高度IT人材、富士通は最大年収3500万円へ
・AI人材の獲得に超本気 NECが新人事制度を9人に適用、富士通は最大年収3500万円へ
・【年収3500万円も】富士通、「ジョブ型」人事制度を導入 幹部社員から 高度IT人材
・来年度から副業解禁 人材多様化へ―大同生命次期社長
・第一生命HD、副業解禁 約1万5000人対象
・第一生命HD、副業解禁 1万5000人対象―大手生保初
・IHI、国内8000人の副業解禁 重厚長大企業も転機
・IHI、社外兼業を解禁 社内副業もルール化

116:デフォルトの名無しさん
22/07/25 23:25:00.63 qmzvdF1J0.net
高田純次はすごいよな
昔話・自慢話・説教は嫌われるからしないってのを徹底してる
方やここの老害共は

117:デフォルトの名無しさん
22/07/26 18:51:38.02 bRnWAQLB0.net
ブーメラン返ってきてるぞ

118:デフォルトの名無しさん
22/07/27 00:49:40.58 LErGbxXl0.net
2016使っててVBAが複数エクセル開いてると干渉して困ってたけど
タスクバーのアイコンを右クリックして、alt押し続けながらエクセル起動すると
別プロセスで起動できることを最近知った

119:デフォルトの名無しさん (ワッチョイ b910-QN/E)
22/07/27 09:53:31 YpiXqhyl0.net
Windows 10 エクスプローラー [表示]-[列の追加]-[列の選択] 
「詳細表示の設定」ダイアログが開いて 詳細 「コメント」をチェック。
エクスプローラーに「コメント」列が追加される。

フォルダに設定されたコメントをVBAで取得する方法があったら教えてください。

120:デフォルトの名無しさん
22/07/27 10:42:22.72 y3iJ04t7M.net
vba shell.application getdetailsof

121:デフォルトの名無しさん
22/07/27 11:00:39.14 elZrgoJKa.net
エクスプローラーが突然アホになる健忘症を治す方法を教えてくれまいか

122:デフォルトの名無しさん
22/07/27 11:13:16.58 elZrgoJKa.net
>119
URLリンク(scripting.cocolog-nifty.com)

123:デフォルトの名無しさん
22/07/27 11:19:05.52 Uy/d0pUP0.net
質問させてください。
URLリンク(keizann.blog.shinobi.jp)
こちらのものを利用させていただきデータを収集しているのですが、これだと希望する場所にたどり着けないです。
例えばXPathのように2番目のliの中の〜みたいな書き方はできるのでしょうか?

124:デフォルトの名無しさん (ワッチョイ 81da-SXL5)
22/07/27 11:42:49 y/T7OYsG0.net
すまん.ワードVBA の質問すれどこにあるか知ってる人がいたら教えて.昔あったけど発見できない.かそってなくなったのかな.アクセスVBAとエクセルVBAしかないのかな.

125:デフォルトの名無しさん (ラクッペペ MMeb-FUOq)
22/07/27 11:48:06 y3iJ04t7M.net
VBAなんでも質問スレ Part3
スレリンク(tech板)

ただし…

126:デフォルトの名無しさん (ワッチョイ 41ce-VsAj)
22/07/27 12:09:26 sKOy45jL0.net
>>123
ざっと見たところ、単純に文字列を検索して切り出してるだけだから、関数の使い方を工夫すればできそうに見える
ここよりその作者に直接聞け

127:デフォルトの名無しさん
22/07/27 15:54:35.41 t59wwtHz0.net
エクスプローラーが突然ハゲになる症状を治す方法を教えてくれまいか

128:デフォルトの名無しさん
22/07/28 21:40:24.00 5mhazMD10.net
>>127
再起動

129:デフォルトの名無しさん
22/07/29 11:13:15.94 OVkASiTwd.net
>>123
最近ウェブページ操作することが多くて参考にならないかと思ってちょいみてみた
情報取得だけならこういう方法も処理が軽いからありなのかと勉強になったわ
取得したHTMLからお目当ての文字列を切り出すのにGetText関数を重層的に用いるのな
GetText自体は簡単なもので、切り出したい文字列の前と後ろにある文字列を指定することで
その間に挟まれている文字列を取得するというもの
何度か繰り返しこの関数を使うことで、目的の文字列にたどり着く
うまいこと前後の文字列を指定してあげないと切り出しが狂ってしまって目標にたどり着けないので、その辺はHTMLをじっくり見ながらやってみるしかない
タグにクラス名とかIDとか細かく設定されてるから、その辺を前後の文字列にうまいこと含ませながらやるのかな
取得したい文字列が存在する複数ページに共通する部分を使っていかないとダメっていう難しさはありそう

130:デフォルトの名無しさん
22/07/29 13:56:47.64 rkOqpdOk0.net
(なんでHTMLDocument使わないんだろう…)

131:デフォルトの名無しさん
22/07/29 14:12:34.81 SQeCuMJr0.net
>>123
XPathを知ってるなら、そっちを使えばいいんじゃないの?
だいたいスクレイピングといえば、FindElementByCssとかFindElementByXPathをつかうもので、
なんでわざわざ別のやり方をやりたいのか意味がわからん。

132:デフォルトの名無しさん (スッップ Sd33-M5Tw)
22/07/29 15:37:25 4rYLg7AVd.net
VBAでシリアル通信を行う場合についての質問です。
CreateFileで指定のCOMポートを開き、WriteFileで指令を送信、ReadFileでデータを格納する流れだと思うのですが、
WriteFileで送る文字列の形式がマニュアルを見ても分かりません。
読み出しメッセージが「STX 10 R PV01 01 ETX BCC」の順だとしたらこれをStringで送ればよいのでしょうか?
それとも対応するASCIIコードを並べて送るのでしょうか?

133:デフォルトの名無しさん
22/07/29 16:37:10.32 idOVuMm7a.net
対応するASCIIコードを並べて送る

134:デフォルトの名無しさん
22/07/29 16:50:05.77 4rYLg7AVd.net
回答ありがとうございます。
WriteFileで1バイトずつコードを送っていき、終端のコードを送るとReadFileで返答を持ってこれるという認識でしょうか?

135:デフォルトの名無しさん
22/07/29 18:22:52.40 Msj+MKnH0.net
COMポート送受信なんて、普通はそれ用のコントロールつかうんじゃね
MSCOMMとか今はもう動かのかな

136:デフォルトの名無しさん
22/07/29 19:50:13.57 rpK6f4vc0.net
>>134
そんな簡単にはできない

137:デフォルトの名無しさん
22/07/29 20:30:37.69 47SIIXKm0.net
>>135
Windows10 64bit でも一応動くみたいだけど一手間(ファイルを移動させたりレジストリを書換えたり)が必要みたい
詳しくは mscomm32.ocx windows10 とかでググって

138:デフォルトの名無しさん
22/07/29 20:43:22.69 47SIIXKm0.net
>>134
別に1バイトずつじゃなくても複数バイトを一気に送れるよ
まあ送信速度に対してCPUの方がアホほど速いから性能上はどっちでも変わらんけど
念のための確認だけど STX が &H53 &H54 &H58 って思ってないよね

139:デフォルトの名無しさん (ワッチョイ 0bda-VsAj)
22/07/29 21:13:37 rpK6f4vc0.net
最近のPCはシリアルポートがついてない方が多いよね
ハイパーターミナルってVISTA以降は入ってないし

140:134
22/07/29 21:44:49.02 4rYLg7AVd.net
回答ありがとうございます
>>135,137
MSCOMMというものを使う方法もあるのですね
調べてみます
>>138
ASCIIコードの対応でSTXが&H2、ETXが&H3ですよね
一気に送るというのは配列で渡すような形ですか?
基礎的な部分から分かっていないのできつい予感が

141:デフォルトの名無しさん
22/07/29 21:58:07.50 Msj+MKnH0.net
つか通信する相手は何だよ?
相手側機器に、通信用のライブラリとかないのか?

142:134
22/07/29 23:12:49.30 4rYLg7AVd.net
>>141
相手はレコーダーと調節計で目的は現在値の読出しです
調節計のほうは専用のソフトがありますがレコーダーのほうはありません
PCで両方に接続して2つから同じタイミングで現在値を読んでExcelに記録していくものを作ろうとしています

143:デフォルトの名無しさん
22/07/29 23:29:37.37 uqH2D3BDd.net
何でExcelで直接入出力する必要があるのか
馬鹿は発想からして馬鹿なんだよな

144:デフォルトの名無しさん
22/07/29 23:58:33.41 47SIIXKm0.net
>>140
> MSCOMMというものを使う方法もあるのですね
可能ならmscomm32.ocx使った方が遥かに楽
Win32APIだとボーレートとかの指定はSetCommState()を呼ばないとダメだし
あと送信はWriteFile()で書き込めばいいだけだけど受信は何らかの要因で読めない時にキャンセルできるようにしないと使い勝手悪いのでSetCommTimeouts()でタイムアウト設定して制御を戻す必要あるけどmscomm32.ocxだと受信でイベントが発生するからそういう処理が楽
> ASCIIコードの対応でSTXが&H2、ETXが&H3ですよね
ああすまんそこは大丈夫なのね、失礼した
> 一気に送るというのは配列で渡すような形ですか?
そう Byte 型の配列を渡す
> 基礎的な部分から分かっていないのできつい予感が
脅かすようで申し訳ないけど結構ハードル高いよ
特にReadFile()の方はバッファサイズを間違えるとExcel自体が落ちたりするし
どうしても茨の道を進みたい/進まざるを得ないならまずはファイルに対してCreateFile/ReadFile/WriteFile/CloseHandleから練習した方がいいかも

145:134
22/07/30 00:32:26.79 EONGri1rd.net
>>144
回答ありがとうございます
制限があるわけではないのでmscomm32.ocxを使う方向で行こうと思います
先が長そうな感じはかなりありますね・・・
まずはCreateFile、ReadFile、WriteFile、CloseHandleでファイルを操作するところからやってみます

146:デフォルトの名無しさん
22/07/30 03:02:20.62 OeV/oYE+0.net
まずVBAでやるべきかどうか考えたほうが良いんじゃね
相手側がそれ用のコンポーネントでも用意してない限り、VBAでやるような案件じゃないぞ

147:デフォルトの名無しさん
22/07/30 03:31:29.08 S23h7zaP0.net
>>123 です。
レスいただいた方々ありがとうございます。
スプレッドシートの ImportXML でXPathは理解しました。
HTML/CSSは書けますがそれ以外はさっぱりで…。
HTMLDocument、FindElementByCss、FindElementByXPathなど
調べていて出てきましたがどう書き出してどうエクセルに書き込むか
一から十までのものが見当たらず挫折しました。
>>129 さん!書き込み、非常に参考になりました。
<td></td>
<td></td>
<td></td>
などは無理なようですが、どうにかclassなどが振ってあるサイトを探せました。
ありがとうございます。

148:デフォルトの名無しさん
22/07/30 03:43:44.39 GJbGwXKe0.net
>>123
if文で真偽値を二度判定するあたりなどは、もうさすがにやめてほしいわ。

149:デフォルトの名無しさん
22/07/30 03:50:55.80 GJbGwXKe0.net
>>147
Cells()だらけなのにExcelシートに値をセットしていないと思うのか?

150:デフォルトの名無しさん
22/07/30 05:00:33.23 eVUB+9l60.net
というか簡単に取れるけど
kabu_kode = ThisWorkbook.Sheets("Sheet2").Cells(1, X).Value
If kabu_kode <> "" Then
driver.Get "URLリンク(finance.yahoo.co.jp) & kabu_kode
Call Sleep(1000) '3秒待つ
ThisWorkbook.Sheets("Sheet2").Cells(2, X).Value = driver.FindElementsByCss("h1._6uDhA-ZV").Item(1).Text '社名
ThisWorkbook.Sheets("Sheet2").Cells(3, X).Value = driver.FindElementsByCss("span._3rXWJKZF").Item(1).Text '株価
Set o_elem1 = driver.FindElementsByCss("dt")
Set o_elem2 = driver.FindElementsByCss("dd")
For Y = 1 To o_elem1.Count
If X = 2 Then ThisWorkbook.Sheets("Sheet2").Cells(Y + 3, 1).Value = o_elem1.Item(Y).Text '凡例を書く
ThisWorkbook.Sheets("Sheet2").Cells(Y + 3, X).Value = o_elem2.Item(Y).Text
Next
End If

151:デフォルトの名無しさん
22/07/30 09:15:05.30 paa5jUiAa.net
>>143
++
ほんそれ

152:デフォルトの名無しさん
22/07/30 16:06:41.35 2k62MWGF0.net
>>143
縛りプレイが大好きなんだよきっと

153:デフォルトの名無しさん (ワッチョイ 79ce-dSCr)
22/07/30 17:59:01 abWJW+vX0.net
Sleep(1000)で3秒?

154:デフォルトの名無しさん (ワッチョイ 79ce-dSCr)
22/07/30 18:00:32 abWJW+vX0.net
kodeが気持ち悪い
そこはkodoかcodeだろ

155:デフォルトの名無しさん
22/07/30 18:40:37.03 zHogqexf0.net
>>145
ARDUINO とかで遊んでるやつもいて
VBA シリアル通信
でググれば事例は出てくるからまずはここら辺を参考にすればいいかと
URLリンク(kats-eye.net)
>>146,151-152 みたいな何の参考にもならないレスは無視していい

156:デフォルトの名無しさん
22/07/30 18:51:57.99 zHogqexf0.net
>>154
喧嘩売ってんの?w
URLリンク(kode.co.jp)

157:デフォルトの名無しさん
22/07/30 19:36:36.39 BNmOiQjDd.net
ローマ字と英語が混ざってる時点で頭悪そうだなとは思う
匿名掲示板以外では口に出さないけど

158:デフォルトの名無しさん
22/07/30 20:21:34.38 hXWLTBTp0.net
>>155
運用することを考慮しない馬鹿

159:デフォルトの名無しさん
22/07/30 21:04:41.17 LxmbT4O1r.net
盛り上がってるところ低レベルの割り込み恐縮ですが
ランダムな値が格納されてる配列の頻度分布を調べたいです
ワークシート関数使わないでできるだけ行数少なく書くならどうするべきでしょうか

160:デフォルトの名無しさん
22/07/30 21:17:32.71 abWJW+vX0.net
>>159
乱数の範囲によって方法が変わってくる

161:デフォルトの名無しさん
22/07/30 21:38:00.74 zHogqexf0.net
>>158
おまえ>>145の状況知ってるの?
まさか状況知らずにダメ出ししちゃう無能君かな?w

162:134
22/07/30 21:41:59.73 EONGri1rd.net
>>155
VBAのシリアル通信で調べていた際にARDUINOという単語を見かけたことはありましたが同じようにシリアル通信ができるのですね
中身を見た限り基本的な部分は同じようにできそうなので参考にしてみます

163:デフォルトの名無しさん
22/07/30 22:52:18.66 bNASqKAqd.net
>>159
CSVで出力してPythonでmatplotlib使えば一発よ

164:デフォルトの名無しさん
22/07/30 22:56:19.11 hXWLTBTp0.net
>>161
典型的なパソコンにちょっと詳しいだけの馬鹿

165:デフォルトの名無しさん
22/07/30 23:02:16.93 wkD5AAYO0.net
>>164
完全同意!
>>164とかまさにそれだよな

166:デフォルトの名無しさん
22/07/31 05:06:02.46 VbPtQjeWr.net
>>160
整数0から20で要素数70です
>>163
csv使うならワークシート関数でいいです

167:デフォルトの名無しさん (ワッチョイ 7a01-Jv5Y)
22/07/31 05:59:25 UwyiR8NW0.net
>>166
普通に
Dim F(0 To 20) As Long
Dim I As Long
For I = LBound(A) To UBound(A)
F(A(I)) = F(A(I)) + 1
Next
ってやればいいだけじゃねーの?

168:デフォルトの名無しさん
22/07/31 06:45:31.55 +RcSx9lzr.net
>>167
なるほど調べるのが整数限定ですからね
一般化して考えてたので思いつかなかったです
ありがとうございました

169:デフォルトの名無しさん
22/08/01 16:35:43.44 9g/R1AFs0.net
セルA1に 1:00:00 の
ような時間データが入っています
これを変数に格納したいのですが
上手く行きません
最終的に変数の左2文字 1: を
格納して他のセルに入っている
12:15:00 などの左2文字と比較
したいのです
エクセルVBAは独学で詳しく
わからないのですが、知見を
お借りしたく質問させていた
だきました
よろしくおねがいします
24歳OL

170:デフォルトの名無しさん
22/08/01 16:40:09.61 9ms8u+Pj0.net
なぜ24歳OLと入れた

171:デフォルトの名無しさん
22/08/01 16:44:24.88 Rl1xejp60.net
そのほうが教えてくれそうだから

172:デフォルトの名無しさん
22/08/01 18:17:38.73 quoUWzO9d.net
VBAを知らないのではなくExcelのことをろくに知らないだけだな

173:デフォルトの名無しさん
22/08/01 18:34:36.42 ymJlKbsOM.net
>>169
VBA入門の最初の1ページからこのスレで説明しろと?

174:デフォルトの名無しさん
22/08/01 18:38:01.34 MuDoyFKF0.net
>>169
格納する変数の型が正しくないのかも

175:デフォルトの名無しさん
22/08/01 19:43:29.98 kaXTkJ9F0.net
>>169
シートの名前は?

176:デフォルトの名無しさん
22/08/01 19:44:55.66 b27MMuGu0.net
コロンは除外したほうが比較しやすい
Dim TimeA1 As Long
Dim TimeB1 As Long
TimeA1 = Left(Range("A1").Text,Instr(Range("A1").Text,":")-1)
TimeB1 = Left(Range("B1").Text,Instr(Range("B1").Text,":")-1)

177:デフォルトの名無しさん (ラクッペペ MMee-kNao)
22/08/01 20:06:19 c2lbE9aCM.net
Hour関数ならVariant型変数

178:デフォルトの名無しさん (ワッチョイ d593-q5pf)
22/08/01 20:06:42 /01YeBPr0.net
>>176
ならhour()使う方がいいんじゃね

179:デフォルトの名無しさん
22/08/01 20:20:09.25 b27MMuGu0.net
>>178
たしかに

180:デフォルトの名無しさん
22/08/01 20:42:04.99 A4DKp3HMM.net
いつものあいつだろ

181:デフォルトの名無しさん
22/08/02 09:23:38.92 WVu/C7lVa.net
24歳OL
小娘になりすましかRudy厨

182:デフォルトの名無しさん
22/08/02 09:42:27.92 VTHaYhDHd.net
>>169の質問は「1:」とコロンも取り出したいという話なんだからまずはそれを回答しないとだめじゃないか?
そのうえで比較するのが違いがあるかなら1:00:00は「1」で12:15:00は「12」でもいいと思うから>>176みたいな回答を補足したほうがいいと思うが
なので回答としては Left(Range("A1").Text, 2) とでも答えてやればいいとおもうんだが

183:デフォルトの名無しさん
22/08/02 10:01:28.41 Gd43XZqn0.net
気持ち的にはめんどいからそれでいいんだけど、
まあ実際にちゃんとした相手に教えるとなればそれまでの経緯とその後の用途も聞いて、適したデータになるようにしないとだわね
文字列「1:」と数値「12」の比較なんてそのままでは出来ないから

184:デフォルトの名無しさん
22/08/02 10:05:23.71 VTHaYhDHd.net
>12:15:00 などの左2文字と比較したいのです
って書いてあるのにかってに「12」を数値にしちゃいかんだろ
なんかここで回答するやつたまに想像膨らませる奴いるけど仕事でもそんな感じなのかね
相手する人気の毒になる

185:デフォルトの名無しさん
22/08/02 11:54:47.43 qyGirSaK0.net
>>169
本当に左2文字を取り出したいのなら
変数 = Left(Range("A1").Text, 2)
だけど、もし時刻を比較したいんならこの方法はおすすめしない

186:デフォルトの名無しさん
22/08/02 14:56:05.83 g2MjUr00r.net
>>169です
たくさんレスいただき本当にありがとうございます
参考になるレスがたくさんで感謝しかありません
具体的な一例まで書いて頂けて助かります
これからで教えて頂いた内容を参考に
プログラムしてみます
この度は本当にありがとうございました
m(_ _)m@24歳OL

187:デフォルトの名無しさん
22/08/02 15:48:33.16 M1mz9f8+0.net
@24歳OLってことは、
24歳OLは地点の名称ってことだったんだな

188:デフォルトの名無しさん
22/08/02 16:09:24.35 Gd43XZqn0.net
まあ24歳の改行には見えんしな

189:デフォルトの名無しさん
22/08/02 16:18:40.57 f8W0+U3I0.net
10進法で24ではなく16進法とか32進法で24だろ
こんな釣りに引っ掛かって意気揚々と答える馬鹿ども

190:デフォルトの名無しさん
22/08/02 16:35:13.65 ouwdvJliM.net
=HEX2DEC(24)

191:デフォルトの名無しさん
22/08/02 17:59:32.64 9ai4+8EuM.net
お前ら食い付きすぎ

192:デフォルトの名無しさん
22/08/02 18:46:55.49 M1mz9f8+0.net
>>189
基数が変わると@の意味が変わるってこと言ってる?

193:デフォルトの名無しさん
22/08/02 18:50:18.70 3Auutz710.net
社会人二年目が終わり、そろそろVBA・・・ってパターンの24歳OLもあり得るのでは?

194:デフォルトの名無しさん (ワッチョイ fada-HV89)
22/08/02 18:59:16 59A+RgA40.net
遊びたい盛りの24歳がVBAになんか興味持つわけ無いだろ
ましてやExcelすら興味ないんだから

195:デフォルトの名無しさん (スッップ Sd9a-1wwR)
22/08/02 19:28:20 VTHaYhDHd.net
年齢に食いついてるのは質問に回答すらできない人達でしょ

196:デフォルトの名無しさん (ワッチョイ 5d01-G1eK)
22/08/02 19:38:55 3Auutz710.net
24歳をチヤホヤしたらダメみたいな言い方だよな。

197:デフォルトの名無しさん
22/08/02 19:53:54.38 3Auutz710.net
チヤホヤしていいのは、12歳までか。

198:デフォルトの名無しさん
22/08/02 20:57:14.71 OnsfUwTz0.net
OLために一人一生懸命なのいるな

199:デフォルトの名無しさん
22/08/02 22:24:42.35 A3tAvDnUM.net
ネタに反応すんなよw
セルの書式が標準だったら、本当に面倒くさいのがExcel。

200:デフォルトの名無しさん
22/08/03 07:56:32.23 7S+90b7b0.net
お前ら何を言ってるんだ?
RangeのTextプロパティなんて使える訳ないだろう
日付設定しているセルなんて幅狭められたら値が#になって終わりだ

201:デフォルトの名無しさん
22/08/03 09:41:28.63 gy/aLR/Wd.net
なぜ質問してる条件が「1:00:00」といってるのに勝手に「#」と想像を膨らませて混乱させるバカがいるのかと思う
終わってるのは自分だろと
質問された条件だけで素直に答えろよ

202:デフォルトの名無しさん
22/08/03 12:44:22.01 7S+90b7b0.net
>>201
バカはお前だ。
>>689が「時間データ」と銘打っているのだからそこに入っているのは「文字列データ」ではない。シリアル値だ。
そのシリアル値が入ったセルの列幅を縮めてみろ。
まともに動かなくなるぞ。
valueでセル値を取得してFormatなりで文字列に変換した後で切り出しを行え言ってるんだ。
そんなことも理解出来ないこんな小さいロジックでバグるコードドヤ顔で晒してるような奴がよくこの業界で生き残ってこれたもんだ。呆れるわ。

203:デフォルトの名無しさん
22/08/03 12:46:24.42 7S+90b7b0.net
>>689じやねーわ
>>169だわ

204:デフォルトの名無しさん
22/08/03 13:14:58.56 gy/aLR/Wd.net
あまりバカにかかわりたくないんだがTextでとると表示されている内容(「#DIV/0!」など)と同じものがとれるのはしってるわ
ただそれは条件に含まれてないわけだから仮にそういう問題もあると思うなら
お前から「#」になった場合も正しくとれる方法を回答してやれよ
粗さがしは得意で解決策を提示できない無能は自分の職場にもいるけど同じ匂いがするなお前

205:デフォルトの名無しさん
22/08/03 13:20:32.60 08s1J+Jsd.net
このクソ暑い日に本人そっちのけで戦う熱量に恐れ入るわ

206:デフォルトの名無しさん
22/08/03 13:27:57.05 7S+90b7b0.net
>>204
既に回答済みだわ
集中力が無いのか
読解力が無いのか
バカなのか
或いはその全てか

207:デフォルトの名無しさん
22/08/03 14:14:17.64 teV/av1J0.net
今日も暑苦しいねえ

208:デフォルトの名無しさん
22/08/03 14:15:56.82 teV/av1J0.net
なんかこれ一人で自演してるように思えて来たw

209:デフォルトの名無しさん
22/08/03 14:16:15.91 coj1xImd0.net
そんなユーザーなら誰でも知っているような話をどや顔で言い争うのやめてくれませんか?
見てて恥ずかしいし建設的じゃない。

210:デフォルトの名無しさん
22/08/03 18:07:13.51 Mw+Wxdkh0.net
>>209
反面教師と思ってああならないように気を付けようぜ

211:デフォルトの名無しさん (ワッチョイ fada-HV89)
22/08/03 18:43:45 coj1xImd0.net
だからExcel板の連中からバカにされるんだよな

212:デフォルトの名無しさん
22/08/03 18:56:42.70 EBW1aqTx0.net
Excel板なんてあんのか。

213:デフォルトの名無しさん
22/08/03 19:26:06.29 NOMH7G4CM.net
ビジネスsoft板のことだろ

214:デフォルトの名無しさん
22/08/03 19:28:37.44 EBW1aqTx0.net
これはご親切にどうも。

215:デフォルトの名無しさん
22/08/03 20:54:58.72 coj1xImd0.net
何故仲悪いのか理解できたわ

216:デフォルトの名無しさん
22/08/03 21:31:27.92 PUzG+4xX0.net
相手の立場やレベルを考慮しないで言った通りのことしかできないやつは使えないって事なんだが
他人の話を額面通りにしか受け取れないのは、障がいだぜ
一度医者に行くことを薦めるわ

217:デフォルトの名無しさん
22/08/03 22:36:18.83 Mw+Wxdkh0.net
>>216
ブーメラン戻ってきてますよ

218:デフォルトの名無しさん
22/08/04 11:16:31.18 zN4tRRWc0.net
よっぽど悔しかったんだろ?

219:デフォルトの名無しさん
22/08/04 12:00:42.26 CwkjhMxBa.net
>>208

220:デフォルトの名無しさん (ワッチョイ fada-HV89)
22/08/04 13:35:21 zN4tRRWc0.net
電話とPCでやれば自演てできるんだっけ?

221:デフォルトの名無しさん
22/08/04 16:47:37.44 cXYjQ5Ck0.net
じぇんじぇん

222:デフォルトの名無しさん (ワッチョイ 79ce-dSCr)
22/08/04 17:24:45 c9mFgSP40.net
SeleniumBasic、WebDriverの質問いいですか?

223:デフォルトの名無しさん
22/08/04 17:28:53.56 kI29Y1SHF.net
>>206
なんでtextプロパティで取得する前提なのかがわからない。

224:デフォルトの名無しさん
22/08/04 17:39:47.72 Lldfidgm0.net
>>222
URLリンク(neos21.net)

225:デフォルトの名無しさん
22/08/04 20:26:30.10 WbKEV01G0.net
うちの会社は、プログラミング禁止になったよ
ちなみに代替手段はなし
マクロでやってたこと全部手作業になった
マジで物理作業量が跳ね上がってしまった

226:デフォルトの名無しさん
22/08/04 20:36:43.85 1k9fnhsyM.net
全体最適の観点では必ずしも間違った判断とは限らない
中途半端な小手先の最適化は業務自体を見直すモチベーションを奪うからな

227:デフォルトの名無しさん
22/08/04 22:20:34.12 QBsI6Re20.net
>>225
へぇー経緯は?
作った後テストしてなかったとか
IEEE754のせいで小数点計算がズレたとか?

228:デフォルトの名無しさん
22/08/04 22:56:37.32 NM48fYywM.net
馬鹿が内容も理解せずコピペで作ったマクロのせいで間違いが発生していた
コピペ主体だからメンテ不可能だった
そのくせ馬鹿は自分が他の人より偉いと思い込んでいた
こんなところだろ


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

37日前に更新/265 KB
担当:undef