1 名前:デフォルトの名無しさん mailto:sage [2023/05/31(水) 08:23:38.97 ID:4RV1IxmB.net] 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/
367 名前:デフォルトの名無しさん mailto:sage [2024/01/13(土) 10:50:05.61 ID:PnyKt9oE.net] >>361 職場のパソコンなので環境を変更するのは難しいです doeventsを入れたところ、エラーは出ないのですが、やはり150回ほどループしたタイミングで強制再起動となってしまいました タスクマネージャーで見ていたところ、メモリがどんどん増えていきます 色々調べたのですが環境によるものみたいです 素直に、100回ループさせたら一度EXCELを終了させ、メモリを解放してから再度EXCEL起動して続きからマクロを回すことにします ありがとうございました
368 名前:デフォルトの名無しさん mailto:sage [2024/01/13(土) 14:05:15.65 ID:veMnryOA.net] 32bit→64bitでどのくらい支障がでるんだろうか 顧客とのやり取りとかで支障がでるのが嫌で移行できないでいる 逆に64bitで32bitでの作成物を扱うのには特に支障はないのかな?
369 名前:デフォルトの名無しさん mailto:sage [2024/01/13(土) 14:05:21.54 ID:v88G6T5y.net] Sheet対象を辞めてRange対象にしてみたらどうか いきなりout.pdfに出力するのを辞めて新規ブックに追加していって、最後にそのブックをpdfでは メモリ不足から逃げる手立てを一考
370 名前:デフォルトの名無しさん mailto:sage [2024/01/13(土) 16:41:42.38 ID:PnyKt9oE.net] >>365 なるほど‥ 新規ブックを開いて、pdf化したいシートを順々にコピーしていき、最後に一回だけpdf化するということですね デメリットとしてはpdfが一つにまとまってしまいますが、運用に支障はないのかもしれません ありがとうございます 関係者に聞いてみて、それでも問題ないならその方向で行こうと思います
371 名前:デフォルトの名無しさん mailto:sage [2024/01/13(土) 19:24:41.20 ID:veMnryOA.net] 出来上がったpdfを分割までやればいいだけでは? コマンドラインで動く外部ツール使えばできるような
372 名前:デフォルトの名無しさん mailto:sage [2024/01/13(土) 20:34:27.31 ID:PnyKt9oE.net] >>367 後出しで申し訳ないのですが、実は出来上がったpdfをメールで送って、相手方で印刷するのが今回の運用だったのです なので「pdfを全て開いて印刷するのは結構面倒だよなぁ」とは思っていました しかし一つのpdfにできるのであれば、その問題も解決できるので、一つの方が今回は都合が良かったりします pdfを分割して置かなければならない別の機会があれば、そのようなことも検討したいと思います ありがとうございました
373 名前:デフォルトの名無しさん [2024/01/13(土) 21:55:24.12 ID:2NbpGDvt.net] 頭の悪い人は解決方法自体を間違えている いつもの
374 名前:デフォルトの名無しさん mailto:sage [2024/01/13(土) 22:36:38.78 ID:v88G6T5y.net] そういうことを平気で衆人環視の環境で書き込める人は 間違い無く病んでる 適しているかどうかは実際にやってみないといけないでしょ? 最後の大きく成ったブックをPDF化するときにエラー吐いて完走しなかったら 元も子も無いんだし 単なる思い付きで書いただけなので検証を 相手が居るならすり合わせも大事だし ダメ出しされたら再検討だし ところで、初手のout.pdf(このネーミングも如何なものか、とちょっと思った Outputの意味なのか、Out of Orderとかの意味なのか、いずれにしろ経営陣から したら眉を顰めてしまう単語 ま、それは置いといて)には、どう蓄積されるのか 興味があった これ走らせたらC:\out.pdfにページが追加されてく? C:\out.pdfが(2)(3)(4)・・とか増えてく? 誰か教えて
375 名前:デフォルトの名無しさん mailto:sage [2024/01/14(日) 01:10:58.98 ID:oEubWJyC.net] >>370 すみません、out.pdfというのはネットから適当に拾ったコードなので、自分のコードではチキンとした名前をつけています これを走らせるとout.pdfが上書きされ、一番最後のpdfしか残りません また、さっそく一番最後だけpdf化を試してみたのですが、ダメでした 50個回分をシートに蓄積してpdf化を繰り返したところ3回目まではうまく行ったのですが、4回目(160ループ目)くらいからpdfが文字化けしてしまいました どうもpdf化の回数は関係なく、どれくらいのデータ量をpdf化したかによって上限が来て、それ以降は文字化けするような仕組みみたいです .ExportAsFixedFormatを使用せずにworksheet.printoutメゾットでpdfに印刷するようにしたら、画質は劣るものの、全てpdf化できました 長々とありがとうございました
376 名前:デフォルトの名無しさん mailto:sage [2024/01/14(日) 07:32:56.45 ID:TX+95vKD.net] 次は添付ファイルのサイズ制限に引っかかって、結局分割することになると見た そしてVBAからメールを連続送信する方法を聞きに来て、最後にPDFがいくつあっても簡単に一括印刷できることを知るまでがセット
377 名前:デフォルトの名無しさん mailto:sage [2024/01/14(日) 08:46:41.57 ID:kWzMOUYI.net] >>370 はコマンドラインツール使ったことなさそう
378 名前:デフォルトの名無しさん mailto:sage [2024/01/14(日) 11:11:31.44 ID:Oiv3IqyF.net] >>362 それくらいならChatGptが良いコードを書いてくれるはずだよ
379 名前:デフォルトの名無しさん mailto:sage [2024/01/16(火) 19:30:09.09 ID:1/22QV7P.net] それならそのコードを貼ってあげなよ
380 名前:ぐううさ [2024/01/16(火) 21:08:30.59 ID:r9xAueHW.net] 業務でvba上手くいかないので質問させてもらってもよろしいでしょうか?
381 名前:ぐううさ [2024/01/16(火) 21:08:36.00 ID:r9xAueHW.net] 業務でvba上手くいかないので質問させてもらってもよろしいでしょうか?
382 名前:デフォルトの名無しさん mailto:sage [2024/01/16(火) 21:09:02.93 ID:wgtY3Vx1.net] 先輩に聞け
383 名前:ぐううさ [2024/01/16(火) 21:17:31.47 ID:r9xAueHW.net] エクセルシートで他システムから吐き出したデータの
384 名前:の位置や内容がバラバラのため、整理してからまた、他のシステムにデータを取り込むため、列の削除や移動をマクロと変数を使って、ユーザにパラメータを入れてもらって実行することをしたい。 変数にパラメータの値を入れられるが、その後のデータセットからデータの型がとエラーに、なりうまくいかない。 変数はstringsです。 [] [ここ壊れてます]
385 名前:デフォルトの名無しさん mailto:sage [2024/01/16(火) 21:59:35.09 ID:6je2UWdW.net] 致命的に説明が下手くそなやついるじゃん 376みたいなやつねw
386 名前:デフォルトの名無しさん mailto:sage [2024/01/16(火) 23:15:06.93 ID:Lr6G4gzP.net] >>379 なにしようとしてるかよくわからないけど、列番号とか指定したいならInteger型にしないといけないんじゃない?
387 名前:デフォルトの名無しさん mailto:sage [2024/01/16(火) 23:21:40.56 ID:Lr6G4gzP.net] これに下記コードを〇〇できるように書き換えてくださいってソースコード貼付ければいい感じに直してくれるよ https://www.perplexity.ai/
388 名前:デフォルトの名無しさん [2024/01/16(火) 23:33:44.09 ID:r9xAueHW.net] >>382 ありがとうございます。 会社でやっているのですぐにはわかりかねますが、再度説明し直して書き込ませていただきます。
389 名前:デフォルトの名無しさん [2024/01/17(水) 02:48:46.43 ID:tk11Vx7i.net] 馬鹿な会社の馬鹿社員 早く潰れろや
390 名前:デフォルトの名無しさん [2024/01/17(水) 07:28:15.10 ID:dIg9jZv4.net] 自分の能力以上のことを要求されたら 断るのも仕事ですよ
391 名前:デフォルトの名無しさん mailto:sage [2024/01/17(水) 08:40:16.63 ID:VIMKRH3+.net] 断る勇気も必要ですよ と書きたかったんだろうけど、断ってばかりじゃ評価下がるしな どんどん周りの人間の評価が上がり続けちゃったら、遠く無い将来に窓際に追いやられるし おちんぎんもらってチャレンジできるなら、やらないよりはやった方が自分のためにも成る もらったデータがどういうファイル形式なのかに依りけり csv(Comma Separated Valuesの略で、各項目がカンマ(,)で区切られたテキストデータ)なのか txt(中身が文字だけのデータ)なのか、それ以外の形式なのか より実務に即した回答が欲しければ、じぶんの環境を提示するのもだいじ 取り敢えず叩き台で https://www.crie.co.jp/chokotech/detail/264/ こんな作業をしていてどこで躓いてる、とかを
392 名前:デフォルトの名無しさん mailto:sage [2024/01/17(水) 09:18:18.18 ID:bryPjBMS.net] そんなあなたにPower Query
393 名前:デフォルトの名無しさん [2024/01/17(水) 10:15:06.17 ID:4yidygkf.net] できないものはできない 請け負った仕事には責任があるんだから最後までやりとげる 能力がないなら評価も低いのは当たり前
394 名前:デフォルトの名無しさん mailto:sage [2024/01/17(水) 11:50:01.48 ID:KP/5Q6je.net] 今日から始めた初心者ですが 予測変換の決定でエンター押すと改行されてしまうのですが、 それをさせない方法ありますか? スペースで決定なのはわかるのですが、慣れません。
395 名前:デフォルトの名無しさん mailto:sage [2024/01/17(水) 12:03:19.97 ID:W/DshM4G.net] >>389 それVBAの話?
396 名前:デフォルトの名無しさん mailto:sage [2024/01/17(水) 14:40:54.05 ID:KP/5Q6je.net] >>390 VBAのVBEの話ですね 一般的なエディタと挙動が違うので混乱してますが 慣れれば問題ないですかね
397 名前:ぐううさ [2024/01/17(水) 18:16:44.75 ID:ldP/vXQ/.net] 376ですが自力で本日できました。 回答頂いた方ありがとうございました🙇
398 名前:デフォルトの名無しさん mailto:sage [2024/01/17(水) 19:12:31.19 ID:HRooiYus.net] 質問の意味も分からなければ、 回答も役立たず ただのスレ汚し
399 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 00:33:52.88 ID:j51Gu5qi.net] VBAの質問なのですが 運送系事務でコース表の各店舗に数量を記
400 名前:する作業があるのですが この数量記入を例えば入力用というシートを作り一元管理したいのですが 配送を4社に振り分けている関係で月曜日でも月曜@、月曜➁、月曜➂、月曜C、と シートが4つに分かれておりシステム上これは変えられないと言われました 店舗も例えばセブン、ローソン、ファミマ、サンクス、ミニストップ、と色々あり 100店舗ほどあるのを該当店舗があるシートへ移動し数量を入力するという… 現状でやり始めた事はデータベースを作りキーワードで検索できるようにし ドロップダウンリストでセブンを選んだらセブン全店が表示されるようにしました これを利用してオプションボタン等で月曜を指定し店舗名の右セルに数量を入力すると 月曜日シートにある同名店舗の右セルに入力した数量が反映されるという形にしたいのです ここまで書いて思ったけどこれってVBAで解決させる物でしょうか? vlookupとかの関数の領域? すいません素人に毛が生えた程度の知識しか無いもので ご教授いただけると幸いです [] [ここ壊れてます]
401 名前:デフォルトの名無しさん [2024/01/18(木) 01:53:45.90 ID:jpryHAaY.net] >>394 ある程度複雑になるとVBAを使わないと何処に何があるかわからなくなって積む 特に他人からするとブラックボックス化する ドキュメントを残すことができるなら良いけど
402 名前:デフォルトの名無しさん [2024/01/18(木) 04:26:25.22 ID:O3FeaIOP.net] ワークシートの内容が固まりきってもう変更は無い、新しいものの追加はない、ならVBAでもいいけど自分なら関数で作る。 VBAで作った方が後々のメンテナンスが大変になる。
403 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 10:41:22.24 ID:i5FxeiUS.net] >>394 現状を正しく理解できないからなんとも言えないけど、関数かvbaかって質問なら、関数でできるなら関数、できないならvbaってしか答えられないと思う 関数って言っても組み合わせ次第では色々出来るから、vbaでしかできないと思っていても、工夫したら関数でできましたって事なんか腐る程あるし
404 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 11:06:18.05 ID:DZf6Ha1U.net] 現行のシステムの改良/改善なのか? それをベースによりよいシステム化をしてもいいのか? 月曜だけで4シートとあるが一週間分で28シートが現状で存在するのか? 100店舗ほどもあるシートに移動して入力した数量はどこの何に反映されるのか? 入力元のデータは指示書のようなカタチでまとまったものがあるのか? 或いは各店舗からの要請があって、それを元に質問者側が曜日で振り分けているのか? 4社に振り分けているとは?下請けの意味?配送コースの4車輛の意味? コンビニを例えに出しているが、例示が悪いのかどうか、コンテナ(カゴ)に種々雑多な商品が詰め込まれた イメージが付きまとってしまい、面倒臭いのはもっと他にあるだろうにと思ってしまうが、 あくまでも4社への振り分けが面倒なだけで、積み荷はもっと単純なものなのか(一店舗に一品とか) 全体のボリュームも知りたいところ 物流の観点から言うと、ピッキングなのか仕分けなのか 似たようなものだろと言われるかも知れないが そのどっち側なのかでも設計も変わるし成果物も変わる ↓参考までに https://www.keyence.co.jp/ss/products/autoid/logistics/role/function-safekeeping.jsp
405 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 12:03:28.39 ID:J8Jk6UJ9.net] なげーよ
406 名前:391 mailto:sage [2024/01/18(木) 12:31:08.59 ID:KlrhRgnN.net] 曖昧な情報で皆様を混乱させてしまい申し訳ありません 現状でやっている作業の前提条件としては 曜日毎のコース表シートが4つあり 1シート内に曜日毎に決められた店舗の組み合わせで4~5コース存在している 店舗に出荷される数量が前日に確定し全店舗数量一覧が"紙ベース"で来る 数量一覧を元に該当店舗に出荷数を順次入力していく 月曜@〜月曜Cと分かれているのは下請け配送会社4社に振り分けた形で 月曜@にはA社担当コース、月曜➁にはB社担当コースという形になっています 各曜日シートに数量を記入したらその4つのシートが完成版で共有されます 完成版シートの仕様は変えられないと言われてしまったので せめて数量入力を一元管理して効率化したいと思っていますが >>394 で作った入力用シートの入力情報を各曜日に転記さたいと思い ChatGPTを使ってみましたがどうしても上手く行きませんでした 上記作業を持ち回りでやっている人間が3人いて入力作業効率化の提案をしても 「良く分からないからいい」「新しい作業を覚えたくない」「そうやって楽する事ばかり考えるな」 作ったという意見を頂いているのでシステムがブラックボックス化しても問題ありません 他作業と並行しながら2〜3時間かかる入力作業を続けたいそうです
407 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 12:51:09.85 ID:i5FxeiUS.net] >>400 ごめん、結局最終的に何がやりたいのか全然分からないからアドバイスができない 「他作業と並行しながら2~3時間かかる入力作業を続けたいそうです」って言うならそれでいいんじゃない? と思うけど、聞きたいのは多分そういうことじゃないよね? 言葉で説明されてもこっちはシートがどうなってるのか分からないからなんとも言えない 「東京から大阪まで行きたいけどどう行けばいいですか?」って聞かれても新幹線もあるしバスもあるし飛行機もあるから、なんとも答えられないよね? それが「東京から大阪まで◯日◯時までにつくように新幹線で行きたいんですけど、どの新幹線に乗ればいいですか?」って聞かれたら答えられる まずは関数なりvbaなりで自分でやってみて、分からないところのみを聞かないと誰も答えられないと思うよ
408 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 12:59:01.97 ID:i5FxeiUS.net] あと、無駄な情報が多すぎ ここは質問をして答えるスレなんだから運用までは面倒見きれない 完成版を変えちゃだめとかブラックボックスが~とかは運用の話であって、その話をされても「はぁ」って感想しかでない
409 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 13:04:56.76 ID:J5B7weBB.net] 【VBA作成 依頼】 5ちゃんねるHTMLを WEBクエリしたんだが、見づらい。 タグ『< >』で改行させるVBAコードを 誰か作ってください。 無料で。 https://i.imgur.com/XMdGvUd.jpg
410 名前:デフォルトの名無しさん mailto:sage [2024/01/18(木) 14:58:45.62 ID:DZf6Ha1U.net] 曜日毎のコース表シートが4つあり : それ、火曜日水曜日って続かないってことだよね? 28シートあるのか?の問いに応じずに同じことを繰り返すってことは、そういうことだろ? つまり、曜日毎は関係無くて、4コース用に4シートがあるだけ 面倒だけどそれぞれの店舗シートに入力したら、その4シートに反映される ということだろ? その100店舗前後のシートを探すのが面倒だから入力用に新たに1シート設けて、そこに入力したら 店舗のシートに反映されて、尚且つコース用シートにもまとめられる と? そおゆうのが欲しいと?
411 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 11:31:50.99 ID:vOFZkfTX.net] >>400 結論から言うとそんなの余裕でできる その前に、あのさ、君結構アタマいい人でしょ? 話を聞く人の労力もうちょっと考えてわかりやすい説明しようよ ・曜日7日 ・コース4〜5 ・下請け4社 ・コンビニ5社(セブン・ローソン・ファミマ・サンクス・ミニストップ) この4次元マトリックスがどういう風に表になってるのか 口だけで上手に説明するのって難しいし、読む側の読解力にも依存する ひな形でもいいから自分で簡単なの作ってスクリーンショットとってあげるぐらいしなって 読んでる方はいろんな形式の表が頭に浮かぶんだけど、一体どれなのか特定できないもんだからまともなアドバイスできないわけよ いろんな人からいろんなアドバイス聞きたいなら、まずどうやればできるだけ多くの人に正しい情報を伝えられるのか工夫しな https://i.imgur.com/cf3VhMk.jpeg
412 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 12:01:23.58 ID:vOFZkfTX.net] >>403 タグをvbNewLineに置換するだけ 自 分 で や れ .
413 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 12:04:37.73 ID:FNhUV8xD.net] Excel VBAでAIは作れますか?
414 名前:デフォルトの名無しさん mailto:sage [2024/01/20(土) 19:05:48.23 ID:6lky6R4+.net] >>407 はい チューリング完全なので
415 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 03:02:30.89 ID:cfaA1lc6.net] みんなの環境は32bit? 64bit? 世間はどっちが多いんだろう 最近は64bitにしても影響少なくなったと聞くけどどうなんだろう?
416 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 03:14:48.63 ID:t3S6ML7u.net] MacのVBEの中だけ、 controlキーを使ったショートカットが無効になってるんですが 仕様ですか? カーソル移動のショートカットが使えないので困ってるのですが Macの方はどう対応されてますか?
417 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 08:52:16.21 ID:M95x8PfE.net] >>409 逆に今32bit選ぶ理由って何?
418 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 11:25:30.02 ID:6T/txFD4.net] 2021年以降は32bit版のWindowsが原則販売されなくなったんで、Officeも64bit化が急速に進んでると思われる
419 名前:400 mailto:age [2024/01/21(日) 12:07:31.28 ID:FTr5VFHF.net] https://i.imgur.com/h1EsLS7.jpg https://i.imgur.com/QL7Cbdy.jpg ここまで作った。 ほめて〜
420 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 13:35:45.91 ID:HjVkmv/J.net] >>413 あんたすげえなマジで。
421 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 21:54:39.11 ID:cfaA1lc6.net] >>411 まだまだ32bit使って所が多いから 以前64bitにしたら客先で原因不明のエラーでまくったことがあってトラウマに そのころはMSも32bitを推奨してた ただ自分の周りくらいしかしらないから世間一般ではどんな感じなのかなと思って ちなみに取引のある某測定器メーカは外に出すファイルは未だに「xls」に変換するなんてルールが残ってる
422 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 21:55:41.57 ID:cfaA1lc6.net] >>412 そうなんだ、混在によるトラブルが少なくなってきてるなら自分も64bitに変えたいな
423 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 22:45:54.49 ID:FYICgzZP.net] 取引先が無数にあると、とんでもない環境が残ってるところがあるもんなあ うちの下請けにもWinXPのとこがあるし 業務用アプリと機器がVista以降サポート外で、それを作ってた会社もなくなってリプレースできないそうだ
424 名前:デフォルトの名無しさん mailto:sage [2024/01/21(日) 23:16:41.24 ID:HjVkmv/J.net] 64bitの方が高速なんでしょ。わ
425 名前:デフォルトの名無しさん mailto:sage [2024/01/22(月) 13:22:08.13 ID:A+cdLUDz.net] 32bitのほうが省メモリなので場合によっては32の方が速い
426 名前:デフォルトの名無しさん mailto:sage [2024/01/23(火) 13:00:26.55 ID:TWMJRKR5.net] >>419 もしかして、まだWindows95使ってる? それならその意見も一理あるね
427 名前:デフォルトの名無しさん mailto:sage [2024/01/23(火) 23:11:52.95 ID:p5vRgsqV.net] 64はパターセーフしろって言われるんだけど、そのくらいエクセルのほうで面倒見てくれんものか スタート直後に羽根を外そうとしても警告してくれないBウイング並みに気がきかん
428 名前:デフォルトの名無しさん [2024/01/24(水) 00:26:00.94 ID:SDekNUM/.net] PtrはPointerの略 PtrSafeはポインタセーフ
429 名前:デフォルトの名無しさん mailto:sage [2024/01/24(水) 07:28:58.42 ID:jPeFRyU8.net] パターセーフからそれ読み取れるのすごいわ 脳が勝手にptrをポインタと変換してしまうから、 何言ってんだコイツとしか思えなかった
430 名前:デフォルトの名無しさん mailto:sage [2024/01/24(水) 09:04:52.24 ID:aGyCqA0L.net] >>421 データイーストw
431 名前:デフォルトの名無しさん mailto:sage [2024/01/24(水) 09:35:36.07 ID:kKiVyROU.net] 酔って書き込んでそう
432 名前:デフォルトの名無しさん mailto:sage [2024/01/24(水) 13:07:54.28 ID:4H3THdR1.net] >>420 意味不明だな Win95はメモリ8MBでも動作するように設計されたOSだが64bitアプリはサポートしていないぞ
433 名前:デフォルトの名無しさん mailto:sage [2024/01/26(金) 10:50:59.48 ID:HmDFTXOY.net] 時代は64bit
434 名前:デフォルトの名無しさん [2024/01/27(土) 00:55:42.82 ID:t7pPpNfJ.net] 32ビット版のExcelをやめられるところはまだ少ない。 ようやく64ビット版に置き換えられる大企業が出てきた程度。
435 名前:デフォルトの名無しさん [2024/01/27(土) 06:28:48.80 ID:0SBBADg4.net] 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 宣言したのに、なんか腑に落ちません
436 名前:デフォルトの名無しさん mailto:sage [2024/01/27(土) 07:28:24.81 ID:TVHASdZo.net] なんちゃらかんちやら を正確にここに書いて
437 名前:デフォルトの名無しさん [2024/01/27(土) 07:38:44.57 ID:5pa6Aq5E.net] >>429 数式中に使っているそれぞれの定数がIntegerの範囲内で、その合計がIntegerの範囲を超えるとオーバーフローするらしい。 定数もあらかじめ変数に入れたりして対策するみたい。 https://www.bold.ne.jp/engineer-club/vba-overflow
438 名前:デフォルトの名無しさん mailto:sage [2024/01/27(土) 11:56:53.89 ID:bKl8GlI9.net] そういや32bitから64bitにしたら、 Adoで取得したレコード数をlong型の変数に入れる時に型がおかしいとかいうエラーが出たことあるな。 longlongにしても駄目で、clng()したら動いた。 ワケわからん。
439 名前:デフォルトの名無しさん mailto:sage [2024/01/27(土) 12:15:04.39 ID:ltTMqvHO.net] >>432 型ぐらいマニュアルに書いてなかったか?
440 名前:デフォルトの名無しさん mailto:sage [2024/01/27(土) 16:54:02.91 ID:bKl8GlI9.net] >>433 マニュアルなんてあるの? VBなら電話帳より分厚いのがあったけど。
441 名前:デフォルトの名無しさん mailto:sage [2024/01/27(土) 16:59:10.82 ID:vdIbcaGJ.net] ADOを使うにあたって適切な参照設定が選択されているか
442 名前:デフォルトの名無しさん mailto:sage [2024/01/27(土) 17:06:20.98 ID:CH7ruCqI.net] >>434 今どき紙とか光学メディアなんか使うわけないだろ マニュアルと言ったらWEB上のオンラインマニュアルのことだよ
443 名前:デフォルトの名無しさん mailto:sage [2024/01/27(土) 18:28:22.44 ID:qMJDUKYO.net] リファレンスとマニュアルは別だぞ
444 名前:デフォルトの名無しさん mailto:sage [2024/01/27(土) 19:18:08.00 ID:KybuIZx4.net] 同じ意味合いで使うこともあるよ
445 名前:デフォルトの名無しさん mailto:sage [2024/01/27(土) 21:10:11.38 ID:tuLNWDY3.net] バカが混同してるだけ
446 名前:デフォルトの名無しさん [2024/01/27(土) 21:49:32.99 ID:kM+lvGOz.net] いやハゲが光ってるだけだろ
447 名前:デフォルトの名無しさん [2024/01/27(土) 22:06:36.73 ID:t7pPpNfJ.net] >>437 そんなの文脈次第だろw
448 名前:デフォルトの名無しさん mailto:sage [2024/01/28(日) 09:17:03.35 ID:0xzGzgK7.net] AutoFilterもしくはAdvancedFilterで行を抽出する 条件が2つまでしか指定できないので、3つ以上のときは条件を配列変数へ代入するというのがまずよく分からんが 条件にワイルドカードを指定するときは配列要素の3つ目以降は無視されるという制限を知らずに、1日ハマった
449 名前:デフォルトの名無しさん [2024/01/28(日) 09:25:58.21 ID:P/o+j6FX.net] Excel VBAの嫌なところはUTF-8のテキストファイルを扱うときだな UTF-8とは相性が最悪で入力して出力するときになぜか一部がどこかに消える
450 名前:デフォルトの名無しさん mailto:sage [2024/01/28(日) 14:12:49.59 ID:GlU8zkf4.net] >>429 iがintegerだとされたんじゃなくて、右辺がintegerだと判定されて、右辺の計算でオーバーフローしてる >>431 定数の値じゃなくて、定数の型できまるはず 結論はConstにもちゃんと型指定しろ、ってことだ ちなみに#は倍精度浮動小数点数らしいぞ >>432 ADOのバージョンは? 一部バージョンでライブラリがばぐってたはず
451 名前:デフォルトの名無しさん mailto:sage [2024/01/28(日) 15:58:37.92 ID:FpdhcBpS.net] >>428 やっぱりそうだよね?自分の周りでも64bitに置き換えてる企業ってほぼないので しかしここでは64bitが当たり前みたいだし、この手の質問を過去にもしたけどまともな回答得られたことないしで、自分の知らないところでは64bitが当たり前な業界もそれなりにあるのかな?と思ってしまった 64bit移行は取引先が多ければ多いほどハードルが高そう 世間一般的に32bitを切り捨てられるタイミングはいつ頃になるのかな 「xls」ですら切り捨てられない企業を見てると、そんなのは当分先になりそうなイメージ もしくはMSが完全互換を達成してくれるか
452 名前:426 [2024/01/28(日) 16:52:07.92 ID:v9jfp3rb.net] イロイロ、ありがとう さて、ま、念の為、何というか、 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 は、モチロン、駄目なプログラミング さて、いや。呟きです。 とにかく、ありがとう
453 名前:デフォルトの名無しさん mailto:sage [2024/01/28(日) 19:19:46.49 ID:oSgnhTDB.net] Doevents 入れないのか
454 名前:デフォルトの名無しさん mailto:sage [2024/01/28(日) 19:53:30.89 ID:PqCzO7aX.net] >>445 いわゆる大手企業だけど64bit導入済みだよ 元々アドイン禁止だから影響もほぼなし 一部VBAを多少手直ししたくらい
455 名前:デフォルトの名無しさん [2024/01/28(日) 19:54:43.44 ID:I0zbqNbd.net] Doevents 入れないのだ これでいいのだ バカボンのパパなのだ
456 名前:デフォルトの名無しさん [2024/01/28(日) 21:08:37.59 ID:v9jfp3rb.net] 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の値がドンドン更新表示され、面白いです。 面白いから、これで、良いのだぁぁぁぁぁぁ
457 名前:447 [2024/01/28(日) 21:15:24.83 ID:v9jfp3rb.net] >>450 自己スレ でも、DoEvents なくても xの値は表示されるな🤔 なくてもヨイのだ。 少しギコチナイ動きになる気がするが、 気のせいなら、気にしなくてヨイのだ。🥳
458 名前:デフォルトの名無しさん mailto:sage [2024/01/28(日) 21:19:00.87 ID:09VyNDQR.net] Excel VBAでDVDドライブをオープンさせることはできますか? 部署内のPC端末のDVDドライブを一斉にオープンさせるドッキリをしたいです
459 名前:デフォルトの名無しさん mailto:sage [2024/01/29(月) 05:09:16.17 ID:XzFB+619.net] >>444 型指定しないと、値によって型が決まる 32767以下の整数だと自動的にIntegerになる
460 名前:デフォルトの名無しさん mailto:sage [2024/01/29(月) 05:16:06.75 ID:XzFB+619.net] 業務アプリをVBAで書いてるとこがあってな 明治時代に創業してみんなも知ってる一部上場企業だよ 膨大な古いアプリを今さら改修とかできないから、なかなか64bitに移行できないんだよ
461 名前:デフォルトの名無しさん [2024/01/29(月) 05:53:44.09 ID:evC8W0zb.net] んー、? 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で解釈というか んー、まぁいいや。
462 名前:デフォルトの名無しさん [2024/01/29(月) 06:03:43.33 ID:evC8W0zb.net] 東証一部というか東京一部というか 東証プライムというか東京プライムというか とにかく、変な名前に変更するのは、反対 64bitにするのは、反対の反対の反対の…なのだ というか、東証一部なら名門だね。 というか、富士通とかNECとか東芝とかパナソニックとか 社内のは、まだ32ビットのエクセルなのかな❓ これらも、一部を除いて東証一部上場だな
463 名前:443 [2024/01/29(月) 06:14:49.65 ID:AKFLgh7s.net] ん、いろんな人による いろんなアドバイス、ありがとう i = 3840 * 3 * y + 3 * x でオーバーフローエラーになったら 今度は、 i = 3840 * 3 * y + 3 * x + 32768 - 32768 って、修正してみようかな❓ ゼッタイ、上手くいくハズだよね❓ でも、面倒だし、次回も3は3#にしゃおうかな by 姑息な対応するデバッグプログラマでした
464 名前:454 自作自演ぢゃありません。∵自己レビュー [2024/01/29(月) 08:04:04.78 ID:AKFLgh7s.net] >>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^)/
465 名前:455 [2024/01/29(月) 08:12:40.14 ID:AKFLgh7s.net] >>458 5min前の自分に返信してあげる その数式ないの定数 3とか3840とかの全て、全て、全部に Clng(3)とかClng(3840)に置き換えなさい。 神からお告げなのだ。ていうか、今実験してみた結果ぢゃ でも、&とか#の方が短くて見易い
466 名前:デフォルトの名無しさん mailto:sage [2024/01/29(月) 08:31:12.61 ID:yN7n5dLr.net] >>454 64bit問題生じて何年経ってると思ってるんだよ 流石に後手に回りすぎ
467 名前:デフォルトの名無しさん [2024/01/29(月) 10:01:16.80 ID:AKFLgh7s.net] VBAには、on error goto という、 エラーが発生しても、エラー発生の行でエラー発生せず 処理を続行させちゃう ウレピィー機能が存在がするようぢゃ、 i = 3*なんちゃらかんちゃら数式 ……🐌 BDATA(i) = 128 というコードで🐌の行でオバーフローエラーに なってももしかするとErrをトラップ💃 BDATA(i) = 128 を実行させれるコードも可能ぢゃ モチロン、配列BDATAの内容はメチャクチャだが 気にしなければ、これでヨシ(๑•̀ㅂ•́)و✧ だって、エラー発生しちゃったらやだろ😎 いや、それより、ドンドン64ビットのエクセルに 移行して、ドンドンバグを潰そう。 テーブルが壊れてバグ発生させても、キニシナイ ていうか、その方が、バグ対策のノウハウが バッチリになって株価急上昇の予感がしてきました。 東証プライムどんどん📈しろっう。 てか、そうだ今日は、平日だっけ? 株価をチェックしなければいけないので、では また今度だ