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 何を言ってるんだ? 一見してフォーマットが統一されているように見えていながら 誰かがミスして数式が壊れたり、修正が必要な時に漏れたりするから 問題だって言ってるんだろ。 フォーマットを統一するのに「人間がミスをしなければ」という 不可能な条件があるから、だめなんだよ