[表示 : 全て 最新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/

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
それ以外をどんだけ工夫しても、逆にどんなタコなコーディングしても、体感できる差は出ないから






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

前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