質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

1006閲覧

重量と距離を入力すると料金が計算されるVBAプログラムを作成したい。

pazzu

総合スコア16

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/08/28 07:03

距離
10 20 50 100 100以上
重量
0.5 100 130 210 320 420
2.0 150 200 310 360 500
5.0 180 230 380 420 580
15.0 250 280 400 480 600
15.0以上300 350 450 520 700

料金

重量 距離

料金

上記の表で重量と距離を入力すると料金が計算されるVBAプログラムを作りたいのですが、CASE構文をどのようにプログラミングしていけば良いのか分かりません。大変お手数ですが、教えて頂けると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tukuroku

2017/08/28 07:30

まずは、ご自身でやれるところまでやってみて下さい。努力した証(コード)が全くないと、やりたい事の丸投げになってしまいます。個人的には、マスターとなるシートに上記の表を持っておいて、if文で繰り返し判定すれば良さそうに感じてます。
pazzu

2017/08/28 08:20

ご回答ありがとうございます! やれるところまでやってみます。
guest

回答2

0

こんにちは。

excel クロス表 検索 VBAなどで検索すれば、足掛かりになるものが見つかるはずです。

以下はVBAを使わずに式だけで対応する方法です。
Excel:行と列の交差する位置の値を取り出す(INDEX関数+MATCH関数)
経理の奥の手!Excel表からデータをクロス抽出する方法

投稿2017/08/28 07:48

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pazzu

2017/08/28 08:21

こんにちは。ご回答頂きましてありがとうございます。 excel クロス表 検索 VBAで検索して足がかりを見つけてみます。
guest

0

ベストアンサー

case構文の使い方は、vba caseでググれば、大抵でてくると思います。
おすすめはmsdnも含めるとマイクロソフトのページが参照できますので、公式ページを見るほうがよいです。

で、公式ページを見ると、構文と指定できる条件(expressionlist-n)が書いてあります。

今回の場合、距離の判定を10未満、20未満、50未満、100未満、100以上が判定できればよいのですが、
完全に一致しないので、範囲指定での判定が必要そうです。

10未満は、1 To 9Is < 10のようにすれば判定できそうです。
小数部がでてくる場合、n to xは判定条件からこぼれる可能性あるので、Isがよいです。

同様に、20未満以降や、重量についても判定してください。

あとは、配列なのか、セルを直接参照するかは、わかりませんが上記の判定で添え字が求められれば、
cells(xx, xx)とか料金表(xx, xx)で取得できるはずです。

投稿2017/08/28 09:53

momon-ga

総合スコア4820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問