ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
関連スレ
Excel VBA 質問スレ Part79(ワッチョイあり)
https://mevius.5ch.net/test/read.cgi/tech/1674875532/
※前スレ
Excel VBA 質問スレ Part79
https://mevius.5ch.net/test/read.cgi/tech/1674874007/
Excel VBA 質問スレ Part80
■ このスレッドは過去ログ倉庫に格納されています
2023/05/31(水) 08:23:38.97ID:4RV1IxmB
394デフォルトの名無しさん
2024/01/18(木) 10:41:22.24ID:i5FxeiUS >>391
現状を正しく理解できないからなんとも言えないけど、関数かvbaかって質問なら、関数でできるなら関数、できないならvbaってしか答えられないと思う
関数って言っても組み合わせ次第では色々出来るから、vbaでしかできないと思っていても、工夫したら関数でできましたって事なんか腐る程あるし
現状を正しく理解できないからなんとも言えないけど、関数かvbaかって質問なら、関数でできるなら関数、できないならvbaってしか答えられないと思う
関数って言っても組み合わせ次第では色々出来るから、vbaでしかできないと思っていても、工夫したら関数でできましたって事なんか腐る程あるし
395デフォルトの名無しさん
2024/01/18(木) 11:06:18.05ID:DZf6Ha1U 現行のシステムの改良/改善なのか? それをベースによりよいシステム化をしてもいいのか?
月曜だけで4シートとあるが一週間分で28シートが現状で存在するのか?
100店舗ほどもあるシートに移動して入力した数量はどこの何に反映されるのか?
入力元のデータは指示書のようなカタチでまとまったものがあるのか?
或いは各店舗からの要請があって、それを元に質問者側が曜日で振り分けているのか?
4社に振り分けているとは?下請けの意味?配送コースの4車輛の意味?
コンビニを例えに出しているが、例示が悪いのかどうか、コンテナ(カゴ)に種々雑多な商品が詰め込まれた
イメージが付きまとってしまい、面倒臭いのはもっと他にあるだろうにと思ってしまうが、
あくまでも4社への振り分けが面倒なだけで、積み荷はもっと単純なものなのか(一店舗に一品とか)
全体のボリュームも知りたいところ
物流の観点から言うと、ピッキングなのか仕分けなのか 似たようなものだろと言われるかも知れないが
そのどっち側なのかでも設計も変わるし成果物も変わる ↓参考までに
https://www.keyence.co.jp/ss/products/autoid/logistics/role/function-safekeeping.jsp
月曜だけで4シートとあるが一週間分で28シートが現状で存在するのか?
100店舗ほどもあるシートに移動して入力した数量はどこの何に反映されるのか?
入力元のデータは指示書のようなカタチでまとまったものがあるのか?
或いは各店舗からの要請があって、それを元に質問者側が曜日で振り分けているのか?
4社に振り分けているとは?下請けの意味?配送コースの4車輛の意味?
コンビニを例えに出しているが、例示が悪いのかどうか、コンテナ(カゴ)に種々雑多な商品が詰め込まれた
イメージが付きまとってしまい、面倒臭いのはもっと他にあるだろうにと思ってしまうが、
あくまでも4社への振り分けが面倒なだけで、積み荷はもっと単純なものなのか(一店舗に一品とか)
全体のボリュームも知りたいところ
物流の観点から言うと、ピッキングなのか仕分けなのか 似たようなものだろと言われるかも知れないが
そのどっち側なのかでも設計も変わるし成果物も変わる ↓参考までに
https://www.keyence.co.jp/ss/products/autoid/logistics/role/function-safekeeping.jsp
396デフォルトの名無しさん
2024/01/18(木) 12:03:28.39ID:J8Jk6UJ9 なげーよ
397391
2024/01/18(木) 12:31:08.59ID:KlrhRgnN 曖昧な情報で皆様を混乱させてしまい申し訳ありません
現状でやっている作業の前提条件としては
曜日毎のコース表シートが4つあり
1シート内に曜日毎に決められた店舗の組み合わせで4~5コース存在している
店舗に出荷される数量が前日に確定し全店舗数量一覧が"紙ベース"で来る
数量一覧を元に該当店舗に出荷数を順次入力していく
月曜@〜月曜Cと分かれているのは下請け配送会社4社に振り分けた形で
月曜@にはA社担当コース、月曜➁にはB社担当コースという形になっています
各曜日シートに数量を記入したらその4つのシートが完成版で共有されます
完成版シートの仕様は変えられないと言われてしまったので
せめて数量入力を一元管理して効率化したいと思っていますが
>>391で作った入力用シートの入力情報を各曜日に転記さたいと思い
ChatGPTを使ってみましたがどうしても上手く行きませんでした
上記作業を持ち回りでやっている人間が3人いて入力作業効率化の提案をしても
「良く分からないからいい」「新しい作業を覚えたくない」「そうやって楽する事ばかり考えるな」
作ったという意見を頂いているのでシステムがブラックボックス化しても問題ありません
他作業と並行しながら2〜3時間かかる入力作業を続けたいそうです
現状でやっている作業の前提条件としては
曜日毎のコース表シートが4つあり
1シート内に曜日毎に決められた店舗の組み合わせで4~5コース存在している
店舗に出荷される数量が前日に確定し全店舗数量一覧が"紙ベース"で来る
数量一覧を元に該当店舗に出荷数を順次入力していく
月曜@〜月曜Cと分かれているのは下請け配送会社4社に振り分けた形で
月曜@にはA社担当コース、月曜➁にはB社担当コースという形になっています
各曜日シートに数量を記入したらその4つのシートが完成版で共有されます
完成版シートの仕様は変えられないと言われてしまったので
せめて数量入力を一元管理して効率化したいと思っていますが
>>391で作った入力用シートの入力情報を各曜日に転記さたいと思い
ChatGPTを使ってみましたがどうしても上手く行きませんでした
上記作業を持ち回りでやっている人間が3人いて入力作業効率化の提案をしても
「良く分からないからいい」「新しい作業を覚えたくない」「そうやって楽する事ばかり考えるな」
作ったという意見を頂いているのでシステムがブラックボックス化しても問題ありません
他作業と並行しながら2〜3時間かかる入力作業を続けたいそうです
398デフォルトの名無しさん
2024/01/18(木) 12:51:09.85ID:i5FxeiUS >>397
ごめん、結局最終的に何がやりたいのか全然分からないからアドバイスができない
「他作業と並行しながら2~3時間かかる入力作業を続けたいそうです」って言うならそれでいいんじゃない?
と思うけど、聞きたいのは多分そういうことじゃないよね?
言葉で説明されてもこっちはシートがどうなってるのか分からないからなんとも言えない
「東京から大阪まで行きたいけどどう行けばいいですか?」って聞かれても新幹線もあるしバスもあるし飛行機もあるから、なんとも答えられないよね?
それが「東京から大阪まで◯日◯時までにつくように新幹線で行きたいんですけど、どの新幹線に乗ればいいですか?」って聞かれたら答えられる
まずは関数なりvbaなりで自分でやってみて、分からないところのみを聞かないと誰も答えられないと思うよ
ごめん、結局最終的に何がやりたいのか全然分からないからアドバイスができない
「他作業と並行しながら2~3時間かかる入力作業を続けたいそうです」って言うならそれでいいんじゃない?
と思うけど、聞きたいのは多分そういうことじゃないよね?
言葉で説明されてもこっちはシートがどうなってるのか分からないからなんとも言えない
「東京から大阪まで行きたいけどどう行けばいいですか?」って聞かれても新幹線もあるしバスもあるし飛行機もあるから、なんとも答えられないよね?
それが「東京から大阪まで◯日◯時までにつくように新幹線で行きたいんですけど、どの新幹線に乗ればいいですか?」って聞かれたら答えられる
まずは関数なりvbaなりで自分でやってみて、分からないところのみを聞かないと誰も答えられないと思うよ
399デフォルトの名無しさん
2024/01/18(木) 12:59:01.97ID:i5FxeiUS あと、無駄な情報が多すぎ
ここは質問をして答えるスレなんだから運用までは面倒見きれない
完成版を変えちゃだめとかブラックボックスが~とかは運用の話であって、その話をされても「はぁ」って感想しかでない
ここは質問をして答えるスレなんだから運用までは面倒見きれない
完成版を変えちゃだめとかブラックボックスが~とかは運用の話であって、その話をされても「はぁ」って感想しかでない
400デフォルトの名無しさん
2024/01/18(木) 13:04:56.76ID:J5B7weBB 【VBA作成 依頼】
5ちゃんねるHTMLを WEBクエリしたんだが、見づらい。
タグ『< >』で改行させるVBAコードを 誰か作ってください。 無料で。
https://i.imgur.com/XMdGvUd.jpg
5ちゃんねるHTMLを WEBクエリしたんだが、見づらい。
タグ『< >』で改行させるVBAコードを 誰か作ってください。 無料で。
https://i.imgur.com/XMdGvUd.jpg
401デフォルトの名無しさん
2024/01/18(木) 14:58:45.62ID:DZf6Ha1U 曜日毎のコース表シートが4つあり : それ、火曜日水曜日って続かないってことだよね?
28シートあるのか?の問いに応じずに同じことを繰り返すってことは、そういうことだろ?
つまり、曜日毎は関係無くて、4コース用に4シートがあるだけ
面倒だけどそれぞれの店舗シートに入力したら、その4シートに反映される ということだろ?
その100店舗前後のシートを探すのが面倒だから入力用に新たに1シート設けて、そこに入力したら
店舗のシートに反映されて、尚且つコース用シートにもまとめられる と? そおゆうのが欲しいと?
28シートあるのか?の問いに応じずに同じことを繰り返すってことは、そういうことだろ?
つまり、曜日毎は関係無くて、4コース用に4シートがあるだけ
面倒だけどそれぞれの店舗シートに入力したら、その4シートに反映される ということだろ?
その100店舗前後のシートを探すのが面倒だから入力用に新たに1シート設けて、そこに入力したら
店舗のシートに反映されて、尚且つコース用シートにもまとめられる と? そおゆうのが欲しいと?
402デフォルトの名無しさん
2024/01/20(土) 11:31:50.99ID:vOFZkfTX >>397
結論から言うとそんなの余裕でできる
その前に、あのさ、君結構アタマいい人でしょ?
話を聞く人の労力もうちょっと考えてわかりやすい説明しようよ
・曜日7日
・コース4〜5
・下請け4社
・コンビニ5社(セブン・ローソン・ファミマ・サンクス・ミニストップ)
この4次元マトリックスがどういう風に表になってるのか
口だけで上手に説明するのって難しいし、読む側の読解力にも依存する
ひな形でもいいから自分で簡単なの作ってスクリーンショットとってあげるぐらいしなって
読んでる方はいろんな形式の表が頭に浮かぶんだけど、一体どれなのか特定できないもんだからまともなアドバイスできないわけよ
いろんな人からいろんなアドバイス聞きたいなら、まずどうやればできるだけ多くの人に正しい情報を伝えられるのか工夫しな
https://i.imgur.com/cf3VhMk.jpeg
結論から言うとそんなの余裕でできる
その前に、あのさ、君結構アタマいい人でしょ?
話を聞く人の労力もうちょっと考えてわかりやすい説明しようよ
・曜日7日
・コース4〜5
・下請け4社
・コンビニ5社(セブン・ローソン・ファミマ・サンクス・ミニストップ)
この4次元マトリックスがどういう風に表になってるのか
口だけで上手に説明するのって難しいし、読む側の読解力にも依存する
ひな形でもいいから自分で簡単なの作ってスクリーンショットとってあげるぐらいしなって
読んでる方はいろんな形式の表が頭に浮かぶんだけど、一体どれなのか特定できないもんだからまともなアドバイスできないわけよ
いろんな人からいろんなアドバイス聞きたいなら、まずどうやればできるだけ多くの人に正しい情報を伝えられるのか工夫しな
https://i.imgur.com/cf3VhMk.jpeg
403デフォルトの名無しさん
2024/01/20(土) 12:01:23.58ID:vOFZkfTX >>400
タグをvbNewLineに置換するだけ
自 分 で や れ
.
タグをvbNewLineに置換するだけ
自 分 で や れ
.
404デフォルトの名無しさん
2024/01/20(土) 12:04:37.73ID:FNhUV8xD Excel VBAでAIは作れますか?
405デフォルトの名無しさん
2024/01/20(土) 19:05:48.23ID:6lky6R4+406デフォルトの名無しさん
2024/01/21(日) 03:02:30.89ID:cfaA1lc6 みんなの環境は32bit? 64bit?
世間はどっちが多いんだろう
最近は64bitにしても影響少なくなったと聞くけどどうなんだろう?
世間はどっちが多いんだろう
最近は64bitにしても影響少なくなったと聞くけどどうなんだろう?
407デフォルトの名無しさん
2024/01/21(日) 03:14:48.63ID:t3S6ML7u MacのVBEの中だけ、
controlキーを使ったショートカットが無効になってるんですが
仕様ですか?
カーソル移動のショートカットが使えないので困ってるのですが
Macの方はどう対応されてますか?
controlキーを使ったショートカットが無効になってるんですが
仕様ですか?
カーソル移動のショートカットが使えないので困ってるのですが
Macの方はどう対応されてますか?
408デフォルトの名無しさん
2024/01/21(日) 08:52:16.21ID:M95x8PfE >>406
逆に今32bit選ぶ理由って何?
逆に今32bit選ぶ理由って何?
409デフォルトの名無しさん
2024/01/21(日) 11:25:30.02ID:6T/txFD4 2021年以降は32bit版のWindowsが原則販売されなくなったんで、Officeも64bit化が急速に進んでると思われる
410400
2024/01/21(日) 12:07:31.28ID:FTr5VFHF411デフォルトの名無しさん
2024/01/21(日) 13:35:45.91ID:HjVkmv/J >>410
あんたすげえなマジで。
あんたすげえなマジで。
412デフォルトの名無しさん
2024/01/21(日) 21:54:39.11ID:cfaA1lc6 >>408
まだまだ32bit使って所が多いから
以前64bitにしたら客先で原因不明のエラーでまくったことがあってトラウマに
そのころはMSも32bitを推奨してた
ただ自分の周りくらいしかしらないから世間一般ではどんな感じなのかなと思って
ちなみに取引のある某測定器メーカは外に出すファイルは未だに「xls」に変換するなんてルールが残ってる
まだまだ32bit使って所が多いから
以前64bitにしたら客先で原因不明のエラーでまくったことがあってトラウマに
そのころはMSも32bitを推奨してた
ただ自分の周りくらいしかしらないから世間一般ではどんな感じなのかなと思って
ちなみに取引のある某測定器メーカは外に出すファイルは未だに「xls」に変換するなんてルールが残ってる
413デフォルトの名無しさん
2024/01/21(日) 21:55:41.57ID:cfaA1lc6 >>409
そうなんだ、混在によるトラブルが少なくなってきてるなら自分も64bitに変えたいな
そうなんだ、混在によるトラブルが少なくなってきてるなら自分も64bitに変えたいな
414デフォルトの名無しさん
2024/01/21(日) 22:45:54.49ID:FYICgzZP 取引先が無数にあると、とんでもない環境が残ってるところがあるもんなあ
うちの下請けにもWinXPのとこがあるし
業務用アプリと機器がVista以降サポート外で、それを作ってた会社もなくなってリプレースできないそうだ
うちの下請けにもWinXPのとこがあるし
業務用アプリと機器がVista以降サポート外で、それを作ってた会社もなくなってリプレースできないそうだ
415デフォルトの名無しさん
2024/01/21(日) 23:16:41.24ID:HjVkmv/J 64bitの方が高速なんでしょ。わ
416デフォルトの名無しさん
2024/01/22(月) 13:22:08.13ID:A+cdLUDz 32bitのほうが省メモリなので場合によっては32の方が速い
417デフォルトの名無しさん
2024/01/23(火) 13:00:26.55ID:TWMJRKR5418デフォルトの名無しさん
2024/01/23(火) 23:11:52.95ID:p5vRgsqV 64はパターセーフしろって言われるんだけど、そのくらいエクセルのほうで面倒見てくれんものか
スタート直後に羽根を外そうとしても警告してくれないBウイング並みに気がきかん
スタート直後に羽根を外そうとしても警告してくれないBウイング並みに気がきかん
419デフォルトの名無しさん
2024/01/24(水) 00:26:00.94ID:SDekNUM/ PtrはPointerの略
PtrSafeはポインタセーフ
PtrSafeはポインタセーフ
420デフォルトの名無しさん
2024/01/24(水) 07:28:58.42ID:jPeFRyU8 パターセーフからそれ読み取れるのすごいわ
脳が勝手にptrをポインタと変換してしまうから、
何言ってんだコイツとしか思えなかった
脳が勝手にptrをポインタと変換してしまうから、
何言ってんだコイツとしか思えなかった
421デフォルトの名無しさん
2024/01/24(水) 09:04:52.24ID:aGyCqA0L >>418
データイーストw
データイーストw
422デフォルトの名無しさん
2024/01/24(水) 09:35:36.07ID:kKiVyROU 酔って書き込んでそう
423デフォルトの名無しさん
2024/01/24(水) 13:07:54.28ID:4H3THdR1424デフォルトの名無しさん
2024/01/26(金) 10:50:59.48ID:HmDFTXOY 時代は64bit
425デフォルトの名無しさん
2024/01/27(土) 00:55:42.82ID:t7pPpNfJ 32ビット版のExcelをやめられるところはまだ少ない。
ようやく64ビット版に置き換えられる大企業が出てきた程度。
ようやく64ビット版に置き換えられる大企業が出てきた程度。
426デフォルトの名無しさん
2024/01/27(土) 06:28:48.80ID:0SBBADg4 Dim i as long と宣言してたのに
i = なんちゃらかんちやら とかいうコードで
iの価が32000程度を、超えるようなとき、over flowという
エラーになることがあります。
Dim i as long なら、32000を少し超えてもover flow
しないのに不思議です。
なんちゃらのとこには定数3とかの数式なのですが
ヤケクソで定数3を、 3# にしたらoverflowせず正常に動作しました。
なんでoverflowしたのか、憶測でも構わないので
誰か教えて下さい
ま、おそらくintegerと見做されたのでしょうが
どうして、Dim i as long 宣言したのに、なんか腑に落ちません
i = なんちゃらかんちやら とかいうコードで
iの価が32000程度を、超えるようなとき、over flowという
エラーになることがあります。
Dim i as long なら、32000を少し超えてもover flow
しないのに不思議です。
なんちゃらのとこには定数3とかの数式なのですが
ヤケクソで定数3を、 3# にしたらoverflowせず正常に動作しました。
なんでoverflowしたのか、憶測でも構わないので
誰か教えて下さい
ま、おそらくintegerと見做されたのでしょうが
どうして、Dim i as long 宣言したのに、なんか腑に落ちません
427デフォルトの名無しさん
2024/01/27(土) 07:28:24.81ID:TVHASdZo なんちゃらかんちやら を正確にここに書いて
428デフォルトの名無しさん
2024/01/27(土) 07:38:44.57ID:5pa6Aq5E >>426
数式中に使っているそれぞれの定数がIntegerの範囲内で、その合計がIntegerの範囲を超えるとオーバーフローするらしい。
定数もあらかじめ変数に入れたりして対策するみたい。
https://www.bold.ne.jp/engineer-club/vba-overflow
数式中に使っているそれぞれの定数がIntegerの範囲内で、その合計がIntegerの範囲を超えるとオーバーフローするらしい。
定数もあらかじめ変数に入れたりして対策するみたい。
https://www.bold.ne.jp/engineer-club/vba-overflow
429デフォルトの名無しさん
2024/01/27(土) 11:56:53.89ID:bKl8GlI9 そういや32bitから64bitにしたら、
Adoで取得したレコード数をlong型の変数に入れる時に型がおかしいとかいうエラーが出たことあるな。
longlongにしても駄目で、clng()したら動いた。
ワケわからん。
Adoで取得したレコード数をlong型の変数に入れる時に型がおかしいとかいうエラーが出たことあるな。
longlongにしても駄目で、clng()したら動いた。
ワケわからん。
430デフォルトの名無しさん
2024/01/27(土) 12:15:04.39ID:ltTMqvHO >>429
型ぐらいマニュアルに書いてなかったか?
型ぐらいマニュアルに書いてなかったか?
431デフォルトの名無しさん
2024/01/27(土) 16:54:02.91ID:bKl8GlI9432デフォルトの名無しさん
2024/01/27(土) 16:59:10.82ID:vdIbcaGJ ADOを使うにあたって適切な参照設定が選択されているか
433デフォルトの名無しさん
2024/01/27(土) 17:06:20.98ID:CH7ruCqI434デフォルトの名無しさん
2024/01/27(土) 18:28:22.44ID:qMJDUKYO リファレンスとマニュアルは別だぞ
435デフォルトの名無しさん
2024/01/27(土) 19:18:08.00ID:KybuIZx4 同じ意味合いで使うこともあるよ
436デフォルトの名無しさん
2024/01/27(土) 21:10:11.38ID:tuLNWDY3 バカが混同してるだけ
437デフォルトの名無しさん
2024/01/27(土) 21:49:32.99ID:kM+lvGOz いやハゲが光ってるだけだろ
438デフォルトの名無しさん
2024/01/27(土) 22:06:36.73ID:t7pPpNfJ >>434
そんなの文脈次第だろw
そんなの文脈次第だろw
439デフォルトの名無しさん
2024/01/28(日) 09:17:03.35ID:0xzGzgK7 AutoFilterもしくはAdvancedFilterで行を抽出する
条件が2つまでしか指定できないので、3つ以上のときは条件を配列変数へ代入するというのがまずよく分からんが
条件にワイルドカードを指定するときは配列要素の3つ目以降は無視されるという制限を知らずに、1日ハマった
条件が2つまでしか指定できないので、3つ以上のときは条件を配列変数へ代入するというのがまずよく分からんが
条件にワイルドカードを指定するときは配列要素の3つ目以降は無視されるという制限を知らずに、1日ハマった
440デフォルトの名無しさん
2024/01/28(日) 09:25:58.21ID:P/o+j6FX Excel VBAの嫌なところはUTF-8のテキストファイルを扱うときだな
UTF-8とは相性が最悪で入力して出力するときになぜか一部がどこかに消える
UTF-8とは相性が最悪で入力して出力するときになぜか一部がどこかに消える
441デフォルトの名無しさん
2024/01/28(日) 14:12:49.59ID:GlU8zkf4442デフォルトの名無しさん
2024/01/28(日) 15:58:37.92ID:FpdhcBpS >>425
やっぱりそうだよね?自分の周りでも64bitに置き換えてる企業ってほぼないので
しかしここでは64bitが当たり前みたいだし、この手の質問を過去にもしたけどまともな回答得られたことないしで、自分の知らないところでは64bitが当たり前な業界もそれなりにあるのかな?と思ってしまった
64bit移行は取引先が多ければ多いほどハードルが高そう
世間一般的に32bitを切り捨てられるタイミングはいつ頃になるのかな
「xls」ですら切り捨てられない企業を見てると、そんなのは当分先になりそうなイメージ
もしくはMSが完全互換を達成してくれるか
やっぱりそうだよね?自分の周りでも64bitに置き換えてる企業ってほぼないので
しかしここでは64bitが当たり前みたいだし、この手の質問を過去にもしたけどまともな回答得られたことないしで、自分の知らないところでは64bitが当たり前な業界もそれなりにあるのかな?と思ってしまった
64bit移行は取引先が多ければ多いほどハードルが高そう
世間一般的に32bitを切り捨てられるタイミングはいつ頃になるのかな
「xls」ですら切り捨てられない企業を見てると、そんなのは当分先になりそうなイメージ
もしくはMSが完全互換を達成してくれるか
443426
2024/01/28(日) 16:52:07.92ID:v9jfp3rb イロイロ、ありがとう
さて、ま、念の為、何というか、
Dim i as long
Dim x as long
Dim y as long
Dim BDATA(約25000000) as BYTE
For x = 0 to 3840 - 1
For y = 0 to 2160 - 1
i = 3840 * 3 * y + 3 * x
BDATA(i) = 255
BDATA(i+1) = 0
BDATA(i+2) = 0
next
next
は、モチロン、駄目なプログラミング
さて、いや。呟きです。
とにかく、ありがとう
さて、ま、念の為、何というか、
Dim i as long
Dim x as long
Dim y as long
Dim BDATA(約25000000) as BYTE
For x = 0 to 3840 - 1
For y = 0 to 2160 - 1
i = 3840 * 3 * y + 3 * x
BDATA(i) = 255
BDATA(i+1) = 0
BDATA(i+2) = 0
next
next
は、モチロン、駄目なプログラミング
さて、いや。呟きです。
とにかく、ありがとう
444デフォルトの名無しさん
2024/01/28(日) 19:19:46.49ID:oSgnhTDB Doevents 入れないのか
445デフォルトの名無しさん
2024/01/28(日) 19:53:30.89ID:PqCzO7aX446デフォルトの名無しさん
2024/01/28(日) 19:54:43.44ID:I0zbqNbd Doevents 入れないのだ
これでいいのだ
バカボンのパパなのだ
これでいいのだ
バカボンのパパなのだ
447デフォルトの名無しさん
2024/01/28(日) 21:08:37.59ID:v9jfp3rb Do
Dim i as long
Dim x as long
Dim y as long
Dim BDATA(約25000000) as BYTE
For x = 0 to 3840 - 1
cells(1,"A") = x
DoEvents '''✦✦DoEvents 入れてみた \(^o^)/
For y = 0 to 2160 - 1
i = 3840# * 3# * y + 3# * x
BDATA(i) = 255
next
next
って感じでやると A1のセル、すなわちセルA1が
xの値がドンドン更新表示され、面白いです。
面白いから、これで、良いのだぁぁぁぁぁぁ
Dim i as long
Dim x as long
Dim y as long
Dim BDATA(約25000000) as BYTE
For x = 0 to 3840 - 1
cells(1,"A") = x
DoEvents '''✦✦DoEvents 入れてみた \(^o^)/
For y = 0 to 2160 - 1
i = 3840# * 3# * y + 3# * x
BDATA(i) = 255
next
next
って感じでやると A1のセル、すなわちセルA1が
xの値がドンドン更新表示され、面白いです。
面白いから、これで、良いのだぁぁぁぁぁぁ
448447
2024/01/28(日) 21:15:24.83ID:v9jfp3rb449デフォルトの名無しさん
2024/01/28(日) 21:19:00.87ID:09VyNDQR Excel VBAでDVDドライブをオープンさせることはできますか?
部署内のPC端末のDVDドライブを一斉にオープンさせるドッキリをしたいです
部署内のPC端末のDVDドライブを一斉にオープンさせるドッキリをしたいです
450デフォルトの名無しさん
2024/01/29(月) 05:09:16.17ID:XzFB+619451デフォルトの名無しさん
2024/01/29(月) 05:16:06.75ID:XzFB+619 業務アプリをVBAで書いてるとこがあってな
明治時代に創業してみんなも知ってる一部上場企業だよ
膨大な古いアプリを今さら改修とかできないから、なかなか64bitに移行できないんだよ
明治時代に創業してみんなも知ってる一部上場企業だよ
膨大な古いアプリを今さら改修とかできないから、なかなか64bitに移行できないんだよ
452デフォルトの名無しさん
2024/01/29(月) 05:53:44.09ID:evC8W0zb んー、?
Dim b(40000) as byte
Dim i as long
─途中 省略─
for i=0 to 40000
b(i) = 128
b(i+1) = 128
b(i+2) = 128
next
は、上手くいく予感を感じます。
もしかして、b(i+1) = 128で
iが32000一寸超えたあたりで
なんかある気もしますが、杞憂のような気もするし
実験するのも面倒だな
だってOSや実行環境やバージョンで、
実験結果に再現性がない気もするし
てか、64bitのEXCELにすれば、
配列の要素数的に動画も丸ごとメモリに読み込ませられる
ぢゃーーーん。メモリが、なくなって
障害が、発生が、するなんてことは、アリエナイ❓
b(i+clng(1)) = 128 にしなくてもOkかな
b(i+1#) = 128 にしようかな それとも
b(i+1&) = 128 にしようかな
&は文字連結だけどこの場合は
ま、1をlongで解釈というか
んー、まぁいいや。
Dim b(40000) as byte
Dim i as long
─途中 省略─
for i=0 to 40000
b(i) = 128
b(i+1) = 128
b(i+2) = 128
next
は、上手くいく予感を感じます。
もしかして、b(i+1) = 128で
iが32000一寸超えたあたりで
なんかある気もしますが、杞憂のような気もするし
実験するのも面倒だな
だってOSや実行環境やバージョンで、
実験結果に再現性がない気もするし
てか、64bitのEXCELにすれば、
配列の要素数的に動画も丸ごとメモリに読み込ませられる
ぢゃーーーん。メモリが、なくなって
障害が、発生が、するなんてことは、アリエナイ❓
b(i+clng(1)) = 128 にしなくてもOkかな
b(i+1#) = 128 にしようかな それとも
b(i+1&) = 128 にしようかな
&は文字連結だけどこの場合は
ま、1をlongで解釈というか
んー、まぁいいや。
453デフォルトの名無しさん
2024/01/29(月) 06:03:43.33ID:evC8W0zb 東証一部というか東京一部というか
東証プライムというか東京プライムというか
とにかく、変な名前に変更するのは、反対
64bitにするのは、反対の反対の反対の…なのだ
というか、東証一部なら名門だね。
というか、富士通とかNECとか東芝とかパナソニックとか
社内のは、まだ32ビットのエクセルなのかな❓
これらも、一部を除いて東証一部上場だな
東証プライムというか東京プライムというか
とにかく、変な名前に変更するのは、反対
64bitにするのは、反対の反対の反対の…なのだ
というか、東証一部なら名門だね。
というか、富士通とかNECとか東芝とかパナソニックとか
社内のは、まだ32ビットのエクセルなのかな❓
これらも、一部を除いて東証一部上場だな
454443
2024/01/29(月) 06:14:49.65ID:AKFLgh7s ん、いろんな人による
いろんなアドバイス、ありがとう
i = 3840 * 3 * y + 3 * x
でオーバーフローエラーになったら
今度は、
i = 3840 * 3 * y + 3 * x + 32768 - 32768
って、修正してみようかな❓
ゼッタイ、上手くいくハズだよね❓
でも、面倒だし、次回も3は3#にしゃおうかな
by 姑息な対応するデバッグプログラマでした
いろんなアドバイス、ありがとう
i = 3840 * 3 * y + 3 * x
でオーバーフローエラーになったら
今度は、
i = 3840 * 3 * y + 3 * x + 32768 - 32768
って、修正してみようかな❓
ゼッタイ、上手くいくハズだよね❓
でも、面倒だし、次回も3は3#にしゃおうかな
by 姑息な対応するデバッグプログラマでした
455454 自作自演ぢゃありません。∵自己レビュー
2024/01/29(月) 08:04:04.78ID:AKFLgh7s >>0454 1h40min前の自分に返信してあげる。
いま、1h40min前の自分の通り実験したけど、
❌ i = 3840 * 3 * y + 3 * x + 32768 - 32768
オバーフローエラーになっちゃたよん。
ちなみに、#とか定数にヤケクソでつけてもいいけどさ
やっぱり、&の方がヨイ
🙆 i = 3840& * 3& * y + 3& * x って感じでバッチリだ
でも、
❌ i = 1& - 1& + 3840 * 3 * y + 3 * x
の様な気もする。∵イロイロやってみた感触
というか、#とか&を定数の後にくっつけるのってヤヴァイ
様な気もするが、とにかく、珍しく、EXCELがバッチリ動いた\(^o^)/
いま、1h40min前の自分の通り実験したけど、
❌ i = 3840 * 3 * y + 3 * x + 32768 - 32768
オバーフローエラーになっちゃたよん。
ちなみに、#とか定数にヤケクソでつけてもいいけどさ
やっぱり、&の方がヨイ
🙆 i = 3840& * 3& * y + 3& * x って感じでバッチリだ
でも、
❌ i = 1& - 1& + 3840 * 3 * y + 3 * x
の様な気もする。∵イロイロやってみた感触
というか、#とか&を定数の後にくっつけるのってヤヴァイ
様な気もするが、とにかく、珍しく、EXCELがバッチリ動いた\(^o^)/
456455
2024/01/29(月) 08:12:40.14ID:AKFLgh7s >>455 5min前の自分に返信してあげる
その数式ないの定数 3とか3840とかの全て、全て、全部に
Clng(3)とかClng(3840)に置き換えなさい。
神からお告げなのだ。ていうか、今実験してみた結果ぢゃ
でも、&とか#の方が短くて見易い
その数式ないの定数 3とか3840とかの全て、全て、全部に
Clng(3)とかClng(3840)に置き換えなさい。
神からお告げなのだ。ていうか、今実験してみた結果ぢゃ
でも、&とか#の方が短くて見易い
457デフォルトの名無しさん
2024/01/29(月) 08:31:12.61ID:yN7n5dLr458デフォルトの名無しさん
2024/01/29(月) 10:01:16.80ID:AKFLgh7s VBAには、on error goto という、
エラーが発生しても、エラー発生の行でエラー発生せず
処理を続行させちゃう ウレピィー機能が存在がするようぢゃ、
i = 3*なんちゃらかんちゃら数式 ……🐌
BDATA(i) = 128
というコードで🐌の行でオバーフローエラーに
なってももしかするとErrをトラップ💃
BDATA(i) = 128 を実行させれるコードも可能ぢゃ
モチロン、配列BDATAの内容はメチャクチャだが
気にしなければ、これでヨシ(๑•̀ㅂ•́)و✧
だって、エラー発生しちゃったらやだろ😎
いや、それより、ドンドン64ビットのエクセルに
移行して、ドンドンバグを潰そう。
テーブルが壊れてバグ発生させても、キニシナイ
ていうか、その方が、バグ対策のノウハウが
バッチリになって株価急上昇の予感がしてきました。
東証プライムどんどん📈しろっう。
てか、そうだ今日は、平日だっけ?
株価をチェックしなければいけないので、では
また今度だ
エラーが発生しても、エラー発生の行でエラー発生せず
処理を続行させちゃう ウレピィー機能が存在がするようぢゃ、
i = 3*なんちゃらかんちゃら数式 ……🐌
BDATA(i) = 128
というコードで🐌の行でオバーフローエラーに
なってももしかするとErrをトラップ💃
BDATA(i) = 128 を実行させれるコードも可能ぢゃ
モチロン、配列BDATAの内容はメチャクチャだが
気にしなければ、これでヨシ(๑•̀ㅂ•́)و✧
だって、エラー発生しちゃったらやだろ😎
いや、それより、ドンドン64ビットのエクセルに
移行して、ドンドンバグを潰そう。
テーブルが壊れてバグ発生させても、キニシナイ
ていうか、その方が、バグ対策のノウハウが
バッチリになって株価急上昇の予感がしてきました。
東証プライムどんどん📈しろっう。
てか、そうだ今日は、平日だっけ?
株価をチェックしなければいけないので、では
また今度だ
459デフォルトの名無しさん
2024/01/29(月) 10:08:59.28ID:eJ6L0Jkg >>451
改修できないのは能力不足なだけでは
改修できないのは能力不足なだけでは
460デフォルトの名無しさん
2024/01/29(月) 11:00:49.76ID:L9ToZbOs >>454
i = 32768 + 3840 * 3 * y + 3 * x - 32768
i = 32768 + 3840 * 3 * y + 3 * x - 32768
461デフォルトの名無しさん
2024/02/01(木) 09:50:16.10ID:qkLEEfNI >>453
NECはLANPLAN、LANWORDだよ。
NECはLANPLAN、LANWORDだよ。
462デフォルトの名無しさん
2024/02/06(火) 21:11:58.14ID:tk+LFJYg 以下のコードで構文エラーになる、ならない区別がつかなくて質問します。
クラスモジュール
Function 背景色(ByVal range1 As Range, ByVal range2 As Range)
Dim lng_color As Long
lng_color = range2.Interior.Color
range1.Interior.Color = lng_color
End Function
標準モジュール
Sub test()
Dim rng1 As Range
Dim rng2 As Range
Dim mc As New Class1
Set rng1 = Range("C3") 'C3の色を
Set rng2 = Range("A3") 'A3に適用する
Dim str As String
str = mc.背景色(rng1, rng2)
End Sub
これで、str=の部分をなくすと構文エラーになってしまうのはなぜでしょうか?
クラスモジュール
Function 背景色(ByVal range1 As Range, ByVal range2 As Range)
Dim lng_color As Long
lng_color = range2.Interior.Color
range1.Interior.Color = lng_color
End Function
標準モジュール
Sub test()
Dim rng1 As Range
Dim rng2 As Range
Dim mc As New Class1
Set rng1 = Range("C3") 'C3の色を
Set rng2 = Range("A3") 'A3に適用する
Dim str As String
str = mc.背景色(rng1, rng2)
End Sub
これで、str=の部分をなくすと構文エラーになってしまうのはなぜでしょうか?
463デフォルトの名無しさん
2024/02/06(火) 21:29:12.00ID:rCver0bK うちではならない
464デフォルトの名無しさん
2024/02/06(火) 22:51:37.41ID:8QVr9gKs Functionだから? callで呼んだり、Subに変えては。
465デフォルトの名無しさん
2024/02/07(水) 00:03:31.59ID:/C0r4gOv >>464の言うとおりだと思うけど、Subにしても Call はつけないとダメかな
それか引数を囲うカッコをつけないか
それか引数を囲うカッコをつけないか
467デフォルトの名無しさん
2024/02/07(水) 05:24:58.93ID:ptzdB5MT >>462
VBAの謎な仕様の一つ
Functionの戻り値を受け取らない時、Functionは関数ではなくステートメントの一種と解釈されてしまう(らしい)
ステートメントの書き方が、VBAでは「命令と引数を空白で区切る」というルールになっているから
ステートメントの具体的な例を挙げると、
Dim a, b
これを
Dim (a, b)
と書くとエラーになるのと一緒
Callで呼んだときに挙動が変わるのは、こんどは関数がCallステートメントのパラメータになるから、構文の解釈が変わる
さらにややこしいことに、引数が1つだとエラーにならない
これは、カッコが演算子とも解釈できてしまうから
a = b
を
a = (b)
と書いても、無意味だけどエラーにならないのと同じで、カッコが必要なケースではそのまま解釈され、必要ないケースでは演算子とみなすことが可能なので結局エラーにならない
VBAの謎な仕様の一つ
Functionの戻り値を受け取らない時、Functionは関数ではなくステートメントの一種と解釈されてしまう(らしい)
ステートメントの書き方が、VBAでは「命令と引数を空白で区切る」というルールになっているから
ステートメントの具体的な例を挙げると、
Dim a, b
これを
Dim (a, b)
と書くとエラーになるのと一緒
Callで呼んだときに挙動が変わるのは、こんどは関数がCallステートメントのパラメータになるから、構文の解釈が変わる
さらにややこしいことに、引数が1つだとエラーにならない
これは、カッコが演算子とも解釈できてしまうから
a = b
を
a = (b)
と書いても、無意味だけどエラーにならないのと同じで、カッコが必要なケースではそのまま解釈され、必要ないケースでは演算子とみなすことが可能なので結局エラーにならない
468デフォルトの名無しさん
2024/02/07(水) 05:54:42.53ID:TWD16jEo 皆様ありがとうございます。
VBA学習を始めて間もないので、RangeがなぜStringに入るのだろう?
などと考えて悩んでいました。
とりあえず空白にすればいいのかな?と思い、
mc.背景色 rng1, rng2
としたらエラーなく実行できました。
VBA学習を始めて間もないので、RangeがなぜStringに入るのだろう?
などと考えて悩んでいました。
とりあえず空白にすればいいのかな?と思い、
mc.背景色 rng1, rng2
としたらエラーなく実行できました。
469デフォルトの名無しさん
2024/02/07(水) 08:03:51.30ID:2Cso54Y+ >>467
謎も何もパーサの都合
謎も何もパーサの都合
470デフォルトの名無しさん
2024/02/07(水) 10:12:34.77ID:p6WTk8Ln カッコ悪っ
471デフォルトの名無しさん
2024/02/07(水) 21:43:51.95ID:rJek+uci (悪)
472デフォルトの名無しさん
2024/02/08(木) 15:06:23.74ID:AG84sVu5 workbookとworksheetsを両方変数で繋げるにはどうしたらよいのでしょうか?
それぞれsetでwb, wsとした場合、
ws.cells(n,n)やwb.worksheets(n).cells(x,x)なんかは問題なく動くのですがwb.ws.,,,,とするとエラーが起きてしまいます
それぞれsetでwb, wsとした場合、
ws.cells(n,n)やwb.worksheets(n).cells(x,x)なんかは問題なく動くのですがwb.ws.,,,,とするとエラーが起きてしまいます
473デフォルトの名無しさん
2024/02/08(木) 16:06:23.33ID:5OVFjneR ワークシートの親ワークブックは特定されるので指定は不要
wsだけで使えば良い
相互参照したいなら
set ws = wb.Worksheets(n)
set wb = ws.Parent
wsだけで使えば良い
相互参照したいなら
set ws = wb.Worksheets(n)
set wb = ws.Parent
474デフォルトの名無しさん
2024/02/08(木) 17:26:16.95ID:EcJUi253 >>472
Setしたwsにはwb要素も含まれてて変更できない
複数のブックでシート名を共通にしたい時はWorksheetオブジェクトじゃなくて文字列にシート名を入れる
Dim stnam As String
stnam = "Sheet1"
wb.Worksheets(stnam)
みたいに書く
Setしたwsにはwb要素も含まれてて変更できない
複数のブックでシート名を共通にしたい時はWorksheetオブジェクトじゃなくて文字列にシート名を入れる
Dim stnam As String
stnam = "Sheet1"
wb.Worksheets(stnam)
みたいに書く
475デフォルトの名無しさん
2024/02/08(木) 19:08:54.01ID:AG84sVu5 出来ました!ありがとうございます!
476デフォルトの名無しさん
2024/02/08(木) 20:49:29.84ID:szZI865F ListBoxの要素をクリックしても枠線が表示されるだけで
青色に反転しないことが時々あるのですが、何故でしょうか?
青色に反転しないことが時々あるのですが、何故でしょうか?
477デフォルトの名無しさん
2024/02/09(金) 12:00:32.11ID:VUVEy040 エスパーするとデザインモードになっていたりマクロ禁止状態だったりするから
478476
2024/02/09(金) 21:03:02.70ID:Essi4uO7 どうもListBoxの端っこをクリックするとListBox自体がアクティブになり
前回選択していた要素にフォーカスが当たるようです(フォーカスするだけで選択はしない、青色にも反転しない)
前回選択していた要素にフォーカスが当たるようです(フォーカスするだけで選択はしない、青色にも反転しない)
479デフォルトの名無しさん
2024/02/10(土) 12:07:45.28ID:oVCg53lr プロパティウィンドウで何か設定イジったとか?
480デフォルトの名無しさん
2024/02/10(土) 22:18:00.43ID:3oPB1Oyo VBAベーシック合格したから、スタンダードも挑戦したい。
その前に 「日商プログラミング検定 STANDARD VBA」をAmazonで買って読んでみたけど、
載ってるプログラムが糞すぎて話にならない。
俺が10行で書ける奴を40行ぐらいでやってる。
買って損した。
その前に 「日商プログラミング検定 STANDARD VBA」をAmazonで買って読んでみたけど、
載ってるプログラムが糞すぎて話にならない。
俺が10行で書ける奴を40行ぐらいでやってる。
買って損した。
481デフォルトの名無しさん
2024/02/10(土) 22:52:32.27ID:3oPB1Oyo >>180
ChatGPTで教えてもらった。
これからやってみるw
Sub GetVegetableInfo()
Dim sheet1 As Worksheet
Dim sheet2 As Worksheet
Dim lastRow As Long
Dim i As Integer
' 「Sheet1」と「Sheet2」を取得
Set sheet1 = Worksheets("Sheet1")
Set sheet2 = Worksheets("Sheet2")
' 「Sheet2」のA1:B5を順番に処理
For i = 1 To 5
' 「Sheet1」で条件に合う最後の行を取得
lastRow = sheet1.Cells(sheet1.Rows.Count, "A").End(xlUp).Row
Do While lastRow > 1 And (sheet1.Cells(lastRow, 1).Value <> sheet2.Cells(i, 1).Value _
Or sheet1.Cells(lastRow, 2).Value <> sheet2.Cells(i, 2).Value)
lastRow = lastRow - 1
Loop
ChatGPTで教えてもらった。
これからやってみるw
Sub GetVegetableInfo()
Dim sheet1 As Worksheet
Dim sheet2 As Worksheet
Dim lastRow As Long
Dim i As Integer
' 「Sheet1」と「Sheet2」を取得
Set sheet1 = Worksheets("Sheet1")
Set sheet2 = Worksheets("Sheet2")
' 「Sheet2」のA1:B5を順番に処理
For i = 1 To 5
' 「Sheet1」で条件に合う最後の行を取得
lastRow = sheet1.Cells(sheet1.Rows.Count, "A").End(xlUp).Row
Do While lastRow > 1 And (sheet1.Cells(lastRow, 1).Value <> sheet2.Cells(i, 1).Value _
Or sheet1.Cells(lastRow, 2).Value <> sheet2.Cells(i, 2).Value)
lastRow = lastRow - 1
Loop
482デフォルトの名無しさん
2024/02/10(土) 22:52:57.45ID:3oPB1Oyo 続き
' 購入年月日と価格を「Sheet2」に記入
If lastRow > 1 Then
sheet2.Cells(i, 3).Value = sheet1.Cells(lastRow, 3).Value
sheet2.Cells(i, 4).Value = sheet1.Cells(lastRow, 4).Value
Else
sheet2.Cells(i, 3).Value = "条件に合うデータが見つかりません"
sheet2.Cells(i, 4).Value = "条件に合うデータが見つかりません"
End If
Next i
End Sub
' 購入年月日と価格を「Sheet2」に記入
If lastRow > 1 Then
sheet2.Cells(i, 3).Value = sheet1.Cells(lastRow, 3).Value
sheet2.Cells(i, 4).Value = sheet1.Cells(lastRow, 4).Value
Else
sheet2.Cells(i, 3).Value = "条件に合うデータが見つかりません"
sheet2.Cells(i, 4).Value = "条件に合うデータが見つかりません"
End If
Next i
End Sub
483デフォルトの名無しさん
2024/02/10(土) 22:59:51.09ID:3oPB1Oyo 一発でできたw
ChatGPTはすごいww
ChatGPTはすごいww
484デフォルトの名無しさん
2024/02/10(土) 23:03:48.85ID:3oPB1Oyo こういう文を自分で分かるようになるまで1行づつ勉強していけば良いのかな。
485デフォルトの名無しさん
2024/02/11(日) 00:18:22.77ID:gsh865m+ >>484
こんなのがわからん人には一生無理だよ
こんなのがわからん人には一生無理だよ
486デフォルトの名無しさん
2024/02/11(日) 08:41:00.98ID:4jVVlROf Excel2019だから仕方ないけど、2021や365ならワークシート関数で簡単に出来る内容だね。
487デフォルトの名無しさん
2024/02/11(日) 10:25:34.29ID:ectqOeXX んなこたーない
千里の道も一歩から
千里の道も一歩から
488デフォルトの名無しさん
2024/02/11(日) 11:10:11.68ID:KVjYyEwK >>487
賛成
賛成
489デフォルトの名無しさん
2024/02/11(日) 13:11:20.60ID:Uyf5FkAB 構造体の項目名を取ってくることって可能
Type type社員
番号 As Long
氏名 As String
所属 As String
住所 As String
電話 As String
End Type
こんな風になってる場合、
「番号」、「氏名」とかの項目名を取ってきたい
Type type社員
番号 As Long
氏名 As String
所属 As String
住所 As String
電話 As String
End Type
こんな風になってる場合、
「番号」、「氏名」とかの項目名を取ってきたい
490デフォルトの名無しさん
2024/02/11(日) 13:13:40.26ID:ODGSF/9t Chatgptに頼るとそれが癖になりそうでよ。
491デフォルトの名無しさん
2024/02/11(日) 13:31:41.97ID:RI7D2x7j492デフォルトの名無しさん
2024/02/11(日) 13:57:26.10ID:KVjYyEwK >>490
そもそも、こういう計算関係の問題ならChatGPTの方が人間よりも数万倍能力高いのに、どうして人間がやらなきゃいけないのか?
そもそも、こういう計算関係の問題ならChatGPTの方が人間よりも数万倍能力高いのに、どうして人間がやらなきゃいけないのか?
493デフォルトの名無しさん
2024/02/11(日) 14:03:59.06ID:Uyf5FkAB■ このスレッドは過去ログ倉庫に格納されています
