プロが教える店舗&オフィスのセキュリティ対策術

マクロ初心者です。
持っている本ではデータの絞込みの表示のマクロしか載っていなかったので困っています。

材料を変えた箱の重さを表示させたいです。
イメージでは
「高さ、幅、奥行(手入力、可変します)
 3つの材料をオプションボタンで選択
 (材料の単位あたりの重さはエクセル表内に入力)
 (エクセル表内で計算させて)
 重さを表示」
というフォームを考えています。
普通にエクセル表にすると3つの材料による重さがすべて表示されてしまいますし
今後 箱の支柱を同じように材料を選択させてその重さも表示させたいので
オートフィルタでは支柱の材料の選択ができなくなって
しまうのでマクロを使えばできるのかと思いました。
また、マクロ計算式を使うものでの初心者向け参考書でお勧めのものがあったら教えてください。
よろしくお願いします。

A 回答 (4件)

質問している回答ではありませんが・・・。



> 3つの材料による重さがすべて表示されて・・・
この部分は関数で、何とかなります。

例えばで、見てください。

=高さ*幅*奥行*if(材質="鉄",7.85,if(材質="コンクリート",2.3,0.9))

等で3つ程度なら、Ifで分岐させる事も可能ですし、別途、数が多くなるようでしたら、VLookUp関数などで比重一覧から参照させる事も可能です。

突然マクロで・・・と言うのは、初心者向けではないので、関数あたりからチャレンジされては、どうですか?

そこまで初心者ではないと言う事でしたら、ここは無視してください。
    • good
    • 0
この回答へのお礼

ありがとうございました。
VLOOKUPは初めて知りました。
こちらを利用して作ることができました。
マクロは少しずつ勉強していきたいと思います。

お礼日時:2005/12/29 11:21

こんばんわ。



マクロの回答ではないですが、

>マクロ計算式を使うものでの初心者向け参考書でお勧めのものがあったら教えてください。

ということですので、
かんたんプログラミング Excel2003 VBA コントロール・関数編,大村 あつし(著)
をお薦めします。
また、このシリーズの以下の3点もお薦めです。
かんたんプログラミング Excel2003 VBA 基礎編
かんたんプログラミングExcel2003 VBA 応用編
かんたんプログラミング Excel2002VBA 演習編

VBAの高度な技も、初心者の方でも理解しやすく解説されています。

参考URL:http://www.amazon.co.jp/exec/obidos/ASIN/4774119 …
    • good
    • 0
この回答へのお礼

ありがとうございます。
本屋で探して買いたいと思います。

お礼日時:2005/12/29 11:19

初心者には難しすぎませんか。

コントロールを使う、基礎的なことがほとんど出てくるから。
BVEの画面で挿入-ユーザーフォームでUserForm1を挿入。
UserForm1の上に、TextBoxを4つ貼り付ける。
3つは高さ、幅、奥行きの入力用。1つは重さ(結果)表示用です。
材料選択用に3つのオプションボタンを貼り付け。
Captionはそれぞれ、たとえば鉄・銅・アルミとする。
1つのFrameを張りつけ。
Captionはたとえば「材料」とする。
Frame1フレームの上に、3つのオプションボタンをD&Dすること。
3つのオプションボタンの、それぞれのプロパティのGroupNameに(たとえば)G1を設定。
テキストボックスのプロパティでテキスト配置を右詰に設定。
UserForm1にコマンドボタンを1つ貼り付け(結果計算Go!用)。
Captionはたとえば、「計算」
コードはコマンドボタンのクリックイベントに
Private Sub CommandButton1_Click()
h = TextBox1.Text
w = TextBox2.Text
d = TextBox3.Text
c = h * w * d
'------
If OptionButton1 Then t = 1
If OptionButton2 Then t = 2
If OptionButton3 Then t = 3
MsgBox t
TextBox4.Text = Format(c * t, "##,###")
End Sub
MsgBox tは本番では削除。
比重は上例ではでたらめ、すいません。
TextBox1-3の、位カンマ区切りや、チェックやその他諸々の、やったほうが良い点は色々あるが、略します。
OptionButtonのどれを押されたか割り出す、ルーチンは良いものが思い出せないのでとりあえず、上記にした、すみません。
エクセルのシートと関連付けたやり方は
Private Sub CommandButton1_Click()
Dim sh As Worksheet
h = TextBox1.Text
w = TextBox2.Text
d = TextBox3.Text
c = h * w * d
'------
Set sh = Worksheets("sheet2")
If OptionButton1 Then t = sh.Cells(1, 1)
If OptionButton2 Then t = sh.Cells(2, 1)
If OptionButton3 Then t = sh.Cells(3, 1)
MsgBox t
TextBox4.Text = Format(c * t, "##,###")
End Sub
のようになります。
    • good
    • 0
この回答へのお礼

詳しい説明ありがとうございます。
やっぱりマクロは難しかったので
勉強してからこのマクロを作成したいと
思います。
ありがとうございました。

お礼日時:2005/12/29 11:23

下記の条件にて作成してみました。


3つ位の選択なのでSELECTCASEを使いましたが・・・。
最終結果をメッセージボックスで表示しますが、ダメですかねぇ?

・高さをA2セル・幅をB2セル・奥行をC2セルに入力
・オプションボタンのリンク先をF1セルとする
・オプションボタンに該当する単位当り重量をG1~G3セルに入力

Sub 算出()
Dim H As Variant, W As Variant, L As Variant
H = Range("A2").Value
W = Range("B2").Value
L = Range("C2").Value
Select Case Range("F1").Value
Case 1
MsgBox "箱の重さは" & H * W * L * Range("G1").Value & "です。", , "計算結果"
Case 2
MsgBox "箱の重さは" & H * W * L * Range("G2").Value & "です。", , "計算結果"
Case 3
MsgBox "箱の重さは" & H * W * L * Range("G3").Value & "です。", , "計算結果"
End Select
End Sub
    • good
    • 0
この回答へのお礼

ご返信ありがとうございます。
早速やってみます。

お礼日時:2005/12/07 17:25

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