1 名前:デフォルトの名無しさん [2023/01/28(土) 12:12:12.41 ID:UjlIZ1Ov0.net] !extend:checked:vvvvv:1000:512 !extend:checked:vvvvv:1000:512 ↑同じ内容を3行貼り付けること ExcelのVBAに関する質問スレ コード書き込みや作成依頼もOK 次スレは>>980 が立てること 無理なら細かく安価指定 ※前スレ Excel VBA 質問スレ Part77 https://mevius.2ch.net/test/read.cgi/tech/1658009255/ Excel VBA 質問スレ Part78 https://mevius.2ch.net/test/read.cgi/tech/1667104996/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
461 名前:デフォルトの名無しさん [2023/06/08(木) 20:19:16.31 ID:zo01FRG40.net] >>454 私はそう言う事が初めての経験で全く何が何だかさっぱりわからなくて理解が出来ていません それを言うならば未経験の事はするな、引き受けるな、出来ると言うな という話になると思います それにOJTとはなんですか?
462 名前:デフォルトの名無しさん mailto:sage [2023/06/08(木) 20:20:21.37 ID:SX7QkWSs0.net] あなたが欲しい答えはこうでしょう。 誰々が断れと言ったので断ります。
463 名前:デフォルトの名無しさん [2023/06/08(木) 20:28:49.61 ID:zo01FRG40.net] 私は今まで働いてきて聞いた限りの話では 出来ない事を安請け負いするな、仕事だから みたいな話なのでこれからはやった事がない事は全て断ろうと思います
464 名前:デフォルトの名無しさん mailto:sage [2023/06/08(木) 20:33:09.84 ID:DSxTca6Td.net] >>452 セルラー通信だから勝手に変わってるだけで、 ID:Snmtqfef0とID:Wxh+dghv0みたいな丁寧な自演と比べちゃダメでしょw
465 名前:デフォルトの名無しさん mailto:sage [2023/06/08(木) 20:55:57.80 ID:Wxh+dghv0.net] >>458 日付が変わってるから ID が勝手にしろ変わるだけでそれを自演と言われちゃな やっぱ妄想がひどいわ(笑)
466 名前:デフォルトの名無しさん mailto:sage [2023/06/08(木) 21:21:22.44 ID:uYSjYq8B0.net] >>457 もし何もできないのであれば全ての仕事を断ればいい それで給料もらえるのかは知らんが
467 名前:デフォルトの名無しさん [2023/06/08(木) 21:30:46.15 ID:zo01FRG40.net] >>460 出来ない事やわからない事を出来るというな、とか引き受けるなとか言うなら 何にも引き受けられませんよー
468 名前:デフォルトの名無しさん mailto:sage [2023/06/08(木) 22:17:36.82 ID:uYSjYq8B0.net] >>461 俺はできる側だから関係ない
469 名前:デフォルトの名無しさん [2023/06/08(木) 23:03:31.49 ID:zo01FRG40.net] >>462 素敵🥹
470 名前:デフォルトの名無しさん mailto:sage [2023/06/09(金) 01:41:19.35 ID:HkCkkhjZ0.net] 出来るか出来ないか分からないときは調査費用見積もればいい 身内相手でも時間くれでいい 話通じないならもう無理でええやろ、次に行く
471 名前:デフォルトの名無しさん mailto:sage [2023/06/09(金) 07:51:36.36 ID:BdvP8KZKd.net] >>459 遠回しに言っても理解できないみたいだから丁寧に言うと、 > なかなか 俺のファルス発言で盛り上がってるじゃないか 匿名掲示板で自己顕示欲を発露させてるのがまずキモい それも誇れるどころかむしろ恥である読み間違いにおいてってところがまたキモい > コンピューターに英語で話しかけてるわけではなく、所詮 記号なんで覚えやすいファルスで頭の中は統されてるわ > > それに Falseって普通の文章や 会話で使ったことないし、フォルスを使わなくて困ったことないわ 誰も聞いてないのに間違いの言い訳始めるのがキモい 角行間に改行入れてるのがキモい 隙あらば自分語りがキモい それらを踏まえた上での托 要するに間違いそのものより精神性が気持ち悪い
472 名前:デフォルトの名無しさん [2023/06/09(金) 07:55:56.79 ID:kQpJ5obDd.net] やったとこがない仕事を勉強してやる事さえ否定的な考えの人たちが世の中には多いみたいなので やった事がない事は何もするべきではないのでは 私が色々聞いた話の理解では、例えば医療従事者は例えどんな些細なミスでも許されない、という様な話でした
473 名前:デフォルトの名無しさん mailto:sage [2023/06/09(金) 09:06:25.43 ID:uWjl3yo30.net] >>465 本当に全部しょうもない理由で他人をキモ呼ばわりしてるわけだ その偏狭な精神性がキモいわ NG 登録しとくから さよなら
474 名前:デフォルトの名無しさん mailto:sage [2023/06/09(金) 10:51:38.01 ID:2C/DXyS30.net] >>466 仕事しない会社員は会社辞めるしかないんじゃね
475 名前:デフォルトの名無しさん mailto:sage [2023/06/09(金) 11:22:56.72 ID:FJj7F9Bld.net] ワッチョイなしもありも雑談スレに成り下がってほんと不快だな どういう生き方したらこんなゴミみたいな人間出来るんだろ
476 名前:デフォルトの名無しさん mailto:sage [2023/06/09(金) 11:35:57.88 ID:YWd0CHVo0.net] 雑談専用スレ立てるとか言って何年経つんだよ?
477 名前:デフォルトの名無しさん mailto:sage [2023/06/09(金) 12:37:16.30 ID:V26uJVvA0.net] 雑談スレを作っても誰も使わないから無駄 ここの惨状を見てみ 【質問不可】Excel総合相談所スレの雑談・議論スレ5 https://mevius.5ch.net/test/read.cgi/bsoft/1624005735/
478 名前:デフォルトの名無しさん mailto:sage [2023/06/09(金) 14:23:04.85 ID:smTSxqoia.net] 簡単なユーザー定義型(2~3値を格納しておくだけの構造体)をtypeじゃなくクラスで作って、dictionaryオブジェクトのitemに9万個ぐらいインスタンスを紐付けたら、 コード終了時のオブジェクト解放にめちゃくちゃ時間がかかるようになった(数十秒) やっぱこういうときは配列にするしかないのかな?
479 名前:デフォルトの名無しさん mailto:sage [2023/06/09(金) 18:12:33.56 ID:V26uJVvA0.net] >>472 スピードを取るか保守性を取るか スピード優先ならクラスなんか作らずに単純な配列にする たった数十秒なら俺ならそのままにする
480 名前:デフォルトの名無しさん mailto:sage [2023/06/09(金) 20:25:26.92 ID:tjC4mlZIM.net] オブジェクトの開放だけで数十秒もかかるのか 俺もその手法を多用するから興味あるな 俺が扱うデータは一万から三万行程度だけどどのコードも一~二秒くらいで終わる
481 名前:デフォルトの名無しさん mailto:sage [2023/06/10(土) 13:37:17.92 ID:l4DrLtSE0.net] >>473-474 レスサンクス 言われてみると確かに時間かかりすぎてるし変だなと思ってよくよく確認したら、 まず、9万個のインスタンスを紐付けた辞書の他に、16万個のインスタンスを紐付けた辞書が作られてた 更に、プロパティの一つに別のユーザー定義型のインスタンスが格納されてた (コンストラクタあるしGetプロパティもSetで返ってたが見落としてた) そっちのクラスのデストラクタが書かれてなかったので記述したら、普通に一瞬で終了するようになった 色々と教訓になった、ありがとう
482 名前:デフォルトの名無しさん (ワッチョイ 1310-2rqm) mailto:sage [2023/06/11(日) 07:46:10.07 ID:UERnr49N0.net] MsgBoxがUserFormとシートの間に挟まって見えないの何だぜ
483 名前:デフォルトの名無しさん mailto:sage [2023/06/11(日) 08:13:28.91 ID:It7hCXAB0.net] よく調べてみ
484 名前:デフォルトの名無しさん mailto:sage [2023/06/11(日) 11:03:32.46 ID:P1jt4gwx0.net] あるあるじゃんか
485 名前:デフォルトの名無しさん mailto:sage [2023/06/12(月) 14:12:41.04 ID:SIXj/4hV0.net] >>475 デストラクタにどんな処理書いたら早くなったんだ? デストラクタに処理を追加して早くなるとは思えんのだが
486 名前:デフォルトの名無しさん (アウアウウー Sadd-nIed) mailto:sage [2023/06/12(月) 14:23:56.15 ID:14kLXnCoa.net] 使ってないインスタンスを随時終了させたってだけでしょ 意図しないオブジェクトがメモリ圧迫してたなら速くなって当然
487 名前:デフォルトの名無しさん mailto:sage [2023/06/12(月) 16:01:58.40 ID:SIXj/4hV0.net] >>480 随時なら、デストラクタに来るまでに解放するってことなんだが... デストラクタで解放されなかったメモリを解放したって話なら、循環参照してたぐらいしか思いつかんが それをデストラクタの段階で解放して処理が早くなるとは思えんが そもそもメモリ圧迫で速度低下したって話なら、もとの >コード終了時のオブジェクト解放にめちゃくちゃ時間がかかるようになった ってのが間違った前提だったって話になるんだが
488 名前:デフォルトの名無しさん mailto:sage [2023/06/12(月) 22:08:42.75 ID:14kLXnCoa.net] >>481 まぁ、デストラクタの記述でメモリが開放されることはないのはあなたの言う通りだね 文面を読むにClassTerminate記述のことじゃなくて 単に意図しないオブジェクトに対してNothingを設定したって意味だと思ってたけど違うのかな?
489 名前:デフォルトの名無しさん (ワッチョイ 8bf2-woSW) [2023/06/13(火) 18:54:34.11 ID:hIiZm8YL0.net] オブジェクト指向が理解できねぇ
490 名前:デフォルトの名無しさん (ラクッペペ MMeb-G3RK) mailto:sage [2023/06/13(火) 19:05:33.87 ID:MvlUmR8SM.net] 最初のOOP学習にVBAは相応しくない
491 名前:デフォルトの名無しさん (アウアウウー Sadd-nIed) mailto:sage [2023/06/14(水) 11:48:51.61 ID:eB6yauOia.net] 実際のところ、VBA使用者の中でオブジェクト指向まで 使えるようになる人の割合ってどの程度なんだろう? ただ配列が使えるようになるとかとは学習コストの次元が違うから相当少ないとは思うけど、 他言語やってた人ならオブジェクト指向は使えて当然だしなぁ。
492 名前:デフォルトの名無しさん (ワッチョイ c1ce-8sUu) mailto:sage [2023/06/14(水) 12:09:21.27 ID:qkXrOJy10.net] 哲学的な話になるけど 単なる事務仕事の自動化にオブジェクト指向の出番はほとんどない 使わないけど知識として覚えるだけならVBAは教材に向いてない
493 名前:デフォルトの名無しさん (アウアウウー Sadd-nIed) mailto:sage [2023/06/14(水) 12:15:21.92 ID:eB6yauOia.net] 使う使わないは一先ず横においておかないと話が噛み合わなくなる
494 名前:sage (ワッチョイ 8b10-mVGR) [2023/06/14(水) 15:15:49.61 ID:x/1GcB560.net] 半角アルファベットと記号の文字列があると仮定して 半角カタカナに変換して [0(ゼロ)]と[O(オー)]、「I(アイ)」と「l(エル)」と「1(イチ」 の違いをわかりやすく可視化する時 どう組まれてますか? 0O10l1I ⇒ ゼロ,オー,イチ,ゼロ,エル,イチ,アイ 全部パターン分けで組まないといけない感覚あり
495 名前:デフォルトの名無しさん (ラクッペペ MMeb-G3RK) mailto:sage [2023/06/14(水) 15:36:18.32 ID:ZQKJ3TXHM.net] ConsolasかCascadiaあたりでも使えばいいだろ
496 名前:sage (ワッチョイ 8b10-mVGR) [2023/06/14(水) 16:01:17.58 ID:x/1GcB560.net] そうですよね 「Consolasでいいじゃないですかw」という話をしていました(汗
497 名前:デフォルトの名無しさん (スプープ Sd73-iGu4) mailto:sage [2023/06/14(水) 20:22:58.59 ID:YJj23+3Vd.net] 継承もできない、まともなエラー処理もできない言語 そんなのでオブジェクト指向プログラミングなんて苦行をあえてする必要ない VBAでオブジェクト指向プログラミングすることが目的の奴だけがやるべき openPyXlとかxlwingsとか使ってpython使うのが正解
498 名前:デフォルトの名無しさん (オイコラミネオ MM8b-woSW) [2023/06/14(水) 21:29:42.81 ID:Lrgg+dc1M.net] じゃあそもそもVBAのクラスモジュールは何の為にあるんだよ
499 名前:デフォルトの名無しさん (ラクッペペ MMeb-blrJ) mailto:sage [2023/06/14(水) 21:43:21.66 ID:dRDCUjtWM.net] ちょっとだけ 便利にするためでしょ
500 名前:デフォルトの名無しさん (スフッ Sd33-V2/r) mailto:sage [2023/06/14(水) 22:16:22.00 ID:zeSklkWgd.net] >>492 自作イベント用かな
501 名前:デフォルトの名無しさん (スップ Sd33-B0Ts) mailto:sage [2023/06/14(水) 22:46:01.86 ID:bBSkkOmsd.net] 関数自作するときとか場所分けたいじゃん
502 名前:デフォルトの名無しさん (ワッチョイ 1310-4HgM) mailto:sage [2023/06/15(木) 01:14:11.47 ID:K9b5PX+v0.net] UIAUTOMATIONでWindowsアプリを操っていたら、突然アプリが落ちた! さあ、エクセルとアプリ、悪いのはどっち?
503 名前:デフォルトの名無しさん (アウアウウー Sadd-nIed) mailto:sage [2023/06/15(木) 01:24:53.94 ID:mmfDb7UAa.net] クラスモジュール、普通に便利だけどね 特に再利用と拡張が楽なのがいい そういえば継承をVBAで使いたいと思ったことないな 合成、オーバーライド、インターフェースあたりは使えればいいなとおもうけど でもそんなのよりパラメータ付コンストラクタを普通に使えない、とかのほうが俺的には余程ストレスだな
504 名前:475 (ワッチョイ 13e3-atBl) mailto:sage [2023/06/15(木) 09:33:06.27 ID:6h46zCNd0.net] >>479 Class_TerminateにSet xxx=Nothingを書いた 諸々の処理が「終わってから」なかなか終了しなくなったんで、たぶんどこかで循環参照になってたか、カウンタがゼロにならないとかでオブジェクトへの参照がまだ残ってる判定になってたんだと思った でも、今同じように戻しても再現しなくなってしまったが、コードを変えた直後の最初の一回だけ終了にやたら時間がかかるケースが出てきた (「コンパイル」を実行して保存しても最初の一回だけ遅くなる) クラスが7つもあってごちゃごちゃしてるから、その辺から整理しないと本当は何が悪かったのかまで今はまだわからん
505 名前:デフォルトの名無しさん (ワッチョイ 7b19-ydOm) [2023/06/15(木) 12:32:47.10 ID:RQPtceb60.net] >>497 オーバーロード、オーバーライドは使えないけど インターフェースは使えるよ。 パラメータ付きコンストラクタは使えないけど その辺拘るならCallByNameやAPIのコールバックで 何とか汁。
506 名前:デフォルトの名無しさん (ワッチョイ 716e-8sUu) mailto:sage [2023/06/15(木) 14:36:06.97 ID:G8DPzqW/0.net] 自動でインデント調整を行う方法があれば教えてください。 今まではSmart Indenterを使用。windows10、エクセル2010 windows11、エクセル2021にしてからは使えなくなってしまいました。下記を参考にインストールしましたが出来ず。 tradememo.techblog.jp/archives/73543570.html
507 名前:デフォルトの名無しさん (ワッチョイ 132f-APG/) mailto:sage [2023/06/15(木) 22:40:10.51 ID:Gxu/hKh00.net] >>498 そのxxxはどこで定義された変数で、何が入っていたんだ? つかほんとに単にメモリ不足で速度低下してるだけの気がしてきたな
508 名前:デフォルトの名無しさん (ワッチョイ 132c-mVGR) mailto:sage [2023/06/16(金) 11:57:31.84 ID:CbHDsKK60.net] 人名がずらずらと並んでいるプルダウンをチェックボックス形式にする。 一人だけ選択ならそのままセルに入力され、複数人選んだら一人目の頭に? 半角スペースが空いて二人目の頭に?と自動でついて入力されたらとても嬉しいのですが、 どういうコードが考えられるか悩んでおります。
509 名前:デフォルトの名無しさん (ワッチョイ 1342-RZnJ) mailto:sage [2023/06/16(金) 19:46:08.99 ID:lOpXO/WO0.net] 条件付き書式でいいんじゃね
510 名前:デフォルトの名無しさん (アウアウウー Sadd-wxnb) [2023/06/16(金) 20:08:57.82 ID:ZRdkd62Ia.net] ○の中の番号って20まで?
511 名前:デフォルトの名無しさん (ワッチョイ 01da-8sUu) mailto:sage [2023/06/16(金) 20:30:31.09 ID:vL8BmY/W0.net] 21~50までは、「挿入」-「記号と特殊文字」で出て来るダイアログから選べば可 51以上は丸文字をWordの機能を使って入れる形式 ← 面倒臭い
512 名前:デフォルトの名無しさん (ワッチョイ 368c-0LQ2) [2023/06/17(土) 00:19:14.62 ID:BthtTHXs0.net] (2) 括弧でええやん
513 名前:デフォルトの名無しさん (ワッチョイ 922c-Kp8H) mailto:sage [2023/06/17(土) 00:36:25.59 ID:zHsFmXG00.net] 使うとしたらせいぜい?までです。 色々ご回答ありがとうございます。
514 名前:デフォルトの名無しさん (スッップ Sdb2-C6j3) mailto:sage [2023/06/17(土) 10:20:45.20 ID:UdtQ6Un6d.net] 丸数字を配列にしておくなり文字列にしておくなりして 人数の位置から配列や文字をMIDなりで取得して編集すればいいんじゃね
515 名前:デフォルトの名無しさん (ワッチョイ 0dce-L1I+) mailto:sage [2023/06/18(日) 01:03:31.39 ID:waH1MHTH0.net] 文字コード11553が① 文字コード11554が② つまり =сhar(11552+A1) で丸付き数字に変換できる
516 名前:デフォルトの名無しさん (ワッチョイ d98e-kLz7) [2023/06/18(日) 02:43:33.18 ID:LkDYlGEI0.net] >>502 こんなことで悩むようなら止めとけ
517 名前:デフォルトの名無しさん (ワッチョイ 1210-QKVe) mailto:sage [2023/06/18(日) 03:31:13.66 ID:39flxc5b0.net] >>506 俺も諦めてそうしたことあるわ。 スターどっきり(秘)報告とかさ。
518 名前:デフォルトの名無しさん (ワッチョイ 0dce-L1I+) mailto:sage [2023/06/18(日) 04:18:49.74 ID:waH1MHTH0.net] ㊙
519 名前:デフォルトの名無しさん (ワッチョイ f29d-qfRM) mailto:sage [2023/06/18(日) 06:42:10.69 ID:n7dHmRLe0.net] >>502 ここまで目的が、決まってるなら ビーイングに聞いたら教えてくれそうな気がする 騙されたと思ってやってみ 完全ではないにしろかなり正しい流れはわかる
520 名前:デフォルトの名無しさん (ワッチョイ ad10-LXfx) mailto:sage [2023/06/18(日) 11:00:24.16 ID:8nJec8eo0.net] ⚠
521 名前:デフォルトの名無しさん (ワッチョイ f29d-qfRM) mailto:sage [2023/06/18(日) 11:19:52.82 ID:n7dHmRLe0.net] >>502 513 だけど ビーングに聞いてみたよ 回答結果 貼っておくね 正しいかどうかは自分で判断してね そのような処理を実現するために、次のようなコードが考えられます。 ```vb Sub CheckBoxToCell() Dim i As Integer Dim count As Integer Dim result As String count = 0 For i = 1 To 10 ' チェックボックスの数だけ繰り返す If ActiveSheet.CheckBoxes(i).Value = 1 Then ' チェックされている場合 count = count + 1 If count = 1 Then ' 最初の選択肢の場合 result = ActiveSheet.CheckBoxes(i).Caption Else ' 2つ目以降の選択肢の場合 result = result & " " & ChrW(9311 + count - 1) & ActiveSheet.CheckBoxes(i).Caption End If End If Next i Range("A1").Value = result ' 結果をセルに入力する End Sub ``` このコードは、10個のチェックボックスがあると仮定しています。チェックボックスの数に応じて、`For i = 1 To 10` の部分を変更してください。また、結果が入力されるセルは `Range("A1")` になっていますが、必要に応じて変更してください。
522 名前:デフォルトの名無しさん (スッップ Sdb2-C6j3) mailto:sage [2023/06/18(日) 13:02:31.47 ID:9itfWllid.net] 複数選択時に一人目に丸数字つかなくね?
523 名前:デフォルトの名無しさん (ワッチョイ 922f-9XmN) mailto:sage [2023/06/18(日) 23:32:00.05 ID:q4GYYJOx0.net] >>515 それ、コメントも勝手に入れてくれてるの? どんな内容で聞いたのか気になるが、結構使えるかもしれんな
524 名前:デフォルトの名無しさん (ワッチョイ f29d-qfRM) mailto:sage [2023/06/19(月) 00:19:50.80 ID:13bx54hA0.net] >>517 502の本文をそのまま貼り付けただけだよ コメントもつけてくれる 意外とやるよね 特に メソッドとかプロパティとかを忘れた時に非常に 便利
525 名前:デフォルトの名無しさん (ワッチョイ ad10-LXfx) mailto:sage [2023/06/19(月) 19:05:37.62 ID:gTQbq+Nl0.net] 意外とAIの書いたコード見た目は良くね?? まあ正しいかは分からんが。
526 名前:デフォルトの名無しさん (ワッチョイ 0dce-L1I+) mailto:sage [2023/06/19(月) 21:15:03.13 ID:DAevJAQS0.net] AIは、ちょっと複雑なコードを要求すると、実在しない理想の関数とか持ち出してくる その関数はどこにあるか聞くと自分で作れと言われる そこの部分が一番知りたかったのに 半月ぐらい前に経験した実話よ
527 名前:デフォルトの名無しさん (ワッチョイ a932-C6j3) mailto:sage [2023/06/19(月) 21:51:52.81 ID:yUJv3dIE0.net] ガンダーラを探しているみたいだな
528 名前:デフォルトの名無しさん (ワッチョイ d910-wsVZ) mailto:sage [2023/06/20(火) 01:05:06.73 ID:4BKdA8B40.net] Gandhara, Gandhara From the United Kingdom I'm looking for heaven I'm going to California だったか
529 名前:デフォルトの名無しさん (ワッチョイ f29d-qfRM) mailto:sage [2023/06/20(火) 02:18:29.21 ID:A7irJ18X0.net] >>520 その関数の機能は AI の方から説明があると思うので それをそのまま AI に聞いて 関数を作ってもらうことはできないの? 完璧なコードでなくても大きなロジック が分かるだけでもすごく時間 節約になると思うけど
530 名前:デフォルトの名無しさん (ワッチョイ 856e-L1I+) mailto:sage [2023/06/21(水) 17:43:20.54 ID:9nDnexAe0.net] ActiveXコントロールのイベントは、コントロールが配置されたシートのVBAコードモジュールに記述しないとダメなの?
531 名前:デフォルトの名無しさん (ワッチョイ f29d-qfRM) mailto:sage [2023/06/21(水) 19:26:57.32 ID:7CHaMvnk0.net] >>524 そのイベント内のコードからcall関数で一般のプロシージャを呼び出せばいい
532 名前:デフォルトの名無しさん (ワッチョイ a510-bte+) mailto:sage [2023/06/24(土) 10:49:09.24 ID:FqfK6b2x0.net] ビットマップファイルを読み込んで画素を1px x 1pxに幅設定したセルの背景色として割り当てて、 シート状にビットマップ画像を表示するプログラムを作りました。 うまくいくときはうまくいくのですが、ときどき、 「セルの書式が多すぎるため、書式を追加できません」 とエラーが出て処理が止まります。 chatGPTに効いたらActiveworksheet.Stylesを削除すればいいと言われたので、 For k = ActiveWorkbook.Styles.Count To 1 Step -1 If InStr("Hyperlink,Normal,Followed Hyperlink", ActiveWorkbook.Styles(k).Name) Then 'pass Else Debug.Print ActiveWorkbook.Styles(k).Name ActiveWorkbook.Styles(k).Delete End If Next k こういう処理をループにかませてスタイルを削除させていたのですが、うまくいきません。 端的にいうと、スタイルがそんな増殖しているわけでもないみたいです。47個ぐらいにしかなりません。 もっと別の理由で「セルの書式が多すぎるため、書式を追加できません」と出るようなのですが、他にどういう理由で このエラーが発生する可能性がありますか。
533 名前:デフォルトの名無しさん (ワッチョイ ddce-OfpS) mailto:sage [2023/06/24(土) 14:45:58.27 ID:TJX+Ujua0.net] >>526 Interior.Colorを設定した時に内部的に自動で追加されるスタイルは、実はStyles().Deleteでは消せない これをマクロから消す方法はなくて、ワークシート全体の書式をクリアしてからExcelを再起動するしかない あと、Google検索で解決できない質問は、ChatGPTに聞いても無駄だよ 同じブログや質問サイトから答えを拾ってきてるだけだから
534 名前:デフォルトの名無しさん (ワッチョイ ddce-OfpS) mailto:sage [2023/06/24(土) 14:58:19.61 ID:TJX+Ujua0.net] >>526 画像を続けて何枚も表示したいときは、もう一つ解決方法があって、画像を15bitパレットに減色すれば(ほぼ)エラーが出なくなる 15bitパレットにする一番簡単な方法は、RGBそれぞれの下位3bitをすべて100(2)などに固定する ただし微妙な階調は表現できなくなる
535 名前:デフォルトの名無しさん (スプッッ Sd43-PAG3) mailto:sage [2023/06/24(土) 16:14:25.27 ID:zDQnymy5d.net] ドンピシャな回答ありがとうございます やはりstyles().deleteで削除できないスタイルなんですね。 RGB関数を使って背景色割り当てていたので、組み合わせが膨大になって書式の限界値超えてしまうことが原因ってことで、色調をもっと荒くしてみます。 実際問題画像の綺麗さは二の次でして、AIの学習をエクセルでやるためにビットマップデータを読み込ませて誤差逆伝播法やるのが本筋で 画像表示はデモンストレーションです。 流石に何万枚も画像データの読み込みは無理ですが、ある程度の精度が出るくらいはエクセルでも処理できるのではないかという目算です。
536 名前:デフォルトの名無しさん (アウアウウー Sa69-waoq) [2023/06/26(月) 14:01:44.74 ID:+fVe3jTma.net] Worksheetfunctionで配列数式を入れたいのですがそういうコマンドってありますか? forで代用するしかないのでしょうか?
537 名前:デフォルトの名無しさん (ワッチョイ 2da5-wYA+) mailto:sage [2023/06/26(月) 14:40:01.51 ID:tFrwHTpK0.net] 今月(2023/6)に入ってから、今まで問題なく使用できていたマクロの処理時間が異常に長くなる現象が発生しています。 処理を一つ一つ試していくとCopyメソッドに特に時間がかかっているようです。 実験として以下のコードを作成してみました。 Sub CopyTest1() Dim i As Long, maxRow As Long Dim STime As Double, ETime As Double STime = Timer Application.ScreenUpdating = False maxRow = Cells(Rows.Count, 5).End(xlUp).Row For i = 1 To Cells("A1") Cells(2, 1).Copy Cells(2, 2).PasteSpecial Cells(2, 3).Copy Cells(2, 2).PasteSpecial Next i Application.ScreenUpdating = True ETime = Timer Cells(1, 2) = ETime - STime Cells(maxRow + 1, 5) = ETime - STime End Sub A1セルの値が5の状態で10回実行し、E列に書き出された処理時間(秒)は以下の通りでした。 {14.82, 2.00, 5.67, 14.82, 2.00, 14.82, 14.82, 14.82, 14.83, 14.83} また、ペーストを行わず、コピーだけをForで繰り返した結果は {14.83, 14.82, 14.83, 14.82, 3.84, 14.81, 7.50, 1.99, 13.01, 14.83} コピーを1回行った後、Forでペーストを10回行うようにした結果は {0.05, 0.05, 0.03, 0.04, 0.05, 0.04, 0.04, 0.04, 0.04, 0.05} 問題が発生しているのはExcel2021を使用しているPCのみで、同じネットワーク内のExcel2019を使用しているPCでは処理速度の低下は確認できませんでした。 セルの書式をコピーしたい場面が多いので配列を使用するのも難しいです。何か処理時間を短縮させる方法はあるでしょうか。
538 名前:デフォルトの名無しさん (ワッチョイ cbda-F8yx) mailto:sage [2023/06/27(火) 10:56:02.66 ID:HcS+dZLb0.net] Excel2019で低下しないならExcel2019使えば解決だな
539 名前:デフォルトの名無しさん (ワッチョイ 2da5-wYA+) mailto:sage [2023/06/27(火) 11:10:53.92 ID:79VdYiQe0.net] >>532 社内で使用しているOfficeはH&Bの買い切りで、2019は一部の部長や専務クラスのPCにのみ残っています。 なのでおいそれと「マクロ使いたいのでPCを使わせてください」と言うのも憚られます。 サブスクリプションでない場合でも過去のバージョンをインストールすることが可能でしょうか。 もしくは、過去バージョンの互換モードのようなものはあるのでしょうか。
540 名前:デフォルトの名無しさん (ワッチョイ cbda-F8yx) mailto:sage [2023/06/27(火) 11:50:49.43 ID:HcS+dZLb0.net] >>533 同じマクロを別のPCで動作させて処理時間に差が出た場合、PC本体の性能の違いなのか インストールされているソフトの違いなのかを切り分ける場合どんなテストが必要だと考えてますか?
541 名前:デフォルトの名無しさん (ワッチョイ 2da5-aaG3) mailto:sage [2023/06/27(火) 12:12:37.25 ID:79VdYiQe0.net] >>534 処理の早いExcel2019のPC CPU:Intel Core i3 8100 RAM:4.00GB 処理の遅いExcel2021のPC CPU:Intel Core i5 12400 RAM:8.00GB となっています 個体差や処理との相性などがあるのかはわかりませんが、性能の高低による変化である可能性は低いと考えています。 先月くらいまではどのPCでも使えていたマクロが全く同じコードで低速化した点、 Excel2019のPCで>>531 のテストを行うといずれも1秒以内で終了する点 などもそう考える根拠の一つです
542 名前:デフォルトの名無しさん (ワッチョイ cbda-F8yx) mailto:sage [2023/06/27(火) 12:33:43.57 ID:HcS+dZLb0.net] >>535 先月まで早かった処理で、Excelのバージョンが 2019→2021 に変わったら遅くなったということなら Excelのバージョンの可能性はある それ以外の違いに見落としがないなら
543 名前:デフォルトの名無しさん (ワッチョイ 2da5-aaG3) mailto:sage [2023/06/27(火) 12:49:59.40 ID:79VdYiQe0.net] >>356 先月まではExcel2021のPCでもコピーが遅くなる現象はありませんでした。 具体的な発生のタイミングは分かりませんが、今月頭か月中かのビルドアップデートも原因の一つではないかとも考えています。 Excelのバージョンが原因である場合、どういった対応が考えられるでしょうか?
544 名前:デフォルトの名無しさん (ワッチョイ cbda-F8yx) mailto:sage [2023/06/27(火) 13:13:57.43 ID:HcS+dZLb0.net] >>537 先月まで遅くなかったのなら関係ないと思うが 昔なら扱えるデータ(最終行)が違ったり、省略した引数の初期値が違っているとか 使うメモリ量も変わってくる ネットワークの速度、セキュリティーソフト、ストレージの速度、空き領域、OS側なんかも影響出る可能性はある あと画面の更新しか止めてないのも中途半端だし
545 名前:デフォルトの名無しさん (ワッチョイ 232f-6eWA) mailto:sage [2023/06/27(火) 13:48:41.94 ID:rDSyXQnX0.net] アップデートをアンインストールして試せよ
546 名前:デフォルトの名無しさん (ワッチョイ 03bd-waoq) [2023/06/27(火) 13:54:20.09 ID:P3UB99BO0.net] 昔自分が経験した備忘録だけど、IMEのよくわからんバグでofficeアップデートした際に極端に動作遅くなったことはあった 旧verのIMEにしたら治ったけど根治には至らなかった
547 名前:デフォルトの名無しさん (ワッチョイ 2da5-wYA+) mailto:sage [2023/06/27(火) 15:25:29.19 ID:79VdYiQe0.net] 低速化が発生していなかったビルド16327.20248に戻して実行してみましたが、コピー10回にかかる時間は大きく変化しませんでした。 試すのに時間がかかったのは、Officeの導入などが社外への委託となっていてプロダクトキー等がすぐに確認できない状況であったためです。 次は>>540 のお話を参考にIMEのバージョンを試してみようと思います。
548 名前:デフォルトの名無しさん (ワッチョイ 2da5-wYA+) mailto:sage [2023/06/27(火) 16:31:16.55 ID:79VdYiQe0.net] とりあえず場当たり的というか、根本的でない方法での解決ができたように思うので報告します。 まずIMEのバージョンでは処理速度の変化は見られませんでした。 PasteSpecialでなくCopyに時間がかかっているという状況から、クリップボードが関係していると推測しました。 クリップボードの初期化やCutCopyModeをFalseにするなど試してみましたが変化はありませんでした。 その後いろいろ調べてみたところ、某解説サイトの「クリップボードを使わないセルのコピー」というページでValueに引数を入れられることを知りました。 >>531 のマクロを以下のように変更したところ、期待する処理内容で0.05秒程度までの短縮ができました。 Sub CopyTest1() Dim i As Long, maxRow As Long Dim STime As Double, ETime As Double STime = Timer Application.ScreenUpdating = False maxRow = Cells(Rows.Count, 5).End(xlUp).Row For i = 1 To Cells(1, 1) Cells(2, 2).Value(xlRangeValueXMLSpreadsheet) = Cells(2, 1).Value(xlRangeValueXMLSpreadsheet) Cells(2, 2).Value(xlRangeValueXMLSpreadsheet) = Cells(2, 3).Value(xlRangeValueXMLSpreadsheet) Next i Application.ScreenUpdating = True ETime = Timer Cells(1, 2) = ETime - STime Cells(maxRow + 1, 5) = ETime - STime End Sub お返事いただいた方々に感謝いたします。
549 名前:デフォルトの名無しさん (ワッチョイ 639d-jvQs) mailto:sage [2023/06/27(火) 18:09:44.31 ID:mMTtkkH30.net] まあ最新のものにしたらろくなことがないの見本みたいな話だな。わしなんか2013なんで速いこと速いこと。絶対アプデせんからな。
550 名前:デフォルトの名無しさん (ササクッテロラ Sp81-x21g) [2023/06/29(木) 11:52:40.63 ID:3tm6uAsep.net] リクナビnext 求人キーワード検索ヒット数の比較 Java 5300 SQL 2970 Python 2400 RPA 1800 VBA 238 ググれば簡単に出てくるVBA 採用側からしたらスキル扱いされてない現実 残念ながら VBAでプログラム書けますって Excel使えます程度
551 名前:デフォルトの名無しさん (ワッチョイ 639d-jvQs) mailto:sage [2023/06/29(木) 12:17:55.56 ID:lAWWyS/I0.net] >>544 それだけ VBA が普及しているということ 日本語喋れますねというくらいに 基本的なスペック お前ら VBA 使えないと 人間扱いされないぞ
552 名前:デフォルトの名無しさん (スププ Sd43-2HPs) [2023/06/29(木) 12:21:45.26 ID:u0QQbW4Md.net] VBA使うと脳が退化する マジで勘弁
553 名前:デフォルトの名無しさん (ササクッテロラ Sp81-x21g) [2023/06/29(木) 12:30:46.05 ID:3tm6uAsep.net] >>545 もちろん、ココで丁寧に教えてる方は素晴らしいと思う ただVBAだけでは武器にならないのは、 転職サイトの検索数が物語ってる 企業が欲しいのは、 時代の流れに柔軟に対応出来る人材
554 名前:デフォルトの名無しさん (ワッチョイ 639d-jvQs) mailto:sage [2023/06/29(木) 12:31:43.21 ID:lAWWyS/I0.net] >>546 VBA で頭が退化するならそんなポンコツ 脳は捨ててしまえ
555 名前:デフォルトの名無しさん (ワッチョイ 639d-jvQs) mailto:sage [2023/06/29(木) 12:43:21.04 ID:lAWWyS/I0.net] >>547 日本語喋れるだけでは武器にならないなと同じだな でも VBA ができないと転職先でプロ 扱いされないぞ ユーザーさん「ちょっと さ、こういうことできる マクロ 作ってくんない」 プログラマー「僕 Java の専門家 なんで VBA はわからないんです」 ユーザーさん「VBA じゃなくてマクロ だよ、 マクロ」 プログラマー「マクロ と VBA は同じなんですけど」 ユーザーさん「なんだよ エクセルも使えないのか 何で質問はこんなポンコツ やっとったんだよ」 ご愁傷様です
556 名前:デフォルトの名無しさん (ワッチョイ 639d-jvQs) mailto:sage [2023/06/29(木) 12:43:55.74 ID:lAWWyS/I0.net] 質問→システム部門
557 名前:デフォルトの名無しさん (ササクッテロラ Sp81-x21g) [2023/06/29(木) 12:46:51.78 ID:3tm6uAsep.net] >>549 おれはVBAを批判してる訳じゃない 実際、おれもVBAばかり使ってきた ただ、おれが言いたいのは、 GoogleやYouTube、チャットGPTで幾らでも調べられる時代 VBA程度では前みたいに重宝されなくなったんだよ 他人と差をつけて貴重な人材になるためには VBAに拘りすぎてたら手遅れになるってこと 転職サイトのキーワード検索数が全てを物語ってる この業界はものすごい勢いで進化してる ずっと竹槍で鍛えてても、 弓矢や鉄砲には勝てないのと一緒
558 名前:デフォルトの名無しさん (ワッチョイ 9d49-F8yx) mailto:sage [2023/06/29(木) 12:56:11.73 ID:Gia+1urj0.net] 549は竹槍しか扱え(わ)ない滅びゆく企業にしがみつけてることで悦に入ってるんだから、 そっとしておいてやれよ 猿が竹槍はつかえても鉄砲を認識できないようなもんだろ
559 名前:デフォルトの名無しさん (ササクッテロラ Sp81-x21g) [2023/06/29(木) 12:56:12.68 ID:3tm6uAsep.net] ここは質問スレで VBAを丁寧に答えてる方に失礼になるから おれは消えるけど おまえら 時代の流れに柔軟に対応するんだぞ 何が出来るようになれば希少価値高い人材になるか 高年収GET出来るか いつも考えるんだぞ じゃあバイトに戻るわw
560 名前:デフォルトの名無しさん (ワッチョイ 639d-jvQs) mailto:sage [2023/06/29(木) 13:20:07.46 ID:lAWWyS/I0.net] >>552 システム部門が全て解決してくれるという 幻想にしがみついてる○○
561 名前:デフォルトの名無しさん (ワッチョイ 2342-G+aT) mailto:sage [2023/06/29(木) 18:27:43.98 ID:SAm7WP5H0.net] 他に替えがきかないような貴重な人材なんてごく一握りだから そんな恐れ多いことを考えるより自分ができることを考えりゃいいんだよ