ここから本文です

エクセル、マクロについての相談です。 機械の在庫管理をマクロで処理をしよう...

sle********さん

2018/1/1016:41:09

エクセル、マクロについての相談です。

機械の在庫管理をマクロで処理をしようと
しております。

A~Wの部品で機械が1台組上がります。

受注数の欄(”G3”)に機械の台数を入れ
ボタンをクリックすると
A~Wの各部品の現在庫から必要数分×受注数が
自動的に引かれるという表を作ろうとしています。

Visual Basicの画面に

Sub Stock()
Dim x As Integer, i As Integer
x = Range("G2").Value
For i = 5 To 28
Cells(i, 5).Value = Cells(i, 5).Value - Cells(i, 4).Value * x
Next i
End Sub

と打ち込みましたところ
実行時エラー13 と出てしまい、デバックをクリックすると
Cells(i, 5).Value = Cells(i, 5).Value - Cells(i, 4).Value * x
の箇所が黄色くなります。

どこの箇所を直せば解消されるでしょうか。
また、より良いマクロがあれば
御教えいただけますでしょうか。

よろしくお願い致します。

補足当方、マクロ初心者でして、今回初めて組みました。詳しく教えていただけると幸いです。

i As Integer,Cells,Value,Visual Basic,Sub Stock,Dim x As Long,End If

閲覧数:
102
回答数:
4
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

k_w********さん

2018/1/1113:58:52

単に空白があるからとか?
何故か22行目は何もないみたいですし。
『現在庫数』が空白とはそもそもどうしてなのか?と疑問ですけど。

  • k_w********さん

    2018/1/1114:03:31

    『現在個数』が『必要数×受注数』に足りない場合、どうするのかを考えてますか?
    他の物は差し引いて『不足・未入力』の行は避けてって訳にはいかないですよね?
    パーツの欠品で生産できないのですから。

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

blu********さん

2018/1/1020:52:25

実行時エラー13 ですか。
型の不一致、データ例外ですね。
油断すると、よくあることです。

デバック用に下記のようにしてみては。


Sub Stock()
Dim x As Integer, i As Integer
x = Range("G2").Value
For i = 5 To 28

If Not IsNumeric(Cells(i, 5).Value) Or _
Not IsNumeric(Cells(i, 4).Value) Then
MsgBox "Cells(" & i & ",5)の値:" & Cells(i, 5).Value & vbLf & _
"Cells(" & i & ",4)の値:" & Cells(i, 4).Value
End If

Cells(i, 5).Value = Cells(i, 5).Value - Cells(i, 4).Value * x
Next i
End Sub


If Not IsNumeric(Cells(i, 5).Value) Or _ から
End If までで

エラーが発生する直前に、Cells(i, 5)または(あるいは両方)
数値以外であれば、MsgBoxにその内容が表示されると
思います。

★空白セルはゼロと見做されるので問題ないのですが
たまにあるのが、スペースが設定されているケースです。
(入力者が、ついスペースキーを押してしまった)
これは数値以外の扱いとなります。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

hig********さん

2018/1/1018:26:33

黄色反転した行で、xやi など変数にマウスを当てると値が分かります。クリックでなく当てるだけです。自分の期待した値と違う値になってませんか?

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

hel********さん

2018/1/1016:53:40

実行時エラー13は、型の不一致であるということなので、
変数Xが整数以外のものになっているとか・・。

添付図が小さいので値が分かりません。
ちなみに、
Dim x As Integer を
単に
Dim x As Long
にするとどうなりますか?

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

「テレビ録画」にまつわる困ったエピソード

みんなのアンテナ

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる