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
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] 他に替えがきかないような貴重な人材なんてごく一握りだから そんな恐れ多いことを考えるより自分ができることを考えりゃいいんだよ
562 名前:デフォルトの名無しさん (アウアウウー Sa69-rAl0) mailto:sage [2023/06/30(金) 12:39:10.95 ID:n+Odt7Dva.net] AIや時代の流れでVBAがなくなる時代なんて全然来そうにないんだけど本当にくるの? ChatGPTに聞きまくって便利だけど複雑な処理はまだまだだと使うほど思うし 今更VBAどころかそもそも扱える人がほとんどいない 大手自動車グループに出向したときもそう 猿でも出来る、AIが全部やるようになる ってネットで言う割にやれてもマクロの記録レベルの人 情シスなんて社内システムにかかりきりで他部署の依頼だったり共有するVBAなんて作る気もない と外資系に勤務している俺は思うわけですが
563 名前:デフォルトの名無しさん (ワッチョイ 9b19-GWUh) [2023/06/30(金) 12:44:04.18 ID:b3LF+rqB0.net] まぁ VBAは他のObject指向言語やったことあるかないかで 組み方に雲泥の差が出るのは認める
564 名前:デフォルトの名無しさん (アウアウウー Sa69-rAl0) mailto:sage [2023/06/30(金) 18:21:19.19 ID:n+Odt7Dva.net] 5ちゃんでExcel触るどころか働いたことない様な奴が今時VBAなんて時代遅れとかAIで全自動化出来るだの今時エクセルなんて使ってる企業、とかただ脳死レスをするけどさ Excel使わない企業をかつて見たことないんだけど ゴリゴリの外資系でもそうだしトヨタ系でもそう じゃあそういうニート連中は何を想像して書き込んでるんだ?
565 名前:デフォルトの名無しさん (アウアウウー Sa69-rAl0) mailto:sage [2023/06/30(金) 18:28:52.62 ID:n+Odt7Dva.net] ・何でもVBAでやろうとするのは時代遅れ、これは間違いない ・VBAいじれる人ってどこの会社、部者でも本当に少ない ・その人がいなくなると死ぬマクロも多いのも事実 ・ChatGPTは本当に凄い、かなりお世話になるレベルで凄い、このスレの回答者なんてもっと凄い ここで質問に答えてる人達に聞きたい おたくらレベルの猛者って職場にゴロゴロいないでしょ?Excel、officeが無くなる気配ないでしょ?どのPCにも気軽に配布出来てこれがなくなる時代は俺の定年までくる気配ないんだが
566 名前:デフォルトの名無しさん (アウアウウー Sa69-rAl0) mailto:sage [2023/06/30(金) 18:34:54.75 ID:n+Odt7Dva.net] このスレの質問に答えてるレベルの人さ、 教えてくれよ 「俺のマクロの知識なんて職場の人達に到底敵わんよ」 なんて人はいないだろ、おたくの勤務先でも作る、メンテする、の中枢ポジだろ? 転職活動の時にVBA出来ますアピールなんて価値はないけど、異動や転職時に使える超汎用スキルだと思うんよ 車がハイテク化していく社会での自転車のような立ち位置だとネットで見た 自転車がなくなる近い未来は見えないでしょ?
567 名前:デフォルトの名無しさん (アウアウウー Sa69-rAl0) mailto:sage [2023/06/30(金) 18:47:16.59 ID:n+Odt7Dva.net] 職場で一千万とか二千万とかする解析や測定する設備を導入してるけどまぁ優れた解析ソフトが付随してるのよ でも社内や社外に展開する時はExcelデータを欲しがるから結局ソフトからcsvかtxtでデータを吐き出すわけよ 閲覧出来る拡張子じゃないのととにかくExcelで欲しいと言われるから 繰り返し自動判定で学習させてく設備は担当者がpython使ってる けど毎回、臨機応変に解析や測定する設備ほどVBAの方が手軽でかゆい所に手が届くんよ ミツトヨや東京精密、島津とか設備メーカーの担当者と話しても高機能設備はマクロ組めるのが一番相性がいいと言ってる VBAが化石化してAIが全てやる近い未来なんて俺には全く見えないんよ ここの玄人ほどそう思ってるでしょ? そういう人がまた別の高位の言語を学んでるのは正しいと思う訳よ
568 名前:デフォルトの名無しさん (アウアウウー Sa69-rAl0) mailto:sage [2023/06/30(金) 18:55:06.20 ID:n+Odt7Dva.net] 長文を全部読んでくれとは言わん ここで質問に対して答えてるレベルの玄人に告ぐ 少なくともおたくらが定年まではVBAの需要がなくなることはない AIがそれを減らすのは間違いないけど おたくらは定年までは職場でVBAの頼まれ事をしたりこのスレで答えを提示する運命から逃れられん ざまーみろ さよなら
569 名前:デフォルトの名無しさん (ラクッペペ MM4b-jvQs) mailto:sage [2023/06/30(金) 19:02:52.90 ID:qk+XzPB+M.net] >>562 あんたはわかってると思うけどAIをつかってVBAのコードを組めるのはVBAを熟知してる人だけ VBAを熟知してないとAIのコードがうまく行かないときどこを直したらいあかわからん AIと全ての言語は補完的。
570 名前:デフォルトの名無しさん (ワッチョイ 853a-EChz) mailto:sage [2023/06/30(金) 19:30:03.19 ID:QBuEWSMw0.net] ここのオマイラよりChatGPDの方が役に立つのは変わらんよ
571 名前:デフォルトの名無しさん (ラクッペペ MM4b-jvQs) mailto:sage [2023/06/30(金) 19:40:11.44 ID:qk+XzPB+M.net] >>564 あんたはなんでここにいるの
572 名前:デフォルトの名無しさん (ワッチョイ 9dda-OfpS) mailto:sage [2023/06/30(金) 20:18:04.05 ID:ExkK5Q1b0.net] ChatGDPとかもググれば出て来るな いろんなバージョンあるんだな ChatGDP、ChatGPD、ChatGDT ねーよ 脳内に Option Explicit 付けろよ プログラムする人間で文字打ち間違いする奴は信用に値しない そのシステムは動かないから 平文でお遊びやギャグ、ふつうにタイポ 以外で、肝心な所をスペルミスする奴はお里が知れる
573 名前:デフォルトの名無しさん (アウアウウー Sa69-rAl0) mailto:sage [2023/06/30(金) 20:19:04.76 ID:ST5Xi1//a.net] さよならと見せかけで再登場 >>563 そこのおめーさんよ 俺にレスしたのも何かの縁だと思って俺の長文のレス全部読んでくれよ そして俺が頓珍漢な事言ってたら指摘してくれよ そんなゴミにレスするような無意味な事すんな ChatGPTを使えば使うほど凄さと便利さを感じるけどまだAIが完全に理解して自動化するまでの遠さも同時に感じるわけよ 説明の仕方が下手とかそういうんじゃないわけよ 脱Excel、脱officeをしてる日本と関わりのある有名な企業やグループがあるなら教えてくれよ お前俺から絶対逃げるなよ
574 名前:デフォルトの名無しさん (アウアウウー Sa69-rAl0) mailto:sage [2023/06/30(金) 20:22:37.95 ID:ST5Xi1//a.net] >>566 そこの玄人臭のするおめーさんも俺の全文を読んだ上で俺をボコボコに論破するくらい絡んでこいよ 言ってる事がおかしかったら教えてくれよ VBAにすがるわけじゃねーんだ VBAが無くなる近い未来がみえねーんだわ 俺から逃げるなよ
575 名前:デフォルトの名無しさん (ワッチョイ 9dda-OfpS) mailto:sage [2023/06/30(金) 20:56:44.33 ID:ExkK5Q1b0.net] さすがアウアウ ちゃんと読めよ あんたに絡んじゃいないだろ ヨソの揉め事まで自分が絡んでると思い込めるその体質どうにかしろよ 酔ってンのか?
576 名前:デフォルトの名無しさん (ワッチョイ 9b19-GWUh) [2023/06/30(金) 21:06:43.71 ID:b3LF+rqB0.net] そもそもVBA熟知していたらChatGTPなんか使わない 何故なら既に単一責任原則を守って作成した部品を それを骨組みにして色々なツールを作れるくらいは抱えているし、 例え部品を持っていなくても自力ですぐに作れるから。 せいぜい、「あれどんな感じで作ってたっけ?」となったときにちょっと使う程度だけど その程度ならネットで検索したりマクロ先生に聞くだけで十分だからね。
577 名前:デフォルトの名無しさん (スップ Sd43-vS0M) mailto:sage [2023/06/30(金) 22:29:17.87 ID:5gLfesnHd.net] ChatGPT知らずに物言ってるのが哀れでならない 想像力が足りてないぞ
578 名前:デフォルトの名無しさん (ササクッテロ Sp81-x21g) [2023/06/30(金) 22:59:38.59 ID:Wy/PPotCp.net] >>561 マクロ組めるのが一番相性いいって ただ生データを加工(グラフ化)するだけでしょ? PowerBIとか使ってないの?
579 名前:デフォルトの名無しさん (ササクッテロ Sp81-x21g) [2023/06/30(金) 23:52:08.05 ID:EwCW9hA/p.net] >>559 > 何でもVBAでやろうとするのは時代遅れ、 分かるわ ピボットテーブル、Power query、PowerBI… この辺りの知識もなしにVBAに拘る時代遅れの残念な人が多い あと、研究所でよくある話。 「計測器で得た生データを加工し発表用に仕上げ定期的に配信する」 この流れを考えた時、どうイメージするか。 •ネットワーク関連(IPアドレス、サブネットマスク、ping) •データベース関連(logger、ロギング周期、データ形式) 最低限、この辺りを理解してないとねぇ 「データ貰えたらVBAで加工出来ますよ」って言う人いるけど そのくらい誰でも出来るわってなる
580 名前:デフォルトの名無しさん (ワッチョイ 678e-PlBh) mailto:sage [2023/07/01(土) 00:00:29.66 ID:UZcgLgfT0.net] >>573 いや、VBAでそんなことやる発想自体が馬鹿の証だろ
581 名前:デフォルトの名無しさん (ササクッテロ Sp5f-JA+y) [2023/07/01(土) 00:06:49.62 ID:d2dum+3bp.net] >>574 実際居るんだよ VBAに拘る時代遅れの人 求人見て思うのは 拘りを捨てて柔軟に対応出来る人材が求められてると思う
582 名前:デフォルトの名無しさん (アウアウウー Sabb-UYgO) mailto:sage [2023/07/01(土) 00:32:00.27 ID:YCqSMBMGa.net] しょうもない揚げ足取り合戦はやめなさい >>572 そんな簡単に済むわけないだろ 主要自動車メーカー、関連企業、グループ企業と各サプライヤで要求されるデータも仕様も全然違うししょっちゅう改定されるわ VBAより柔軟に手軽に共有出来て設変出来るものがあったら是非欲しいわ 社内だけで運用管理するデータほどVBAなんて使わずにベース化しやすいだろ 骨組みが決まっとるし情シス軍団が貼りつくし仕様変更の頻度が少なくて済む 最大手はなんちゃらsparkやら投稿システムに数年で変わったけどそれまでのデータ作成はどこもバチクソVBA使っとる 理由は簡単 VBAというよりエクセルが世界一優秀なソフトだから 印刷プレビューの文字ズレというカッスい弱点を未だに抱えてるくせに
583 名前:デフォルトの名無しさん (ワッチョイ 029d-ZEnY) mailto:sage [2023/07/01(土) 00:40:07.01 ID:G9bG2R8/0.net] >>567 563 だけど何か 誤解してないか あなたの長文は全部読んだ上で賛成してるんだよ だから「あんたは分かってると思うけど」と書いてるじゃない VBA をディスってるやつに言ってるんだよ 562のアンカーをつけたのはあんたの話に関連してるから これでいいかな
584 名前:デフォルトの名無しさん (アウアウウー Sabb-UYgO) mailto:sage [2023/07/01(土) 01:16:42.11 ID:dcUtPda/a.net] >>577 わかってる上で全方位レスしてるだけ 普通に社会人やっててVBAが全く無くなる気配なんて全くないんだよな レスありがとう そしてここでとある業務 例えばCADとの座標関係やデータムの組合せも可能で自動測定プログラムも組める今の世で一番信頼性の高い測定値を出すのが接触式三次元測定機 世界シェア一位二位を誇る2メーカーが出してる それ以外のを使う会社は馬鹿にされるレベルで突出した精度 社外とデータのやりとりする事前提とするともうVBA一択なんよ、しょぼいのに糞高いマクロをメーカーが有料オプションで用意してあるほどにExcel向けにソフトが出来てる 設計はCADソフトの社内データベース運用し始めた 生技はpythonやAI導入で設備を仕上げてる 経理や総務や人事は社内システムつこうてる けど品証もpythonを導入し始めたけどVBAを使わないのは死を意味する 明日も居座るからVBAなんていらないニートおじさんはいつでもカモン
585 名前:デフォルトの名無しさん (ワッチョイ ce19-/ugh) [2023/07/01(土) 02:35:38.67 ID:1PnTRWpn0.net] いや、何かみんなVBA「だけ」やってる前提で話してるけど どっちかと言えばそんな人の方が少数派なんじゃないの? VBAはOfficeSoftに特化した言語だからEXCELやACCESS使うことが前提なわけで VBAでWebサイト作りましょうとか、システム作りましょうとかはまずならない。 ただ、EXCEL扱うのにはVBA知ってた方が圧倒的に便利だし、 何か試す際にかなり手軽に出来るから それはそれで面白くて気になるからこのスレ来てる人が殆どかなと思ってたけど違うのかな?
586 名前:デフォルトの名無しさん (ワッチョイ 4fb1-Jyjt) mailto:sage [2023/07/01(土) 03:06:39.70 ID:c/vEPI310.net] 自分は十数年VBA使いまくってるけど、アラフォーで飲み込みも悪くて基本コード書くときはネットで例題見つけてはそれを加工してる 最近ChatGPT使い始めて、確かに簡単な注文するだけでコードガンガン書いてくれて本当に驚くばかり ちゃんとコメントも付けてくれて、そして細かいダメ出しにもすぐに対応してくれる でもやっぱり、最終的にはデバッグは自分でやらなきゃいけないから、結局はそのコードを自分なりに理解しなきゃいけない そういう意味では、ネットで例題見つける時間を大幅に短縮してもらえるようにはなったなというイメージ しかし、ネットで見つけてくる例題ほどの完成度はあるのか…?という心配が常につきまとう シートの操作や簡単な統計のようなものならまだしも、詳細な理論演算とかは出力結果みてもそれが適切な解なのか自信がもてない そしてこれまでの経験ではちょいちょいおかしな理論をもちこまれる 結局はネットでそれなりの権威の持ち主が公開してるコードじゃなきゃ怖くなってしまう もしくは自分なりに理論的に構築したロジックをなんとか具現化したものでもなきゃ責任が持てない ChatGPTでものすごい進化と変化は起こったけど、それで全てがリセットされるというのはまだ先の話かな そして今後はChatGPTを使いこなすという技術があらたに生まれてくるのかなと思ってみたり ChatGPTをエンジンとしたコード生成ツールとかできたりして
587 名前:デフォルトの名無しさん (アウアウウー Sabb-fE17) [2023/07/01(土) 04:10:02.52 ID:ttt+olIpa.net] ここではVBAの話だけしかしないのが正しい
588 名前:デフォルトの名無しさん (ワッチョイ d732-hRAP) mailto:sage [2023/07/01(土) 09:30:51.07 ID:VrNsIall0.net] >>576 プレビューどころか印刷でも嘘つかね?