dポイントプレゼントキャンペーン実施中!

VBA初心者です。 非常に困っております。
Excel 2003を使用しております。VBAにて下記のリスト表があるとします。

2010/04/05 りんご 30円
2010/04/12 みかん 20円
2010/06/12 もも  15円
2010/05/21 ぶどう 20円
2010/05/09 みかん 20円

このデータをExcelシートに入力されている場合、VBAのコンボボックスを使用して、
4月・・5月といったリスト表にて5月のデータのみを抽出するにはどうすればよろしいでしょうか?
オートフィルタみたいな感じで結構です。さらに抽出した5月分のデータの計算を求めればどうすれば良いでしょうか?→合計値は、任意のセルに入れば良いです。
すいませんが、分かる方、丁寧なご回答のほどよろしくお願いいたします。 

A 回答 (5件)

ANo.4です。



> ですが、コンボボックスを作ってみましたが、リストウィンドウをクリックしても、写真のような5月・・6月といったメニューが全く出てきません。(白地)何が原因なのでしょうか?

そこからですか……。
シートの何処かに1~12の数字を入れておき、コンボボックスのListFillRangeにそのセル範囲を設定してください。

また、余計な事かも知れませんが、この程度の事でコンボボックスやVBAを使う事はまずありません。実際に使用されるブックを作る場合には、マクロのセキュリティに左右されず、メンテナンスも楽な、セルの入力規則とセル式の組み合わせをお勧めします。

参考までに、セルの入力規則とセル式の組み合わせでやる方法を……。
前回の添付画面のシートそのままで、F3に月の選択、F1に月ごとの合計を出します。操作は、Excel2003をもとに書きます。

F3セルを選択、上部メニューの[データ]-[入力規則]を選択。
「データの入力規則」画面の「設定」タブで、入力値の種類を「リスト」、元の値に「1,2,3,4,5,6,7,8,9,10,11,12」と入力。
次にF1セルに↓の式を入れる
=IF(F3="","",SUMPRODUCT((MONTH(A1:A5)=F3)*(C1:C5)))
    • good
    • 0
この回答へのお礼

了解しました。ありがとうございました。
確かにこのレベルではVBAを使わなくても関数でできるんですね。 参考にもまだ初心レベルなのでVBAの使い方も勉強になりました。 早速使わせていただきます!

お礼日時:2010/07/08 22:15

「○○円」と言うのが、実際には数値だけで、書式で単位を付けている前提。


セル式でやるなら↓
=SUMPRODUCT((MONTH(A1:A5)=5)*(C1:C5))

コンボボックスとVBAを使ってやりたいのなら、これをComboBox1_Changeで実行すれば良いので

Private Sub ComboBox1_Change()
  Range("E1").Value = Evaluate("SUMPRODUCT((MONTH(A1:A5)=" & ComboBox1.Value & ")*(C1:C5))")
End Sub

でも、入力規制のリストとセル式の組み合わせの方がメンテも楽ですよ。
「VBA初心者です。 非常に困っております」の回答画像4

この回答への補足

早速のご回答のほどありがとうございました。
素晴らしいです、この発想を待っていました。
さっそく、このコードを使用して作ってみました・・・
ですが、コンボボックスを作ってみましたが、リストウィンドウをクリックしても、写真のような5月・・6月といったメニューが全く出てきません。(白地)何が原因なのでしょうか?
初心者ですんませんがご指導のほどよろしくお願いいたします。

補足日時:2010/07/07 22:45
    • good
    • 0

VBAを使うまでもなく、SUMIFワークシート関数で、できますよね。


SUMIF関数で5月分の合計を求めるには、(5月より後の合計)-(6月より後の合計)とします。
あとは、EXCELのヘルプで「ドロップダウンリスト」「SUMIF関数」を見てください。
    • good
    • 0

日付について 他の方が言うように


月としてのフィールドを設けたほうが簡単ですね
それが出来ないのであれば シリアル値で範囲で取得するしかありません

ワタシだったらシリアル値の範囲で取得して配列に格納します
    • good
    • 0

1.別のセルに月(年月)を表示するようにします。


  → 日付のセルを参照するようにして、書式設定します。

2.オートフィルタで1を使用して5月のみ表示させます。

3.2で表示された金額部分を全部選択して右下のステータスバーの表示を
  合計にすれば選択した合計が表示されます。

セルには入りませんが、合計がわかる方法ということで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!