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

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
1: デフォルトの名無しさん [sage] 06/08(日)11:06 ID:j4jIPbHU(1)
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
Excel VBA 質問スレ Part82
2chスレ:tech
671
(2): デフォルトの名無しさん [] 08/11(月)01:56 ID:6DVwG+w7(1/2)
>>669
廃止?どこでそんな話しになってるの?
672
(1): デフォルトの名無しさん [] 08/11(月)09:10 ID:ppLV33ur(1/7)
>>664
勘違いしないで欲しいのですが
そもそもVBAはアマチュアが使用している言語だから、そもそもApplication.Matchがある、WorksheetFunction以外にExcelの関数のオブジェクトがある、とは知らない人が非常に多いと思います。
気持ちいい、気持ち悪いの問題ではないです。
それに、Application.関数名で使用できない関数は非常に多いのではないでしょうか?
でもExcelである以上、worksheet関数にも熟知して、使用できる方がコードも完結で、動作も早いのではないでしょうか?
673: デフォルトの名無しさん [sage] 08/11(月)09:20 ID:4CrCXXHi(1)
>>666
マジでその認識か
シートのデータを二次元配列に入れて加工して、
最終的にシートに戻すんだよ
まさかテンポラリーシートみたいなダサい手法使って加工するの?まさかね
>>669
VBA廃止はとっくに取りやめになったよ
674: デフォルトの名無しさん [] 08/11(月)10:10 ID:ppLV33ur(2/7)
arr = Range(範囲)で取り込んで処理をして結果をシートに貼り付けるのはとても高速だと思う
だけど今度は数式を多用している場合はそのまま貼り付けるわけにはいかない泣
675: デフォルトの名無しさん [sage] 08/11(月)12:02 ID:prhnhKBm(1)
>>671
推奨しなくなってきてる
Automateなんちゃらに移行したいのかな?
676: デフォルトの名無しさん [sage] 08/11(月)12:17 ID:oIjo7VRO(1/3)
>>672
そうでしたか…
まあ、処理は一瞬ですね
web解析とかだけど。
677
(1): デフォルトの名無しさん [sage] 08/11(月)12:45 ID:o/BAd3AB(1)
10秒かかってたのが配列にしたら10倍速くなって1秒で終わった

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

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

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

今は、橋渡しが必要だけど
688: デフォルトの名無しさん [] 08/11(月)17:49 ID:6DVwG+w7(2/2)
>>685
で、それが
>Excel VBAは廃止の方向だとわかってないのかな?
という書き込みと何の関係が?
いつ廃止の話しになったんだ?
689
(1): デフォルトの名無しさん [] 08/11(月)18:37 ID:ppLV33ur(7/7)
今更ながら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)
>>689
無能自慢
1-
あと 1 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.014s