マクロ初心者です。
持っている本ではデータの絞込みの表示のマクロしか載っていなかったので困っています。
材料を変えた箱の重さを表示させたいです。
イメージでは
「高さ、幅、奥行(手入力、可変します)
3つの材料をオプションボタンで選択
(材料の単位あたりの重さはエクセル表内に入力)
(エクセル表内で計算させて)
重さを表示」
というフォームを考えています。
普通にエクセル表にすると3つの材料による重さがすべて表示されてしまいますし
今後 箱の支柱を同じように材料を選択させてその重さも表示させたいので
オートフィルタでは支柱の材料の選択ができなくなって
しまうのでマクロを使えばできるのかと思いました。
また、マクロ計算式を使うものでの初心者向け参考書でお勧めのものがあったら教えてください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
質問している回答ではありませんが・・・。
> 3つの材料による重さがすべて表示されて・・・
この部分は関数で、何とかなります。
例えばで、見てください。
=高さ*幅*奥行*if(材質="鉄",7.85,if(材質="コンクリート",2.3,0.9))
等で3つ程度なら、Ifで分岐させる事も可能ですし、別途、数が多くなるようでしたら、VLookUp関数などで比重一覧から参照させる事も可能です。
突然マクロで・・・と言うのは、初心者向けではないので、関数あたりからチャレンジされては、どうですか?
そこまで初心者ではないと言う事でしたら、ここは無視してください。
ありがとうございました。
VLOOKUPは初めて知りました。
こちらを利用して作ることができました。
マクロは少しずつ勉強していきたいと思います。
No.4
- 回答日時:
こんばんわ。
マクロの回答ではないですが、
>マクロ計算式を使うものでの初心者向け参考書でお勧めのものがあったら教えてください。
ということですので、
かんたんプログラミング Excel2003 VBA コントロール・関数編,大村 あつし(著)
をお薦めします。
また、このシリーズの以下の3点もお薦めです。
かんたんプログラミング Excel2003 VBA 基礎編
かんたんプログラミングExcel2003 VBA 応用編
かんたんプログラミング Excel2002VBA 演習編
VBAの高度な技も、初心者の方でも理解しやすく解説されています。
参考URL:http://www.amazon.co.jp/exec/obidos/ASIN/4774119 …
No.3
- 回答日時:
初心者には難しすぎませんか。
コントロールを使う、基礎的なことがほとんど出てくるから。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
のようになります。
詳しい説明ありがとうございます。
やっぱりマクロは難しかったので
勉強してからこのマクロを作成したいと
思います。
ありがとうございました。
No.1
- 回答日時:
下記の条件にて作成してみました。
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセルのマクロの有効について 4 2023/08/03 11:40
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Excel(エクセル) マクロでコピーすると数式が表示される 1 2022/09/09 20:21
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Excel(エクセル) 【エクセル」 特定のセルで条件抽出した列を、別シートに上から詰めて表示したい。 8 2022/04/08 16:00
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で、時間を条件にしたい...
-
エクセルの使い方 1日=7時間45...
-
ヘッダー
-
計算結果が「0」のセルだけを「...
-
Excel 関数? 文字列に...
-
エクセルでの時間計算(2時間30...
-
EXCELの関数に関する質問です
-
エクセルで 足し算や割り算の...
-
エクセル 1万時間を越える際の...
-
Excelの計算式内の文字列の一括...
-
エクセルの計算結果が0になって...
-
エクセル・計算式をテキストデ...
-
エクセルで、時間の計算をした...
-
エクセルで足し算と掛算を混ぜ...
-
エクセル 月数を0.5ヶ月単位で...
-
エクセルで勤怠管理表で休憩時...
-
AかBに入力があった時Cに反映、...
-
【エクセル】あるセルのみ自動...
-
エクセルで比率を計算
-
エクセルの表の左下に再計算と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数で、時間を条件にしたい...
-
ヘッダー
-
エクセルの使い方 1日=7時間45...
-
エクセルで、時間の計算をした...
-
EXCELの関数に関する質問です
-
エクセルで 足し算や割り算の...
-
Excelの計算式内の文字列の一括...
-
数式の計算結果により表示され...
-
エクセルでの時間計算(2時間30...
-
TEXTCALCの使い方
-
計算結果が「0」のセルだけを「...
-
エクセル・計算式をテキストデ...
-
エクセル 1万時間を越える際の...
-
エクセルの計算結果が0になって...
-
excel 参照しているセルに色が...
-
エクセルで足し算と掛算を混ぜ...
-
AかBに入力があった時Cに反映、...
-
Excel 関数? 文字列に...
-
エクセル 月数を0.5ヶ月単位で...
-
エクセルで比率を計算
おすすめ情報