[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 05/24 06:47 / Filesize : 292 KB / Number-of Response : 1024
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part60



1 名前:デフォルトの名無しさん mailto:sage [2019/03/16(土) 20:39:09.64 ID:6HWXzj9o.net]
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part59
https://mevius.5ch.net/test/read.cgi/tech/1549692750/

552 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 13:17:44.71 ID:20rc9alP.net]
>>537
まあ、引きこもりのカスだからノーダメ・・全ダメ(笑)

553 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 14:13:07.53 ID:qrhOu38P.net]
>>535
納得した
話題のループやグダグダ言う点は確かに酒の関の会話レベル
シラフで話してる奴はすげぇわ

>>539
thisかMe無いんだよな
callerでオブジェクトの取得するには、
名前を取得してforeachで名前と一致するオブジェクトを探して・・・
になると思う。超面倒くさい

>>542
ピボットに限らずEXCELは使わない機能が膨大にある
やりたいことを決めて、機能を使いこなすのが一番早い

554 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 14:58:52.26 ID:9sVYCwmO.net]
質問者はShapesコレクションのFor Eachで消えるボタンだって言ってますよ

555 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 16:07:16.94 ID:20rc9alP.net]
>>542
>理解するコツ
それこそ、マニュアルを読めよまたはググれよ
例えば以下でもいいけど、他にもいっぱいある
https://www.becoolusers.com/excel/pivottable.html
だけど、頭の構造によって読んでも分かんない奴も多いからな
必要な時に使うんじゃわからんバカには無理って言ってるんだよ
普段から使えよ

556 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 16:21:30.00 ID:20rc9alP.net]
>>544
お前「caller」の意味わかって書いてる?
今回の場合に使うべきかもわからんのか?

557 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 16:32:09.53 ID:qrhOu38P.net]
>>547
そう真剣になるなよ、本題についてはもうとっくに>>494で終わってる

で、
>ボタンをオブジェクトとして取得
これについて俺も知りたい
callerは他言語で言うthisみたいなもんで、通常はオブジェクトで飛んでくる。もうちょい正確に言うとオブジェクトの参照だな
これがオブジェクトで飛んでこないからめちゃくちゃ使い勝手が悪い
オブジェクトで取得する楽な方法あるの?

558 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 16:59:10.82 ID:eHXY0QFN.net]
お前らもしかしてわざと無能演じてんの?
だったらすげえや全然気づかなかった

set b = ActiveSeet.Shapes(Application.Caller)
For Each x in ActiveSeet.Shapes
If Not x Is b Then x.Delete
Next

559 名前:デフォルトの名無しさん [2019/04/08(月) 17:02:54.81 ID:cVIHdDyE.net]
>>546
「いろいろ使ってみろ」とか「マニュアル読め」じゃないんだよ。
自分の言葉で説明してほしいということ。

具体的にはこれはデータベースを扱っているのだから
「フィールド」とか「グループ化」とか「集計」とかそういう具体的な用語を使ってだ。

560 名前:デフォルトの名無しさん [2019/04/08(月) 17:08:22.50 ID:9eoJzmPe.net]
VBAの特徴
内部抗争が酷いが外敵には一致団結して退治する



561 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:08:40.67 ID:lpvwS4NY.net]
>>550
それこそスレチだわ 初心者質問スレでも池よ

562 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:12:22.10 ID:qrhOu38P.net]
>>551
仲良く喧嘩してるんだよwwww

563 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:15:00.42 ID:lpvwS4NY.net]
>>549
確認してないが、それ複数ボタンで動くか?
フォームコントロールとActiveXコントロール有るけど

564 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:20:52.07 ID:ccKDHzfP.net]
>>542
他人に期待しすぎ。
それが出来たら今頃は、サイト立ち上げたり、本出したり、どこかで講師やっとるがな。

MSからも含め、VBAよりもピボットテーブルの情報は少ないし、
パーツ、パーツで区切れるVBAよりも、
広範囲で漠然とした「自分のやりたいこと」に使えるかどうか、
試行してみないとなんとも言えない。

565 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:26:33.08 ID:eHXY0QFN.net]
>>554
押されたボタン以外は消える
ボタン1つと画像複数っていう質問なので削除ボタン以外のShapeを一括削除する仕様だと勝手に読み取った
少なくともNameで比較はありえねーよカスというサンプル

566 名前:デフォルトの名無しさん [2019/04/08(月) 17:28:02.25 ID:cVIHdDyE.net]
こんなとき図星の決まり文句言わなきゃなんないのかぁ。
「 み ん な 理 解 で き て い な い 。」

理解できてる人なら竹を割ったようにスッキリと解説できるはず。
使いまくれとか、サイト見ろとか、試行してみないとなんとも言えないとか、全部言ってる人がピポットテーブルの本質を理解できていない決定的な証拠じゃないか。

567 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:39:46.71 ID:qrhOu38P.net]
>>557
当たってるよ。理解する必要ないからね
ピボットで作るデータの9割ぐらいは基本機能で瞬殺だから「使って覚えろ」としか言えない
複雑な事をしたければ作業列でパーっと作った方が早い、深く理解して得るものが少なすぎる

そもそも大事なことは目標の設定の仕方だから、このスレでどうこう言えない

568 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 17:52:36.06 ID:TKIMwKN2.net]
>>549
ShapeRangeコレクションにRemoveメソッドがない以上これが最適解だな

569 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 19:14:24.14 ID:P0CHcdLi.net]
>>556
なんでName で比較しないの?

570 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 19:33:54.35 ID:V7WRm0mr.net]
foreach列挙中に対象コレクションから要素消すなよ



571 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 20:31:30.66 ID:r03ED/xX.net]
VBAの演算子で一方だけ評価するのってありますか
i < 100 OR data[i] = x みたいに境界超えてないか先にチェックしたい

572 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 20:33:46.80 ID:r03ED/xX.net]
i < 100 AND data[i] = x
逆でし

573 名前: []
[ここ壊れてます]

574 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 20:45:56.01 ID:lSCOP8uB.net]
>>562-563
> VBAの演算子で一方だけ評価するのってありますか
ない
If i < 100 Then If data(i) = x Then ...
ってやるしかない

575 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:11:16.19 ID:KL9iMO+X.net]
>>549
???
それって、固定の名前でやるのに比べてどの程度メリットが有るの?

固定の名前でやる方がまだましだと思うんだが。

576 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:11:26.99 ID:AlMdksUV.net]
>>560
文字列型プロパティの比較判定は重い処理だし、オブジェクト命名の運用に処理結果が依存してしまう
組み込みの列挙定数やオブジェクトポインタで比較判定した方が安全なのは事実

577 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:13:41.55 ID:ARCkkcA0.net]
・プログラムとして危険
vs
・vbaだしどうでも良くね

ファイッ

578 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:15:36.62 ID:KL9iMO+X.net]
>>566
ほう。
画像が100個あった場合、
文字列で比較と比べてどれくらい速くなるの?

まったくアホらしいと思うんだが。

579 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:40:37.98 ID:besmAe1s.net]
なんでわざわざ名前で比較したがるの?

580 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:48:14.01 ID:r03ED/xX.net]
>>564
ありがとうございます

発狂する



581 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 21:48:31.68 ID:besmAe1s.net]
ぶっちゃけ1000回比較しても体感できる差は無いけど
ならどちらがいいかは完全にセンスの問題になるわけで

オブジェクトを比較したい場面でオブジェクトそのものを比較できるのにわざわざ名前みながら比べるとか

頭の中どうなってるの

582 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 22:07:24.49 ID:4iOzxu9L.net]
>>569
>>571
別に、名前で比較したいわけじゃ無い。
俺は最初から、こんなのどれでやっても良いだろ派だ。

最初からパフォ−マンスに大きな差が出ないと思ってたし、センスの問題はかなり気にする方だが、今回の問題ではどれでやってもセンスが悪いとも思わない。

583 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 22:17:03.71 ID:besmAe1s.net]
>>572
Is知らなかったからって取り繕わなくてもいいよ

584 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 22:26:49.07 ID:4iOzxu9L.net]
>>573
ハァ?
そんな初心者のわけねえだろ。

それに、
>>549って俺に言わせると名前でやってることになるんだがw

>>539で、「どうやって取得する?」って書いたのは、結局名前で取得することになるんじゃね?って意味で、名前でってのはApplication.Callerみたいに名前を取得したら結局同じじゃね?って意味なんだがw

585 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 22:36:44.56 ID:lpvwS4NY.net]
>>573
だから、それは対象のボタンオブジェクトが分かってる場合だろ
最初のお題と違ってボタンがいくつあるかも分からん条件で効率よくってはなし
俺はNameプロパティは変更出来るだろ
だからTypeプロパティだろって言っているだけ

586 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 23:06:03.11 ID:AlMdksUV.net]
質問者そっちのけ

587 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:18:47.52 ID:8HUOoxmg.net]
>>549はデバッグ時に疲れからかモジュールにカーソルをあわせてF5を押してしまう

588 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 00:44:23.79 ID:cuTyECFJ.net]
この中で一番重いのはShapes.Delete
それ以外をどんだけ工夫しても、逆にどんなタコなコーディングしても、体感できる差は出ないから

589 名前:デフォルトの名無しさん [2019/04/09(火) 01:51:44.81 ID:flshAmjZ.net]
【12日まで】500円を貰える春のばらまきキャンペーン開催中です 
     
@ スマホのApp Storeから「プリン(pring)」をインストールする  
A 会員登録を済ませる     
B 下図の通りに進む  
https://pbs.twimg.com/media/D3pRtQiUwAQLMUR.jpg    
C コードを登録 [5gAYSz]  

これで五百円を貰えます  
スマホでセブンATMからお金を下ろせたり(キャッシュカード不要)便利なアプリですのでよろし

590 名前:ければご利用下さい []
[ここ壊れてます]



591 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 06:47:19.14 ID:WguqqX2K.net]
>>576
>>488-489で解決してるからいいんじゃん
あとはよくあるチンケな知識でのマウント合戦だからスルーでオケ

592 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 08:39:46.28 ID:mg+oftxD.net]
マウントやめたら色々な方法見れて役に立つんだけどな
何故一番になりたがるのだろう

593 名前:デフォルトの名無しさん [2019/04/09(火) 08:43:42.22 ID:sTjNwrNP.net]
そうさぼくらは世界にひとつだけの花

594 名前:デフォルトの名無しさん [2019/04/09(火) 08:45:37.14 ID:sTjNwrNP.net]
小さい花や大きな花
ひとつとして同じものはないから
No1にならなくてもいい
もともと特別なonly one

595 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 11:49:39.06 ID:4ZugEZRH.net]
まあ、なんだな久しぶりに実際に使ってみた
ルーチンの仕様
1.フォームコントロールとActiveXコントロールで作成したShapeオブジェクトは全て残す
2.それ以外のShapeオブジェクトは全て消す
3.対象ShapeオブジェクトはActiveSheetのみ
3.フォームコントロールとActiveXコントロールどちらでも動作する

Public Sub コントロール以外のイメージ削除()
Dim shape1 As Shape
For Each shape1 In ActiveSheet.Shapes
'MsgBox (shape1.Name & ":" & shape1.Type) 'これは確認用です・・・コメントアウト
If shape1.Type <> msoOLEControlObject And shape1.Type <> msoFormControl Then
shape1.Delete
End If
Next
End Sub

実際に作成してみて感じたこと
Nameプロパティは全て違うものが振られていく・・追番が付く
フォームコント―ロールを使ってる人がやっぱいるんだ・・俺はActiveXコントロールしか
普段は使わない

596 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 13:45:14.72 ID:4ZugEZRH.net]
追記しておくけど
目的・仕様をハッキリさせなきゃどんなルーチンも価値評価が難しいな
定義済み定数は定義名を使えよ普通に、ウォッチ式で確認できるから
>For Each x in ActiveSeet.Shapes
誤記スンナ ×ActiveSeet ○ActiveSheet

597 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 16:00:23.87 ID:v/sKiq9O.net]
>>480
俺がどうしてもexcel捨てられない理由が唯一
ピボットテーブルがあることなんだけどな
(その他のオフィス製品にも近ごろは
載っているようだが
VBAからの操作に慣れきってると
なかなか乗り換えきれない)

手放せなくなるまで使ってみてください

598 名前:デフォルトの名無しさん mailto:sage [2019/04/09(火) 22:54:10.35 ID:SAQnN0sI.net]
>>569
hashCodeがないから

599 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 10:58:53.58 ID:6J3r6J/I.net]
全部プロシージャで集計と報告系のマクロ書いてるけどグラフ出力とか一部は指定サイトの結果取得とか機能増えすぎて9モジュール1800行とかになってる
なんちゃってプログラマの俺にはもうお辛い…

600 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 11:28:22.21 ID:UESsnIOi.net]
動きゃいいよ
要件がリッチになりすぎたなら、それはもう技術的に何とかしようとするより外部のSaaSを導入することを検討すべき



601 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 11:37:22.82 ID:Y1e0LUUu.net]
>>588
スマンが君の書いてる機能はマクロを使わずにできるものだが
>集計と報告系のマクロ書いてるけどグラフ出力とか一部は指定サイトの結果取得
集計と報告系・・・当然簡単だろ、場合によってはワードも利用する
>グラフ出力
ピボット使えよ、何が不足してるんだ?
>一部は指定サイトの結果取得
こんなのクエーリーの標準機で、起動時に読み込むとか、一定時間おきに読み込めよ

面白がってVBAにしないで、標準の機能で出来ることはExcel様に任せるよ

602 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:02:10.37 ID:P1T0QVnr.net]
そこまで作り込む能力があるなら素直にPS, Python, Ruby, node.jsあたり学んだほうが幸せになれるぞ

603 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:06:33.25 ID:UESsnIOi.net]
SIerすらメンテできないようなものを作ると後々自分の首を締めることになるよ
ずっとお守りに時間を奪われて出世は閉ざされ、そのうちシステム刷新でクビよ

604 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:13:08.23 ID:Y1e0LUUu.net]
ってか、Excelの標準機能も満足に使えないのに無理やりVBAを使うのは
やめた方が良い、標準機のでできることはコードにしないな

605 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:26:08.65 ID:HiznTzOg.net]
>>588
別に多くも無いだろ。
普通の量だよ。

606 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:36:37.12 ID:UESsnIOi.net]
規模的にスケールするような作り方を理解した上でなら全然大した量ではないけど、
なんちゃってプログラマのアドホックなコーディングはだいたい1000行を超えたあたりで限界が来る
俺は絶対お守りしたくない

607 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:43:15.27 ID:HiznTzOg.net]
>>595
そういうののお守りもしたことあるよ。
いやー大変だった。

基本、デバック実行で、何の処理をしているのかを類推することになる。

608 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 12:54:25.06 ID:Y1e0LUUu.net]
>>596
それ、楽しいだろ?

609 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 13:43:17.52 ID:Fi06WKE0.net]
>>593
そうなのか?
自分はほぼOffice共有マクロでやっていてExcel固有の機能とかは最低限しか使ってないな

610 名前:デフォルトの名無しさん [2019/04/10(水) 13:45:51.76 ID:ZITKsaEc.net]
>>592
開発者ならそうだろうけど
開発者じゃなくて業務をしてるだけ
みたいな人がついでに使うのがexcelvbaって感じだから
その人が首になる事はないんじゃないかなぁ?
それにそんな本格的なシステムを組むほど予算が無い
みたいな会社規模だとどのみちどうしようもないし
そういう界隈用って有る様で無いし
表計算
という点では予想外の使われ方だとは思うけど
なんかそういう小零細向けのアプリが有った気がしたけど



611 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 13:54:38.83 ID:Y1e0LUUu.net]
>>598
それが、組織内での共通認識ならいいんでないの
マクロは俺は基本的に避けるが、好みだよ
でも、「Excel固有の機能とかは最低限」じゃあExcel使う意味あるの?

612 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 14:02:44.70 ID:Y1e0LUUu.net]
まあ、勘違いするバカ多いんだよな
プログラムは自分で作ってるとか、俺が考えたとか(笑)

613 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 14:16:50.81 ID:sSiaigIF.net]
俺が育てた AA略

614 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 16:17:57.40 ID:Fi06WKE0.net]
>>600
ExcelはUIとしては優れていると思うよ。
操作するユーザーとのデータのやりとりとかグラフ出力とかね。
でもSQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思うんだがね。

615 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 16:30:55.55 ID:Y1e0LUUu.net]
>>603
でも、そんなの君の好みだろ
不向き気なら使う必要ないな
ってか使えるとこだけうまく使うんだろ
なのに文句だけいゆうのな

616 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 16:34:40.21 ID:Y1e0LUUu.net]
まあ、何も使いこなせない奴って文句しかないんだよな

617 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 16:43:58.33 ID:Y1e0LUUu.net]
>>603
まぬけは返事も出来んか?

618 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 18:36:25.41 ID:Fi06WKE0.net]
>>604
文句なんか言ってないだろ?単に不向きなことはExcelにやらせてないというだけのことじゃないか
そもそも>>593がそっちの趣味主観から始まっているわけだしな

619 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 18:38:22.55 ID:Fi06WKE0.net]
>>606
そっちこそ俺の書いた

「SQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思う」

に具体的な反論があるなら言ってみてはどうなのか

620 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 20:18:31.42 ID:+T6khn6s.net]
>>608
PowerPivotとPowerQuery使えば楽勝だぞ



621 名前:デフォルトの名無しさん mailto:sage [2019/04/10(水) 22:29:11.86 ID:Y1e0LUUu.net]
>>608
>「SQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思う」
>に具体的な反論
お前は不向きの内容も具体的に書き込んでないのにどのようなアドバイスが欲しいのかな?
処理速度かな?

622 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 00:47:10.88 ID:tqqNlMCs.net]
問題点がなにかも自覚しないから不満なだけで止まるんだよな
で、自分ではなくツールのせいにする楽なこった

623 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 00:55:46.53 ID:7m5ZQ9KZ.net]
老害的な様相を呈してる

624 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 12:26:22.18 ID:flnPu98l.net]
>>610
言いたかないが、それはレベルが低いだろ。
普通に考えれば分かることだ。

625 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 15:17:56.46 ID:t6ZqSbU2.net]
>>603
>でもSQLでやるようなクエリーはもちろん不向きだし、途中段階のデータ加工処理にも不向きだと思うんだがね。

工夫次第で普通にできる。別に不向きじゃないと思う
そういうのはAccessのほうが向いてると言われればその通りだと思うが

626 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 17:36:19.55 ID:PzEny+LO.net]
また不毛なマウントの取り合いしてる…

627 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 18:18:36.48 ID:ekNCzMbf.net]
不毛で悪いか

628 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 18:23:33.78 ID:e8i1eyfO.net]
また髪…

629 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 18:50:46.18 ID:Vn+FQLol.net]
やめろ

630 名前:デフォルトの名無しさん [2019/04/11(木) 20:16:57.24 ID:v9KwxSkL.net]
同時接続数の超えられない壁



631 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 20:48:03.35 ID:flnPu98l.net]
>>614
元々のVBAを使わずにExcelの機能を使うっていう話の観点で言えば、データが多くなるとExcel関数ではどうにもならないくらい遅くなるということがある。

銀行のデータ整合性チェックをしたことが有るんだが、10万以上のデータでSUMPRODUCTとか全くのアホなことやってたな。
その時はSQLじゃ無いけどVBAで組んだら一瞬になったけど。

今の仕事でも50カラムぐらいで40万件ぐらいのレコードをExcelに吐き出してるのを扱ってるがVBA使わずに関数とか正気の沙汰とは思えない。

632 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 21:06:30.96 ID:JHOkJdt/.net]
10万くらいなら関数でも楽勝だろ
自動計算切れば普通に動く

633 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 21:12:19.70 ID:2g6t5Llw.net]
数値だけなら楽勝だけど文字列のfindとかは結構キツイ
>10万以上のデータでSUMPRODUCT
これ列全体指定してたら多分計算終わらん

634 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 21:33:34.25 ID:7m5ZQ9KZ.net]
ワークシート関数は使い捨てならいいんだけど残して運用し続けるのはつらい

635 名前:デフォルトの名無しさん mailto:sage [2019/04/11(木) 22:23:07.59 ID:+qS75l5K.net]
データベース的に使ってるエクセルテーブルで関数従属関係をワークシート関数で実現するのやめてほしいよな

636 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 01:26:49.44 ID:L59U/aC1.net]
Excelっていうか表計算ソフトは
ゼロから設計し直したほうが良いと思う

セルごとに個別の計算式が入っていて
どれか一つが間違っていても
簡単に気づくことが出来ないとか
一つのセルだけ修正し忘れとか
メンテナンス性が悪すぎる

637 名前:731 mailto:sage [2019/04/12(金) 01:40:03.71 ID:7vLuIMdD.net]
>>625
え?
少なくとも後者は教えてくれるぞ?

前者は数式表示モードにするか、横にformulatextで表示しとけば?

638 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 05:49:04.40 ID:V1CbV9zt.net]
OpenTextFileとCreateTextFiledeのメソッドが返すTextStreamには双方でなにか違いがあるのでしょうか?
ファイルの書き出しにはTextStreamのWriteLineメソッドを利用しています。

FileSystemObjectを使ってテキストファイル(拡張子無し)を作成して、
書き込みを行う処理を実装したいのですが、
CreateTextFileを使うとError 5 となりファイルは作成されるのですが書き込みができないことがたまにあります。
発生頻度が少なすぎて原因を抑えられず、
自力ではここまでが限界のため、何か思い当たることがあればご意見を頂けますと助かります。


OpenTextFileのほうでは少なくとも確認できる限りではエラーが発生しませんでした。


CreateTextFile
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/createtextfile-method
OpenTextFile
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/opentextfile-method

639 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 06:48:58.09 ID:jwc5+7Nd.net]
>>625
その意見を支持する

640 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 08:12:24.74 ID:cAaoTUDS.net]
>>621
SUMPRODUCT知らないか、10万のデータでどういう使い方するのか想像出来ない奴は黙ってろ。



641 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 08:24:36.34 ID:LhXUTlO1.net]
>>629
SUMPRODUCTは所詮O(N)だから実質的な計算量はたかが知れてる
遅けりゃSUMPRODUCT使わないで一時セル使った単純な式に展開してもいい

642 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 08:49:24.60 ID:wLs4Sov9.net]
>所詮O(N)だから実質的な計算量はたかが知れてる
O(n2)以上だよ
めちゃくちゃ多い

643 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 09:00:04.80 ID:xRzutCJ1.net]
>>631
O(N^2)となる根拠は?
実装がヘボいのかもしれないけど、仮に手計算でやったとしたら基本的に計算量は行数に比例するだろう
それなら一時セル使えば確実にO(N)で済むよ

644 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 10:26:44.15 ID:39D1tbGN.net]
>>620
そりゃSUMPRODUCTとか使われたら話は違ってくるわな
>>630にあるように工夫すればいいってこと

645 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 10:47:24.57 ID:cY6WK7UC.net]
絶対参照の範囲と相対参照の範囲をSUMOTODUCTする場合は平気でO(n^2)になるよ
Excelでシミュレーションとかしてるとよく出てくる

646 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 11:44:00.15 ID:LhXUTlO1.net]
>>634
それこそ一時セル使えば済む話だろう

647 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 11:48:22.60 ID:cY6WK7UC.net]
>>635
済まないんだよ
想像力足りてないぞ

648 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 12:22:33.93 ID:cAaoTUDS.net]
元々無理矢理VBA使うのはって話から始まってるが、もはや無理矢理関数使うことになってる件w

649 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 13:20:22.74 ID:L59U/aC1.net]
>>625
> 前者は数式表示モードにするか、横にformulatextで表示しとけば?

それぞれが微妙に違ってる(セル座標のこと)画面からはみ出るぐらいの
長い数式が何十個も表示されていて、それがワークシートを
コピーするたびに量産されていくという状態で
全部見て間違いがないことを確認できるわけ無いだろ

650 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 13:41:42.81 ID:cY6WK7UC.net]
>>638
全然本質的な解決にはならないけどR1C1形式にすればセル参照含め同じ数式になって多少は見やすいぞ



651 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 19:58:52.20 ID:BpmudOIO.net]
>>638
その考え方が間違いだろ
フォーマットは統一しろよ
みて確認なんかしない

652 名前:デフォルトの名無しさん mailto:sage [2019/04/12(金) 20:04:10.53 ID:kdt5VzkQ.net]
>>640
何を言ってるんだ?
一見してフォーマットが統一されているように見えていながら
誰かがミスして数式が壊れたり、修正が必要な時に漏れたりするから
問題だって言ってるんだろ。

フォーマットを統一するのに「人間がミスをしなければ」という
不可能な条件があるから、だめなんだよ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<292KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef