こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL VBAについての質問です

質問させてください。

添付した画像のような表にて在庫の管理をしたいと考えています。
VBAのフォームを使用し、テキストボックスに入出庫の数値を入れ、
入庫、出庫のボタンを押し、在庫の数値を増減させたいと思っています。
下に書かせていただいたような流れでできないものかと思ったのですが、
3行目と4行目のプログラムがうまく動作させられません。
offsetを使用し、セルをずらすことができるかと思いましたが
エラーが出てしまい実行することができませんでした。

どなたか方法をご存知の方がいましたら回答よろしくお願いします。
また、もっとベターな方法がありましたらアドバイスをよろしくお願いします。


Private Sub CommandButton1_Click()

'「a」という単精度浮動小数点数型 の変数を宣言する.
Dim a As Single

'ワークシート「Sheet1」をアクティブにする.
Worksheets("Sheet1").Activate

'textbox1の内容を変数aに入れる.
a = TextBox1.Value1

'Comboboxで選択したセルの4つ右隣のセルの値を(A32)に記入する
Worksheets("Sheet1").Range("A32") = ComboBox1.Offset(4,0).Value

'セル(A32)と変数aを足し、その値をComboboxで選択したセルの4つ右隣のセルに記入する
'Worksheets("Sheet1").ComboBox1.Offset(4,0).Value = a + ComboBox1.Offset(4,0).Value

End Sub

投稿日時 - 2014-07-06 19:05:21

QNo.8667548

困ってます

質問者が選んだベストアンサー

肝心のあなたの「コンボボックス」の中身が不明なので、勝手に考えて説明します。


準備:
コンボボックスを使って、シートの「B列」の上から下までに表示されてる中から1個を選んでいるものとします
もっと噛み砕いて言うと、コンボボックスのプルダウンには、B2以下(見えませんけどたとえばB32まで)の1つ1つのセルの内容が並んでいるということです。


Private Sub CommandButton1_Click()
’加算
 if me.combobox1.listindex < 0 then exit sub
 if me.textbox1 = "" then exit sub
 worksheets("Sheet1").cells(me.combobox1.listindex + 2, "F") _
 = worksheets("Sheet1").cells(me.combobox1.listindex + 2, "F") + me.textbox1.value
end sub

Private Sub CommandButton2_Click()
’減算
 if me.combobox1.listindex < 0 then exit sub
 if me.textbox1 = "" then exit sub
 worksheets("Sheet1").cells(me.combobox1.listindex + 2, "F") _
 = worksheets("Sheet1").cells(me.combobox1.listindex + 2, "F") - me.textbox1.value
end sub

投稿日時 - 2014-07-06 20:16:09

お礼

説明不足の部分までくみ取っていただきありがとうございます。
実行してみたところ、問題なく動作しました。
本当に助かりました。

投稿日時 - 2014-07-06 21:24:36

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問