Excel VBA 質問スレ Part77

■ このスレッドは過去ログ倉庫に格納されています
2022/07/17(日) 07:07:35.59ID:tS4zKdphH
!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
2022/07/29(金) 23:12:49.30ID:4rYLg7AVd
>>141
相手はレコーダーと調節計で目的は現在値の読出しです
調節計のほうは専用のソフトがありますがレコーダーのほうはありません
PCで両方に接続して2つから同じタイミングで現在値を読んでExcelに記録していくものを作ろうとしています
143デフォルトの名無しさん (スッップ Sd33-3G+t)
垢版 |
2022/07/29(金) 23:29:37.37ID:uqH2D3BDd
何でExcelで直接入出力する必要があるのか
馬鹿は発想からして馬鹿なんだよな
2022/07/29(金) 23:58:33.41ID:47SIIXKm0
>>140
> MSCOMMというものを使う方法もあるのですね
可能ならmscomm32.ocx使った方が遥かに楽
Win32APIだとボーレートとかの指定はSetCommState()を呼ばないとダメだし
あと送信はWriteFile()で書き込めばいいだけだけど受信は何らかの要因で読めない時にキャンセルできるようにしないと使い勝手悪いのでSetCommTimeouts()でタイムアウト設定して制御を戻す必要あるけどmscomm32.ocxだと受信でイベントが発生するからそういう処理が楽

> ASCIIコードの対応でSTXが&H2、ETXが&H3ですよね
ああすまんそこは大丈夫なのね、失礼した

> 一気に送るというのは配列で渡すような形ですか?
そう Byte 型の配列を渡す

> 基礎的な部分から分かっていないのできつい予感が
脅かすようで申し訳ないけど結構ハードル高いよ
特にReadFile()の方はバッファサイズを間違えるとExcel自体が落ちたりするし
どうしても茨の道を進みたい/進まざるを得ないならまずはファイルに対してCreateFile/ReadFile/WriteFile/CloseHandleから練習した方がいいかも
2022/07/30(土) 00:32:26.79ID:EONGri1rd
>>144
回答ありがとうございます

制限があるわけではないのでmscomm32.ocxを使う方向で行こうと思います
先が長そうな感じはかなりありますね・・・
まずはCreateFile、ReadFile、WriteFile、CloseHandleでファイルを操作するところからやってみます
2022/07/30(土) 03:02:20.62ID:OeV/oYE+0
まずVBAでやるべきかどうか考えたほうが良いんじゃね
相手側がそれ用のコンポーネントでも用意してない限り、VBAでやるような案件じゃないぞ
2022/07/30(土) 03:31:29.08ID:S23h7zaP0
>>123 です。

レスいただいた方々ありがとうございます。
スプレッドシートの ImportXML でXPathは理解しました。
HTML/CSSは書けますがそれ以外はさっぱりで…。
HTMLDocument、FindElementByCss、FindElementByXPathなど
調べていて出てきましたがどう書き出してどうエクセルに書き込むか
一から十までのものが見当たらず挫折しました。

>>129 さん!書き込み、非常に参考になりました。
<td></td>
<td></td>
<td></td>
などは無理なようですが、どうにかclassなどが振ってあるサイトを探せました。
ありがとうございます。
148デフォルトの名無しさん (ワッチョイ f15f-H9lt)
垢版 |
2022/07/30(土) 03:43:44.39ID:GJbGwXKe0
>>123
if文で真偽値を二度判定するあたりなどは、もうさすがにやめてほしいわ。
149デフォルトの名無しさん (ワッチョイ f15f-H9lt)
垢版 |
2022/07/30(土) 03:50:55.80ID:GJbGwXKe0
>>147
Cells()だらけなのにExcelシートに値をセットしていないと思うのか?
2022/07/30(土) 05:00:33.23ID:eVUB+9l60
というか簡単に取れるけど
kabu_kode = ThisWorkbook.Sheets("Sheet2").Cells(1, X).Value
If kabu_kode <> "" Then
driver.Get "https://finance.yahoo.co.jp/quote/"; & 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デフォルトの名無しさん (アウアウウー Sa09-G1eK)
垢版 |
2022/07/30(土) 09:15:05.30ID:paa5jUiAa
>>143
++
ほんそれ
2022/07/30(土) 16:06:41.35ID:2k62MWGF0
>>143
縛りプレイが大好きなんだよきっと
2022/07/30(土) 17:59:01.96ID:abWJW+vX0
Sleep(1000)で3秒?
2022/07/30(土) 18:00:32.56ID:abWJW+vX0
kodeが気持ち悪い
そこはkodoかcodeだろ
2022/07/30(土) 18:40:37.03ID:zHogqexf0
>>145
ARDUINO とかで遊んでるやつもいて
VBA シリアル通信
でググれば事例は出てくるからまずはここら辺を参考にすればいいかと
https://kats-eye.net/info/2020/03/23/excel-arduino/
>>146,151-152 みたいな何の参考にもならないレスは無視していい
2022/07/30(土) 18:51:57.99ID:zHogqexf0
>>154
喧嘩売ってんの?w
https://kode.co.jp/about-kode
2022/07/30(土) 19:36:36.39ID:BNmOiQjDd
ローマ字と英語が混ざってる時点で頭悪そうだなとは思う
匿名掲示板以外では口に出さないけど
158デフォルトの名無しさん (ワッチョイ d68e-HyOH)
垢版 |
2022/07/30(土) 20:21:34.38ID:hXWLTBTp0
>>155
運用することを考慮しない馬鹿
2022/07/30(土) 21:04:41.17ID:LxmbT4O1r
盛り上がってるところ低レベルの割り込み恐縮ですが
ランダムな値が格納されてる配列の頻度分布を調べたいです
ワークシート関数使わないでできるだけ行数少なく書くならどうするべきでしょうか
2022/07/30(土) 21:17:32.71ID:abWJW+vX0
>>159
乱数の範囲によって方法が変わってくる
2022/07/30(土) 21:38:00.74ID:zHogqexf0
>>158
おまえ>>145の状況知ってるの?
まさか状況知らずにダメ出ししちゃう無能君かな?w
2022/07/30(土) 21:41:59.73ID:EONGri1rd
>>155
VBAのシリアル通信で調べていた際にARDUINOという単語を見かけたことはありましたが同じようにシリアル通信ができるのですね
中身を見た限り基本的な部分は同じようにできそうなので参考にしてみます
2022/07/30(土) 22:52:18.66ID:bNASqKAqd
>>159
CSVで出力してPythonでmatplotlib使えば一発よ
164デフォルトの名無しさん (ワッチョイ d68e-HyOH)
垢版 |
2022/07/30(土) 22:56:19.11ID:hXWLTBTp0
>>161
典型的なパソコンにちょっと詳しいだけの馬鹿
2022/07/30(土) 23:02:16.93ID:wkD5AAYO0
>>164
完全同意!
>>164とかまさにそれだよな
2022/07/31(日) 05:06:02.46ID:VbPtQjeWr
>>160
整数0から20で要素数70です
>>163
csv使うならワークシート関数でいいです
2022/07/31(日) 05:59:25.08ID:UwyiR8NW0
>>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
ってやればいいだけじゃねーの?
2022/07/31(日) 06:45:31.55ID:+RcSx9lzr
>>167
なるほど調べるのが整数限定ですからね
一般化して考えてたので思いつかなかったです
ありがとうございました
169デフォルトの名無しさん (ワッチョイ 79a0-pQei)
垢版 |
2022/08/01(月) 16:35:43.44ID:9g/R1AFs0
セルA1に 1:00:00 の
ような時間データが入っています

これを変数に格納したいのですが
上手く行きません

最終的に変数の左2文字 1: を
格納して他のセルに入っている
12:15:00 などの左2文字と比較
したいのです

エクセルVBAは独学で詳しく
わからないのですが、知見を
お借りしたく質問させていた
だきました
よろしくおねがいします

24歳OL
2022/08/01(月) 16:40:09.61ID:9ms8u+Pj0
なぜ24歳OLと入れた
2022/08/01(月) 16:44:24.88ID:Rl1xejp60
そのほうが教えてくれそうだから
172デフォルトの名無しさん (スッップ Sd9a-HyOH)
垢版 |
2022/08/01(月) 18:17:38.73ID:quoUWzO9d
VBAを知らないのではなくExcelのことをろくに知らないだけだな
173デフォルトの名無しさん (ブーイモ MM9a-cWH+)
垢版 |
2022/08/01(月) 18:34:36.42ID:ymJlKbsOM
>>169
VBA入門の最初の1ページからこのスレで説明しろと?
2022/08/01(月) 18:38:01.34ID:MuDoyFKF0
>>169
格納する変数の型が正しくないのかも
2022/08/01(月) 19:43:29.98ID:kaXTkJ9F0
>>169
シートの名前は?
2022/08/01(月) 19:44:55.66ID:b27MMuGu0
コロンは除外したほうが比較しやすい

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)
2022/08/01(月) 20:06:19.66ID:c2lbE9aCM
Hour関数ならVariant型変数
2022/08/01(月) 20:06:42.42ID:/01YeBPr0
>>176
ならhour()使う方がいいんじゃね
2022/08/01(月) 20:20:09.25ID:b27MMuGu0
>>178
たしかに
2022/08/01(月) 20:42:04.99ID:A4DKp3HMM
いつものあいつだろ
2022/08/02(火) 09:23:38.92ID:WVu/C7lVa
24歳OL
小娘になりすましかRudy厨
2022/08/02(火) 09:42:27.92ID:VTHaYhDHd
>>169の質問は「1:」とコロンも取り出したいという話なんだからまずはそれを回答しないとだめじゃないか?
そのうえで比較するのが違いがあるかなら1:00:00は「1」で12:15:00は「12」でもいいと思うから>>176みたいな回答を補足したほうがいいと思うが

なので回答としては Left(Range("A1").Text, 2) とでも答えてやればいいとおもうんだが
2022/08/02(火) 10:01:28.41ID:Gd43XZqn0
気持ち的にはめんどいからそれでいいんだけど、
まあ実際にちゃんとした相手に教えるとなればそれまでの経緯とその後の用途も聞いて、適したデータになるようにしないとだわね
文字列「1:」と数値「12」の比較なんてそのままでは出来ないから
2022/08/02(火) 10:05:23.71ID:VTHaYhDHd
>12:15:00 などの左2文字と比較したいのです
って書いてあるのにかってに「12」を数値にしちゃいかんだろ
なんかここで回答するやつたまに想像膨らませる奴いるけど仕事でもそんな感じなのかね
相手する人気の毒になる
2022/08/02(火) 11:54:47.43ID:qyGirSaK0
>>169
本当に左2文字を取り出したいのなら
変数 = Left(Range("A1").Text, 2)
だけど、もし時刻を比較したいんならこの方法はおすすめしない
2022/08/02(火) 14:56:05.83ID:g2MjUr00r
>>169です

たくさんレスいただき本当にありがとうございます
参考になるレスがたくさんで感謝しかありません

具体的な一例まで書いて頂けて助かります

これからで教えて頂いた内容を参考に
プログラムしてみます
この度は本当にありがとうございました
m(_ _)m@24歳OL
2022/08/02(火) 15:48:33.16ID:M1mz9f8+0
@24歳OLってことは、
24歳OLは地点の名称ってことだったんだな
2022/08/02(火) 16:09:24.35ID:Gd43XZqn0
まあ24歳の改行には見えんしな
189デフォルトの名無しさん (ワッチョイ d68e-HyOH)
垢版 |
2022/08/02(火) 16:18:40.57ID:f8W0+U3I0
10進法で24ではなく16進法とか32進法で24だろ
こんな釣りに引っ掛かって意気揚々と答える馬鹿ども
2022/08/02(火) 16:35:13.65ID:ouwdvJliM
=HEX2DEC(24)
2022/08/02(火) 17:59:32.64ID:9ai4+8EuM
お前ら食い付きすぎ
2022/08/02(火) 18:46:55.49ID:M1mz9f8+0
>>189
基数が変わると@の意味が変わるってこと言ってる?
193デフォルトの名無しさん (ワッチョイ 5d01-G1eK)
垢版 |
2022/08/02(火) 18:50:18.70ID:3Auutz710
社会人二年目が終わり、そろそろVBA・・・ってパターンの24歳OLもあり得るのでは?
2022/08/02(火) 18:59:16.08ID:59A+RgA40
遊びたい盛りの24歳がVBAになんか興味持つわけ無いだろ
ましてやExcelすら興味ないんだから
2022/08/02(火) 19:28:20.53ID:VTHaYhDHd
年齢に食いついてるのは質問に回答すらできない人達でしょ
196デフォルトの名無しさん (ワッチョイ 5d01-G1eK)
垢版 |
2022/08/02(火) 19:38:55.35ID:3Auutz710
24歳をチヤホヤしたらダメみたいな言い方だよな。
197デフォルトの名無しさん (ワッチョイ 5d01-G1eK)
垢版 |
2022/08/02(火) 19:53:54.38ID:3Auutz710
チヤホヤしていいのは、12歳までか。
2022/08/02(火) 20:57:14.71ID:OnsfUwTz0
OLために一人一生懸命なのいるな
199デフォルトの名無しさん (アウアウクー MMc5-H9lt)
垢版 |
2022/08/02(火) 22:24:42.35ID:A3tAvDnUM
ネタに反応すんなよw

セルの書式が標準だったら、本当に面倒くさいのがExcel。
200デフォルトの名無しさん (ワッチョイ 7a4f-dwFe)
垢版 |
2022/08/03(水) 07:56:32.23ID:7S+90b7b0
お前ら何を言ってるんだ?
RangeのTextプロパティなんて使える訳ないだろう
日付設定しているセルなんて幅狭められたら値が#になって終わりだ
2022/08/03(水) 09:41:28.63ID:gy/aLR/Wd
なぜ質問してる条件が「1:00:00」といってるのに勝手に「#」と想像を膨らませて混乱させるバカがいるのかと思う
終わってるのは自分だろと
質問された条件だけで素直に答えろよ
202デフォルトの名無しさん (ワッチョイ 7a4f-dwFe)
垢版 |
2022/08/03(水) 12:44:22.01ID:7S+90b7b0
>>201
バカはお前だ。
>>689が「時間データ」と銘打っているのだからそこに入っているのは「文字列データ」ではない。シリアル値だ。
そのシリアル値が入ったセルの列幅を縮めてみろ。
まともに動かなくなるぞ。

valueでセル値を取得してFormatなりで文字列に変換した後で切り出しを行え言ってるんだ。
そんなことも理解出来ないこんな小さいロジックでバグるコードドヤ顔で晒してるような奴がよくこの業界で生き残ってこれたもんだ。呆れるわ。
203デフォルトの名無しさん (ワッチョイ 7a4f-dwFe)
垢版 |
2022/08/03(水) 12:46:24.42ID:7S+90b7b0
>>689じやねーわ
>>169だわ
2022/08/03(水) 13:14:58.56ID:gy/aLR/Wd
あまりバカにかかわりたくないんだがTextでとると表示されている内容(「#DIV/0!」など)と同じものがとれるのはしってるわ
ただそれは条件に含まれてないわけだから仮にそういう問題もあると思うなら
お前から「#」になった場合も正しくとれる方法を回答してやれよ
粗さがしは得意で解決策を提示できない無能は自分の職場にもいるけど同じ匂いがするなお前
2022/08/03(水) 13:20:32.60ID:08s1J+Jsd
このクソ暑い日に本人そっちのけで戦う熱量に恐れ入るわ
206デフォルトの名無しさん (ワッチョイ 7a4f-dwFe)
垢版 |
2022/08/03(水) 13:27:57.05ID:7S+90b7b0
>>204
既に回答済みだわ
集中力が無いのか
読解力が無いのか
バカなのか
或いはその全てか
2022/08/03(水) 14:14:17.64ID:teV/av1J0
今日も暑苦しいねえ
2022/08/03(水) 14:15:56.82ID:teV/av1J0
なんかこれ一人で自演してるように思えて来たw
2022/08/03(水) 14:16:15.91ID:coj1xImd0
そんなユーザーなら誰でも知っているような話をどや顔で言い争うのやめてくれませんか?
見てて恥ずかしいし建設的じゃない。
2022/08/03(水) 18:07:13.51ID:Mw+Wxdkh0
>>209
反面教師と思ってああならないように気を付けようぜ
2022/08/03(水) 18:43:45.40ID:coj1xImd0
だからExcel板の連中からバカにされるんだよな
212デフォルトの名無しさん (ワッチョイ 5d01-G1eK)
垢版 |
2022/08/03(水) 18:56:42.70ID:EBW1aqTx0
Excel板なんてあんのか。
2022/08/03(水) 19:26:06.29ID:NOMH7G4CM
ビジネスsoft板のことだろ
214デフォルトの名無しさん (ワッチョイ 5d01-G1eK)
垢版 |
2022/08/03(水) 19:28:37.44ID:EBW1aqTx0
これはご親切にどうも。
2022/08/03(水) 20:54:58.72ID:coj1xImd0
何故仲悪いのか理解できたわ
2022/08/03(水) 21:31:27.92ID:PUzG+4xX0
相手の立場やレベルを考慮しないで言った通りのことしかできないやつは使えないって事なんだが

他人の話を額面通りにしか受け取れないのは、障がいだぜ
一度医者に行くことを薦めるわ
2022/08/03(水) 22:36:18.83ID:Mw+Wxdkh0
>>216
ブーメラン戻ってきてますよ
2022/08/04(木) 11:16:31.18ID:zN4tRRWc0
よっぽど悔しかったんだろ?
219デフォルトの名無しさん (アウアウウー Sa09-G1eK)
垢版 |
2022/08/04(木) 12:00:42.26ID:CwkjhMxBa
>>208
2022/08/04(木) 13:35:21.99ID:zN4tRRWc0
電話とPCでやれば自演てできるんだっけ?
221デフォルトの名無しさん (ワッチョイ fa42-p5jC)
垢版 |
2022/08/04(木) 16:47:37.44ID:cXYjQ5Ck0
じぇんじぇん
2022/08/04(木) 17:24:45.70ID:c9mFgSP40
SeleniumBasic、WebDriverの質問いいですか?
223デフォルトの名無しさん (ワイーワ2 FF62-H9lt)
垢版 |
2022/08/04(木) 17:28:53.56ID:kI29Y1SHF
>>206
なんでtextプロパティで取得する前提なのかがわからない。
224デフォルトの名無しさん (ワッチョイ ed5f-dSCr)
垢版 |
2022/08/04(木) 17:39:47.72ID:Lldfidgm0
>>222
https://neos21.net/blog/2021/02/17-01.html
225デフォルトの名無しさん (ワッチョイ f15f-3U9B)
垢版 |
2022/08/04(木) 20:26:30.10ID:WbKEV01G0
うちの会社は、プログラミング禁止になったよ
ちなみに代替手段はなし
マクロでやってたこと全部手作業になった
マジで物理作業量が跳ね上がってしまった
2022/08/04(木) 20:36:43.85ID:1k9fnhsyM
全体最適の観点では必ずしも間違った判断とは限らない
中途半端な小手先の最適化は業務自体を見直すモチベーションを奪うからな
227デフォルトの名無しさん (ワッチョイ 7a4f-dwFe)
垢版 |
2022/08/04(木) 22:20:34.12ID:QBsI6Re20
>>225
へぇー経緯は?
作った後テストしてなかったとか
IEEE754のせいで小数点計算がズレたとか?
2022/08/04(木) 22:56:37.32ID:NM48fYywM
馬鹿が内容も理解せずコピペで作ったマクロのせいで間違いが発生していた
コピペ主体だからメンテ不可能だった
そのくせ馬鹿は自分が他の人より偉いと思い込んでいた

こんなところだろ
229デフォルトの名無しさん (ワッチョイ f15f-H9lt)
垢版 |
2022/08/04(木) 23:14:37.44ID:isEYuHXY0
システム屋が作ったものではないと、そのひとしかわからないから、重要業務の担当者を外した巨大企業を知っている。

昔は我流でやるのが流行っていたから、プログラマでない人間が作ると、とんでもないものができているのが当たり前だった。
2022/08/04(木) 23:44:38.37ID:CV93jyTL0
>>229
他人と共有するものは、それなりにきちんと書かないといけない(ドキュメンテーションも含めて)けれども、自分ひとりが便利に使う書き捨てマクロまで禁止にするなんて、どうかしていると思いますよ
イノベーションイノベーションとうるさいくせに、そういうのを禁止するなんて矛盾していることに気がつかないのでしょうか?
231デフォルトの名無しさん (ワッチョイ f15f-H9lt)
垢版 |
2022/08/05(金) 00:23:11.85ID:Bo4EfhoE0
>>230
それが正確ならいいんだけどな。
2022/08/05(金) 00:38:13.23ID:umVys4oP0
>>225
面白そう
口パクみたいな感じで、働いてるフリすりゃいいんだろ?
実際には裏でVBSでも動かしておいて
233デフォルトの名無しさん (スプッッ Sd7a-Wbq1)
垢版 |
2022/08/05(金) 03:55:39.38ID:vRCkxY7dd
人間がやらなくてもいい業務をやり続けるのってすげぇ時間の無駄だと思うんだけど
その業務から学ぶことなんて何も無いだろうし
目先の金を拾うだけの仕事は良くないと思う
2022/08/05(金) 04:30:48.50ID:HVkrhrQ0d
属人化、なぜか暇そうにしてたからリストラ、腹いせにパスワードで業務が止まったと見た
2022/08/05(金) 07:35:30.37ID:Lt70mDKgr
公式な部署や担当を当てて書かせたんじゃなくて各々が自分用に書いてたんだろ
コードが残らないようにしとかないと混乱するし業務効率が違いすぎて「不公平」だと騒ぐやつとかいたんじゃないの
2022/08/05(金) 08:01:13.52ID:fMQMo2cEM
過去にタダ乗りされて酷い目にあったから使ってても教えない
2022/08/05(金) 08:25:59.90ID:D4FWb9o5d
どうしたら上手く運用出来るかを考えずに一律禁止にしてしまうところがJapですね
2022/08/05(金) 08:36:02.57ID:XxJI9h8Xd
個別最適を無視するトップダウンな判断ができるのはむしろ非Jap的だと思う
Japはゲンバにクチダセナイからな
2022/08/05(金) 10:47:16.04ID:9/CLsA+Od
スレと関係ない話題なんだから他でやれよ
2022/08/05(金) 11:33:11.96ID:GN+Cpyju0
Excelユーザーは誰もがVBAを使いこなしてると思い込んでいたわ
初心者の頃
2022/08/05(金) 11:46:42.49ID:m45XxceE0
まるで初心者じゃないみたいな言い方だな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況