- 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/
- 488 名前:デフォルトの名無しさん [2019/04/06(土) 05:07:20.11 ID:yAC/mUJI.net]
- ヒポリットテーブルってややこしい。
理解するこつあはありますか?
- 489 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 09:18:19.10 ID:9IkbKopt.net]
- >>480
ピボットテーブルな 繰り返し使うしか無い 後は元データもちゃんとしたものじゃないとピボットがうまく機能しない
- 490 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 09:43:33.17 ID:LrM+2CU8.net]
- >>480
色々できて楽しいと思いながら 新しい使い方を検索しながら使いな
- 491 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 11:28:05.41 ID:QwecXQyr.net]
- >>454の関数で値を計算して返すついでにどこか別のセルの値を設定しようと
Range("A1") = 1 としたって通らないだろ そんな制約があったんじゃ>>445に対する答えにはならんね
- 492 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 12:56:33.17 ID:aPksILYp.net]
- マイクに話しかけたら実行されるようにすりゃいいんじゃないの?
- 493 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 13:12:45.38 ID:cYL1/vjQ.net]
- >>480
いろいろやってみると面白いし、 元データをテーブルにして組み合わせると、 計算速度も速いような? 融通が利かない部分もあるけど。 4〜3月の月次推移グラフで、 ピボットテーブルには年度合計を出せるのに、 この合計もグラフに反映させる方法あるのか、ないのか・・・ 日時時間フィルターのタイムラインは、使い勝手がイマイチ、 とか。 あと、縦横クロス集計のピボットテーブルを 一発でリスト表(3Dマップに使える)に変換する隠れ機能があったり。
- 494 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 23:19:03.44 ID:+F6584OT.net]
- まずスレタイぐらい理解できるようになろう
- 495 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 11:38:35.77 ID:J7v3B2LO.net]
- シート内にマクロを設定した
ボタンを1つと、複数の画像があります。 ボタンをクリックしたら以下コードを実行し画像の一括削除を行っています。 しかし、問題があってボタンまで消失してしまいます。 そこでボタンの場合には削除はしない という風に制御を入れたいのですが、ボタンの名称はどうやって調べればよいでしょうか? 'シート無いの画像をすべて削除する。 For Each img In ActiveSheet.Shapes img.Delete Next
- 496 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 11:59:22.40 ID:SzIL1mww.net]
- >>487
ボタンに特定の名前を付けてそれをハードコーディングすりゃいいと思うがそれじゃ不満なのかな?
- 497 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 12:06:51.57 ID:oR5kGK9/.net]
- >>487
img.Nameで名前を調べることができます If img.Name <> "ボタンの名称" Then img.Delete End If みたいに書けば、特定の画像の消去をスキップできます
- 498 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 12:40:05.22 ID:z5f8NySY.net]
- >>489
名前なんて変化するのでコーディングするのはない プロパティで有るだろ、調べてないが常識的に
- 499 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 13:13:42.16 ID:dLz2IshG.net]
- 削除対象の画像を予めShapeRangeにまとめるなり、削除対象の画像の名前をシートに書き出すなりしてボタンマクロで一括削除させる設計にする方が検索効率や保守効率が良いと思う
ボタン名やコントロール名でハードコーディングするのは下策 ボタンの数やコントロールの種類が増えたときにいちいち手直しする必要が出てくる
- 500 名前:デフォルトの名無しさん [2019/04/07(日) 13:22:52.48 ID:UhqEDEIh.net]
- 動的にコントロールを追加するプログラムを作ってないの?
毎回追加で書いてるの? それは面倒で下衆だわ
- 501 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 13:30:07.71 ID:HG+SSO0q.net]
- >動的にコントロールを追加するプログラム
昔作ったわ EXCELでこの設計は止めたほうが良い。エラー頻発する
- 502 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 14:02:19.38 ID:lv61T0oy.net]
- >>487
For Each work in Shapes If work.type = 消したいオブジェクトタイプ Then 消す Next
- 503 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 15:13:26.49 ID:zM3BxSpj.net]
- >>474
>>478 >>483 スマンな。 >>456の時点では勘違いしてた。 でも、たぶん出来るだろうなと思ってやってみたら出来るな。 それどころか入力セルに対しても出来る。
- 504 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 15:19:02.23 ID:1196mB+r.net]
- >>487は差のマクロが登録されたあるひとつのボタンだけを対象に「消したくない」と言っているように思えるのだが
- 505 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 15:26:28.77 ID:zM3BxSpj.net]
- >>491
別にボタン名とかコントロール名でやっても良いと思うよ。 増えようが、名前付けル−ルがデタラメなんてこと無いだろう。 画像ならimgが先頭に付くとか、ボタンならbtnが付くとか、普通そうしてるはずだろ。 >>492 それは、この質問だけ見ただけじゃ何とも言えない。 消えなければ追加する等という作業は最初から必要無い。 動的に追加するような状況とも思えないな。 >>493 それはその組み方が良くないだけだろ。
- 506 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 18:49:28.94 ID:wMtd4Rq1.net]
- まあ、その時目の前の問題だけクリアーするのは筋が悪い
目的を汎用化し使い易くメンテナンスし易いように組むな普通
- 507 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 19:51:51.79 ID:Eip3w86o.net]
- VBAスレで何言ってんの
そういうことを言い出すとVBAなんか使うなという結論にしかならんよ
- 508 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 19:54:51.59 ID:9t5fZjJB.net]
- EXCEL前提ならそりゃVBAになる
- 509 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 20:30:11.80 ID:J7v3B2LO.net]
- >>488
ボタンに名前をつけるにはどうすればいいんですか?
- 510 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 21:10:44.99 ID:dLz2IshG.net]
- >>497
名前比較で実現出来るかどうかという実現可能性の話をしてるわけではない あくまで効率性の話をしてるんだが 特定のボタンを消さないようにするという目的だけのためにShapesコレクションをなめてアイテムのNameプロパティを逐一調べるという処理は筋が悪い ワークシート上に存在する画像や図形、テキストボックス、コントロール等の数だけ名前比較することになるからな 削除対象になる画像をワークシートに追加するタイミングでShapeRangeコレクションに入れ、ボタン押下でDeleteメソッドで一括削除というやり方の方が絶対に速い
- 511 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 21:18:21.02 ID:lv61T0oy.net]
- >>501
Nameプロパティ
- 512 名前:デフォルトの名無しさん [2019/04/07(日) 21:22:19.79 ID:6gqi5pp/.net]
- 一つも目的だけの為に作り込むのが良いのか汎用性を持たせて使い回せるようにした方が良いのかって事で俺は汎用性がある方が長持ちして良いと思う派
- 513 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 21:27:32.10 ID:zM3BxSpj.net]
- >>502
あのさあ、わざわざそんなことするほどの処理かね? 俺だったら名前ではやらんと思うけど、こんなのは何でも良い話だろ。 普通に考えて、ボタン1つに後は画像だけなんじゃね―の? 正直、こんなので効率も糞も無いと思うね。
- 514 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 21:45:02.84 ID:SzIL1mww.net]
- マクロに「Sub なんちゃら」って名前を付けるんだから、それを呼び出すボタンに固有の名前を付けるのは全く自然だ
- 515 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:33:14.85 ID:dLz2IshG.net]
- >>505
コレクションの総なめや文字列比較での処理分岐は処理速度の問題に直結するだろ それにマクロで処理しなければならないくらい画像を張り付けてあるシートに対する操作なら尚更処理が重くなる可能性が高い 数百個くらい画像が貼ってあるかもしれないし 割と現実的な設計の話だと思うんだが、まぁ君が効率も糞もないと思うなら仕方ない
- 516 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:37:25.36 ID:Dac9mVAO.net]
- 質問者そっちのけ。
- 517 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:38:12.36 ID:AvqFg232.net]
- >>502
> 削除対象になる画像をワークシートに追加するタイミングでShapeRangeコレクションに入れ とか言うけど、その画像がプログラムで追加されるとは限らんよ 人が適当に描画した図形を単にクリアするボタンかも知れんし
- 518 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:43:02.40 ID:dLz2IshG.net]
- >>509
それならShapes.SelectallでShapeRangeコレクションに突っ込んで、マクロ呼び出し用のボタンだけShapeRangeから除外して一括削除だね とにかくShapesの中でループを回す必要がない
- 519 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:50:29.75 ID:IY2XTri8.net]
- >>507
それは数百個貼るような状況の場合の話。 そういう場合なら、その時考える話だ。 例えば、それなりに組める奴ならScreenUpdatingなんかを使っても速度が速くなることは無いだろう。 俺の場合も当然そうだ。 だからと言って、普段そんなに速度を重視して組んでいる訳じゃ無い。 しかしだ、状況により速さが必要になったら当然それ用に変わるだろう。 いつも速度を重視して組んでいるならご苦労なこった。
- 520 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 22:54:24.63 ID:AvqFg232.net]
- >>510
> マクロ呼び出し用のボタンだけShapeRangeから除外して どうやってやるつもり?
- 521 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 02:30:49.49 ID:OEfF6P+m.net]
- オブジェクトを直接比較すれば済む話じゃね
なんでわざわざ.Name呼び出して文字列比較するのかわからん オブジェクトの比較なら何千あっても大して遅くならんし 馬鹿ばっかかよ
- 522 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 02:33:33.22 ID:OEfF6P+m.net]
- そもそもshaperangeコレクションにアイテムをremoveするメソッドがあれば済む話なのにな
やっぱVBAって糞だわ
- 523 名前:デフォルトの名無しさん [2019/04/08(月) 06:39:30.33 ID:2IBrjRoX.net]
- やっと気付いた?
- 524 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 08:39:44.42 ID:HwCnDiL+.net]
- 20年進歩なければな
- 525 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 09:10:46.62 ID:5f7aEGaE.net]
- >>503
ありがとう!
- 526 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 10:38:02.22 ID:20rc9alP.net]
- >>513
オブジェクトを直接比較の何を比較するんだよ 全てのオブジェクトは代入で使ってるもの以外 違うんだけど
- 527 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 10:40:14.98 ID:qrhOu38P.net]
- vbaは===がない上にisで比較できないパターンがあったはず
ユニークな名前で比較するやり方は正解
- 528 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 10:59:09.00 ID:f4XbMpJ6.net]
- >>518
オブジェクトの参照を比較するに決まってんだろ素人か? >>519 このユースケースで試してからほざけ
- 529 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:00:40.34 ID:20rc9alP.net]
- >>519
名前なんて好きに変えられるだろ そんなもんでユニークって言っても筋悪いって言われるんだよ
- 530 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:02:06.10 ID:20rc9alP.net]
- >>520
素人でございます、具体的に提示してください
- 531 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:06:10.01 ID:r5MC5DWh.net]
- うむ
- 532 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:28:59.16 ID:cNRL9eDF.net]
- Application.Caller と比較するのかな?
- 533 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:34:02.89 ID:20rc9alP.net]
- >>524
これは、プロフェッショナルな>>520 様が明快なお答えを出してくれるので 黙っておけよ
- 534 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:44:28.64 ID:f4XbMpJ6.net]
- ObjPtr、ポインタ、参照渡しあたりでググれカス
煽りが下手すぎて説明する気にもならん
- 535 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:44:45.29 ID:qrhOu38P.net]
- >>487
Sub foo() For Each img In ActiveSheet.Shapes If img.Type <> 8 Then img.Delete End If Next End Sub ここ数日見てなかったけど何やってるんだお前ら プロパティ比較すればいいだけだろう、一体何日かかってるんだ https://i.imgur.com/B5lcGn9.png >>520 無能の頂天っすね
- 536 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:45:39.84 ID:20rc9alP.net]
- >>526
具体的に提示できないのですか(笑) 必死で
- 537 名前:ググったか(笑) []
- [ここ壊れてます]
- 538 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:49:55.04 ID:f4XbMpJ6.net]
- >>528
捨て台詞も下手くそだな
- 539 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:51:20.33 ID:qrhOu38P.net]
- >>528-529
俺から見ればお前ら両方雑魚やぞ
- 540 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:54:16.26 ID:f4XbMpJ6.net]
- >>530
>>494 で示されてることをかなり遅れてドヤ顔で書き込んだ奴がいるらしい 無能かな?
- 541 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:56:32.80 ID:20rc9alP.net]
- >>530
ボタンはフォームコントロールとActiveXコントロールがあるけど 大丈夫か? 酒飲みながら茶化してるんですまんな
- 542 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:57:35.69 ID:qrhOu38P.net]
- >>531
終わってんのかよwww知るかwwwwじゃあ何の話してるんだよwwww
- 543 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 11:58:24.09 ID:20rc9alP.net]
- >>529
でも、お前(笑)
- 544 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:01:13.75 ID:20rc9alP.net]
- >>533
茶飲み話に決まってるだろ・・酒か・・
- 545 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:04:25.33 ID:cNRL9eDF.net]
- ObjPtrだろうがなんだろうが「消しちゃいけないこのオブジェクト」を最初にどうやって指定するのかと
- 546 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:04:58.54 ID:f4XbMpJ6.net]
- 酒飲んでるから!本気じゃないから!
はいノーダメ! 思考がテンプレすぎる
- 547 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:07:53.61 ID:20rc9alP.net]
- >>537
いやいや、具体的にかけない君が何言っても 笑い話
- 548 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:24:06.89 ID:KL9iMO+X.net]
- >>526
そこじゃないと思うぞw 比較するためにはボタンをオブジェクトとして取得しなきゃならん。 どうやって取得する? >>527 俺もこのやり方をするだろうね。 でも名前でも全く問題無いと思うぞ。
- 549 名前:デフォルトの名無しさん mailto:sage [2019/04/08(月) 12:35:47.16 ID:20rc9alP.net]
- >>537
結局、ググってもそんなコード内から泣いてるのか? 思いつきで、引きこもりのカスが書き込むよなこのスレも
- 550 名前:480 [2019/04/08(月) 13:06:22.74 ID:cVIHdDyE.net]
- >>481
名前などどうでもいいではないか。 https://pds.exblog.jp/pds/1/200808/06/80/b0003180_19511656.jpg
- 551 名前:480 [2019/04/08(月) 13:11:52.02 ID:cVIHdDyE.net]
- >>481
>>482 >>485 理解するコツを聞いているのに いろいろ使ってみろ、みたいな回答はおかしくないか? そんなこと承知の上で、理解するコツ、つまり心がけることやこんなことに注目したら理解がスイスイスーダラダッタスラスラスイスイスイっとできるかを聞いているのですが。
- 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
それ以外をどんだけ工夫しても、逆にどんなタコなコーディングしても、体感できる差は出ないから
|

|