- VBAなんでも質問スレ
797 :デフォルトの名無しさん[sage]:2014/09/09(火) 03:45:59.03 ID:5K5CkDtq - >>796
いつも思うけど "スマートな方法" って その人それぞれの主観が入るから他人には分からんよ その人とっては良いと思っても 他の人には "スマートじゃない!"てのは多々ある で自分ならこうする ※シート上にそのテーブル作成して Dim Ws As Worksheet Set Ws = Worksheets("Sheet1") 'テーブルのあるシート 開始 = Application.WorksheetFunction.VLookup(曜日, Ws.Range("A2:C8"), 2, False) 終了 = Application.WorksheetFunction.VLookup(曜日, Ws.Range("A2:C8"), 3, False) ※VBA内で Select Case で処理する手もあるけど メンテ考えたら お勧めしない。
|
- VBAなんでも質問スレ
800 :デフォルトの名無しさん[sage]:2014/09/09(火) 10:29:01.15 ID:5K5CkDtq - >>799
じゃぁ 君なら >>796への ベストと思う回答は?
|
- VBAなんでも質問スレ
804 :800[sage]:2014/09/09(火) 13:12:07.91 ID:5K5CkDtq - ちょっと外出するので
まとめレスします >>802 なるほど Dictionaryってあるんですね 知らんかった ただ Dictionary使った事ないんであれですけど 1つのKEYに対して二つの値を格納する事が "単純に" 出来るんでしょうか 自分も一瞬 コレクション使うってのも考えたんだけど ちょっと工夫しないといけないんで そこで引っかかったんですよね >できるだけ単純なものを希望します。 ってのもあったし >>803 たしかに曜日は増えないけど 開始・終了値は 変わる可能性があるわけで その可能性が ほぼないとするなら select Case でもいいとは思うな >>799さんへ VLookup使わない 回答をお待ちしてます。 自分も勉強になりますんで
|
- VBAなんでも質問スレ
806 :800[sage]:2014/09/09(火) 13:27:14.63 ID:5K5CkDtq - あ!なる そういう手法なのね
取り急ぎレスします。
|
- VBAなんでも質問スレ
810 :800[sage]:2014/09/09(火) 16:15:22.73 ID:5K5CkDtq - 携帯でレスは随時みてたけど 又まとめてレスします。
>>807 さんへ まず後半部分は その通りだけど >Select Caseでべた書きも良いし >配列やディクショナリにでも入れて処理するか >それ用のユーザ定義型やクラス作る手もある が良くてVlookupがだめな理由は? >>799 >VLookup使うならVBAとかいらんけどな 否定されるなら その理由がほしい でそれが 前半部分であるなら >>796 >エクセル2007でのVBAについてです。 である事 そして >>796 >「曜日」という変数が「月」だったなら 開始=10、終了=120 >>796 >のように予め関連づけたいのですが と書いては あるけど それが最終結果だとは読みとれんかったし これを元になんらかの処理をしたいんだろうなと自分は受けとって回答した だから >>799さんが >「曜日」という変数が「月」だったなら 開始=10、終了=120のように予め関連づけたいのですが を最終結果と判断してあのレスなら それはそれで納得できる。 (自分には単純に否定されただけに見えたし >>796さんにそれなりの説明つけてレスして欲しかった) >>808 さんへ ごめん勉強不足かもだけど >>809さんと同じ認識だったんだけど 詳しく解説を頼みます。
|
- VBAなんでも質問スレ
812 :800[sage]:2014/09/09(火) 16:47:08.37 ID:5K5CkDtq - >>807 の説明ならここまで噛み付かなかったよ
>>799 にむかついた
|