Excel VBA 質問スレ Part83 (863レス)
1-

664
(1): 08/10(日)20:39 ID:46DfGBoc(5/5) AAS
>>663
そうなんですか

WorksheetFunctionはなんか気持ち悪いですね…
665
(1): 08/10(日)21:21 ID:6IrxmcjP(2/2) AAS
>>659
シートだからこそだよ
二次元配列をワークシートで代替しようとしたらクッソ遅くてイライラするだろ
配列で処理したら一瞬で終わるような処理もワークシート使うと数分かかったりする
666
(2): 08/10(日)21:57 ID:swuUdv2c(5/7) AAS
>>665
それだとExcel VBAでやる理由がないだろ?
667
(1): 08/10(日)22:11 ID:Zg5co2YS(1) AAS
>>666
お母さんに何でもかんでも聞いてそうだな
VBA以前の問題だよ
668: 08/10(日)22:33 ID:swuUdv2c(6/7) AAS
>>667
Excel VBAの話だろ?
669
(2): 08/10(日)22:37 ID:swuUdv2c(7/7) AAS
Excel VBAは廃止の方向だとわかってないのかな?
670: 08/10(日)22:57 ID:ne+O2SWW(2/2) AAS
まだ学生だろうし色々聞くのはありだと思うよ
社会に出る前にエクセルに触れてる時点で有利
671
(2): 08/11(月)01:56 ID:6DVwG+w7(1/2) AAS
>>669
廃止?どこでそんな話しになってるの?
672
(1): 08/11(月)09:10 ID:ppLV33ur(1/10) AAS
>>664
勘違いしないで欲しいのですが
そもそもVBAはアマチュアが使用している言語だから、そもそもApplication.Matchがある、WorksheetFunction以外にExcelの関数のオブジェクトがある、とは知らない人が非常に多いと思います。
気持ちいい、気持ち悪いの問題ではないです。
それに、Application.関数名で使用できない関数は非常に多いのではないでしょうか?
でもExcelである以上、worksheet関数にも熟知して、使用できる方がコードも完結で、動作も早いのではないでしょうか?
673
(1): 08/11(月)09:20 ID:4CrCXXHi(1) AAS
>>666
マジでその認識か
シートのデータを二次元配列に入れて加工して、
最終的にシートに戻すんだよ
まさかテンポラリーシートみたいなダサい手法使って加工するの?まさかね
>>669
VBA廃止はとっくに取りやめになったよ
674: 08/11(月)10:10 ID:ppLV33ur(2/10) AAS
arr = Range(範囲)で取り込んで処理をして結果をシートに貼り付けるのはとても高速だと思う
だけど今度は数式を多用している場合はそのまま貼り付けるわけにはいかない泣
675: 08/11(月)12:02 ID:prhnhKBm(1) AAS
>>671
推奨しなくなってきてる
Automateなんちゃらに移行したいのかな?
676: 08/11(月)12:17 ID:oIjo7VRO(1/3) AAS
>>672
そうでしたか…
まあ、処理は一瞬ですね
web解析とかだけど。
677
(1): 08/11(月)12:45 ID:o/BAd3AB(1) AAS
10秒かかってたのが配列にしたら10倍速くなって1秒で終わった

その9秒って意味あんの?
朝10分早く起きた方がずっと有意義な1日を送れるよ
678
(1): 08/11(月)12:50 ID:PI2CudDQ(1) AAS
VBAでデータ加工してる人ってまだいるんだな
スピルでサクッとスマートにできるのに
最近VBA使うのは入出力の自動化くらいだ
679: 08/11(月)13:58 ID:ft2lwBWZ(1) AAS
スマートというよりただの仕事出来ない奴って感じ
680: 08/11(月)15:45 ID:ppLV33ur(3/10) AAS
= A1:A100 = 条件
というのは真偽値の配列を返しているのですね
これを活かして
arr = Evaluate(アドレス & “=“”条件”””)
をすればループをしなくても真偽値が取得できる

worksheet関数のFilterの正体は、配列に対して二次配列の真偽値がTrueの行だけを抽出しているだけだった
681: 08/11(月)15:45 ID:ppLV33ur(4/10) AAS
>>677
10秒の例を出すのがおかしい
682
(1): 08/11(月)15:46 ID:ppLV33ur(5/10) AAS
>>678
Power Queryを使いましょう
683
(1): 08/11(月)15:54 ID:oIjo7VRO(2/3) AAS
>>682
Power Queryって、
VBA内で使えますか?

webページからテーブルとかデータを取得したい場合に
684: 08/11(月)16:17 ID:ppLV33ur(6/10) AAS
>>683
.RefreshAllで全て更新くらいしか知りません
しかもバックグラウンドの更新のチェックを外す必要があります
685
(1): 08/11(月)16:30 ID:Zix4Kp+v(1/2) AAS
>>671
VBA廃止し代わりにpythonにするという流れがあったけど、
優秀なpythonのアドオンがあり車輪の再発明になりかねないから取りやめ
具体的に挙げられたのはxlwingsとopenpyxl
でも開発の成果からPython in Excelが導入
上記は全てMS開発者ブログより
686
(1): 08/11(月)17:29 ID:N8nCnSEw(1) AAS
Excel内でPython使えてワークシートをData
Frameとして簡単に扱えたら最高に便利だろうね
エディタがJupyterのようなノートブックなら最高
なんちゃってデータアナリスト市場を総取りできるくらいのポテンシャルがある
687: 08/11(月)17:32 ID:oIjo7VRO(3/3) AAS
>>686
Excelで、
PythonでAIが作れたらええよね

今は、橋渡しが必要だけど
688
(1): 08/11(月)17:49 ID:6DVwG+w7(2/2) AAS
>>685
で、それが
>Excel VBAは廃止の方向だとわかってないのかな?
という書き込みと何の関係が?
いつ廃止の話しになったんだ?
689
(2): 08/11(月)18:37 ID:ppLV33ur(7/10) AAS
今更ながらRange.RowsとRange.Columnsを知った
やっと変数rngの中のセルの場所からrngの行全体や複数行の指定の方法を知った
rngの中の指定の列から指定の列までの範囲の指定の方法も知った
もっと早く教えて欲しかった
どのサイトを見てもRange(セル)かRange(Cells,Cells)かCellsばかり
.EntireRowと.EntireColumnは専ら行の高さや列幅変更の時に使用するだけ
.Intersectも正しくは交差するセルの範囲取得なのにもっぱらチェンジイベントで
If Not Intersect(Target,対象範囲) Is Nothing Thenでチェンジしたセルが対象範囲内か調べるだけ
AIに聞いても答えてくれない
690: 08/11(月)18:42 ID:NMNq6D65(1) AAS
>>689
無能自慢
691
(2): 08/11(月)19:03 ID:q1pR7by4(1) AAS
>>689
F2でオブジェクト ブラウザ出して色々見てみ
知らないこと山程出てくるから
検索も活用することあると思うぞ
692: 08/11(月)19:25 ID:ppLV33ur(8/10) AAS
>>691
やっとオブジェクトの階層?を理解したレベルなんです
サイトを引用しますが
外部リンク:papasensei365.com
例えばテーブルをshowalldataした時にエラーになる事があります
このサイトの結論はshowalldataする前にテーブルをセレクトするとエラーにならないとか、tbl.autofilter.showalldataするほどでもない、とか、AIに聞いてもshowalldataはworksheetのメソットで、それ以外ではエラーになる(嘘)とか言いますが、tblのオートフィルターはtbl.autofilterだから、tbl.autofilter.showalldataしか正しくないです。
やっとローカルウィンドウの正しい見方が分かりました。
693
(2): 08/11(月)19:26 ID:ppLV33ur(9/10) AAS
>>691
オブジェクトブラウザの見方がわからないです
クラスとかメンバーとか分かりません
1-
あと 170 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.023s