[過去ログ] VBAなんでも質問スレ Part2 [転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
368: 2017/09/18(月)23:50 ID:XctjYupl(1) AAS
すみませんお力添えをお願いします!
エクセルマクロ(VBA)の件でお尋ねいたしたく思います!
まずグラフの系列名はセル参照で表示させてます
シート名:あいうえお
適用グラフ:グラフ4
系列範囲:A11:Z11
必要なデータ選択は全ての系列で済ませています
あとはグラフで不要な系列を削除したいため、グラフに乗せたくない系列名は”×”になるようにしてます
この系列名”×”をVBAで自動的に削除させることは可能でしょうか?
またグラフは別シートの数値入力をもって自動作成される仕様にしているので、トリガーは設けません
デフォルトだと全部”×”のため(初めは数値データの入力がないため)
数値が入ると正しい系列名に変更されるため、VBAではまず”×”で削除して、”×”以外の系列名に変わったら復活するという構想を練っています
とりあえず、まず”×”を消すコードを見よう見まねで書いてみたのですが動作しませんでした
消すのは良いですが復活させるのも組み込むとなるとちんぷんかんぷんです
是非ともご教示お願いします!
Sub test()
Dim d As Long
Dim i As Long
Dim j As Long
For i = 2 To Sheets.Count
d = Range("A11:Z11").End(xlUp).Row
With Worksheets(i).ChartObjects("グラフ 4").Shapes.AddChart.Chart
.ChartType = xlLineMarkers
For j = .SeriesCollection.Count To 1 Step -1
If .SeriesCollection(j).Name <> "×" Then
.SeriesCollection(j).Delete
End If
Next j
End With
Next
End Sub
369: 2017/09/19(火)20:55 ID:2SFxAhMD(1) AAS
>>367
説明サイトへのリンク、ありがとう。
取り敢えず、「階層構造のデータ間を移動する手段として」のRecordオブジェクトは使うこと無さそうw
370
(3): 2017/09/20(水)01:17 ID:2dxgF4qE(1) AAS
IF文初心者ですが
3つ数字の中から一番小さい数を判定したいのですが、
elseや入れ子で複数書けば判定できるというのは推測がつきますが
最も簡潔に記述するとしたらどんな記述方法がありますでしょうか?

例)
33 12 3

3を抽出
371
(1): 2017/09/20(水)05:19 ID:mkPuPLWs(1/2) AAS
>>370
最小値 = WorksheetFunction.Min(Array(33, 12, 3))
372
(2): 2017/09/20(水)05:37 ID:mkPuPLWs(2/2) AAS
>>370
x = 33
y = 12
z = 3
If x < y And x < z Then
  最小値 = x
ElseIf y < x And y < z Then
  最小値 = y
Else
  最小値 = z
End If
373: 2017/09/21(木)21:28 ID:j1SDXypf(1) AAS
>>372
>>371
明確な答えをありがとうございます。
やはりIFの場合は372が妥当なようですね。
374: 2017/09/21(木)22:56 ID:8rkXkN3+(1) AAS
>>372は < じゃなくて <= にしないと誤判定する
375
(1): 2017/09/22(金)06:56 ID:zUC9dslV(1/2) AAS
例題の対象が3ではなくて1000とかに増えたら破綻するだろw
376: 2017/09/22(金)07:13 ID:TPoybrYY(1) AAS
>>375
数字3つという前提を勝手に変えるこういう馬鹿はなんだろう
377: 2017/09/22(金)09:34 ID:KphHXryq(1/2) AAS
汎用性を考慮しないのか。
なかなかひどい。こういう人もいるという参考になったわ。
378: 2017/09/22(金)09:37 ID:oVXNeyl2(1) AAS
ソートアルゴリズム書くだけやん
379
(1): 2017/09/22(金)09:54 ID:yLI54yGL(1/2) AAS
372のはアルゴリズムと言うよりその場しのぎの対応
380: 2017/09/22(金)10:13 ID:yLI54yGL(2/2) AAS
配列に入れてループで最小値と比較して小さければ最小値を更新していくのが定石なのでは。
381: 2017/09/22(金)10:29 ID:WIc1mdfR(1) AAS
だからMin関数で一発なのに、無駄に車輪の再発明をしたがるやつが多くてリンダ困っちゃう
382: 2017/09/22(金)10:32 ID:4is4PUWl(1) AAS
>>379
順次比較も立派なアルゴリズムの一種なんだが
383: 2017/09/22(金)14:42 ID:KphHXryq(2/2) AAS
これはひどい
384: 2017/09/22(金)14:57 ID:WETwNkme(1) AAS
IF初心者とか言ってる人に何言ってるんだか

あといつからこのスレはEXCEL VBA限定になったんだ
385: 2017/09/22(金)20:39 ID:zUC9dslV(2/2) AAS
>elseや入れ子で複数書けば判定できる
>最も簡潔に記述するとしたらどんな

という問いに、elseや入れ子の回答するのは無能以前に答えになってないのとちがう?
386
(1): 2017/09/22(金)22:15 ID:250/7oh7(1) AAS
え?え?日本語理解できてる?
質問には「Elseを使わずに」なんてどこにも書いてないぞ

ざっくり意訳すれば「IfとElseの数を最小に」する方法を聞いてるんだろ
387: 2017/09/23(土)06:12 ID:6cN/4Ux4(1) AAS
372のは374が書いてるように、例えば
x=1
y=1
z=3
と入れただけで誤判定する。アルゴリズムの最低限を割ってるぞ。
372がベストアンサー(笑)だと質問者が思ったなら気の毒なので念のため。
388
(1): 2017/09/23(土)07:50 ID:nAanI8EG(1) AAS
そもそも計算量も最少じゃないしな
普通に

最小値 = x
If y < 最小値 Then 最小値 = y
If z < 最小値 Then 最小値 = z

ってやる方がわかりやすい
389: 2017/09/23(土)10:07 ID:hX9NlXap(1) AAS
うん、ベストアンサーはMin使った方だね。
俺だったら迷わずMin使用する。
同時にMin使わない方法も考える。
配列ループも考えた。

でも、別にIf文使っても良いんじゃない?
そんな目くじらを立てるようなことじゃない。
390: 2017/09/23(土)12:22 ID:/uotOgAp(1) AAS
>>386が分かってないバカ多すぎw
391: 2017/09/23(土)14:36 ID:OMtgmcpv(1) AAS
だから372はif elseだとしても最小(計算量的に)の答えにもなってないし、そもそも答えとして間違ってるって話だろ
392
(1): 2017/09/23(土)17:06 ID:HTwX+3ra(1) AAS
それは勉強する奴と仕事にしてる奴のスタンスの違いだな。
仕事にしてる奴はIfを使わなきゃならないなんてことに遭遇しないから、はなっから抜けてる。
393
(1): 2017/09/23(土)23:00 ID:9AVefP05(1/2) AAS
必ずIfを使う縛りなら>>388がベストアンサー
ソートアルゴリズムの最初の1回目のループを展開してるだけなんだけど、基本中の基本のやり方
394
(1): 2017/09/23(土)23:28 ID:UvR7p8sn(1) AAS
>>392
if文の使い方を聞かれてmin()関数を教えるような人はプログラムを仕事にしないで欲しいのです
いえ、仕事をしないで欲しいのです
395
(1): 2017/09/23(土)23:49 ID:9AVefP05(2/2) AAS
仕様書はちゃんと読んで、条件は無視しちゃいけないよね
396: 2017/09/24(日)02:12 ID:3B64fACL(1) AAS
勉強のため何が何でもIfだけで解決しなきゃいけなかったのか、
まだ初心者だからMinという便利な物があることを知らなかったのか
それによって変わってきちゃうからー
397: 2017/09/24(日)08:43 ID:LX+6AD0q(1) AAS
>>395
仕様書ならそれが正解
しかし案件定義なら顧客が何をしたいかを読み取ってより良い方法を提案することも必要
そもそも>>370にはIf使えとは書いてないし
1-
あと 605 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.020s