- ベストアンサー
全くの素人でごめんなさい
A1に日付、B1に品物Aの生産個数、C1に品物Bの生産個数D1に品物Aの出荷個数、E1に品物Bの出荷個数を それぞれの欄に数字(個数)を記入したいと思っています ユーザーフォームを使って記入したいと思います とりあえず ユーザーフォームは日付のテキストボックス、チェックボックス(品物A,品物B、品物Aの出荷個数、品物Bの出荷個数) にチェックを入れて 個数を記入するためのテキストボックスを配置しました。 質問がわかりにくくてすいません。 もし良かったら 最初から教えていただけると嬉しいです
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! Sheet上にコマンドボタンを配置して、ユーザーフォームを表示させることはできるものとしています。 チェックボックスは必要ないような感じがするのですが、敢えて希望に近い形にしてみました。 一例です。 ↓のようなSheetにユーフォームに入力したデータを コマンドボタンの「登録」をクリックすれば順次表示するような感じにしてみました。 画像のラベル部の文字は、ユーザーフォーム作成時に設定する テキストボックス・チャックボックスの「オブジェクト名」を表示しています。 そしてコマンドボタン(画像ではプロパティの「Caption」で「登録」としています)をフォーム内に配置し、それをクリックするとSheetの順次表示されるようにしてみました。 (オブジェクト名は「コマンド登録」にしています) フォームのコマンドボタンをダブルクリックし、↓のコードをコピー&ペーストしてみてください。 Private Sub コマンド登録_Click() Cells(Rows.Count, 1).End(xlUp).Offset(1).Select With Selection .Value = テキスト日付.Value .NumberFormatLocal = "m/d" If チェック1 = True Then .Offset(, 1) = 生産A.Value End If If チェック2 = True Then .Offset(, 2) = 生産B.Value End If If チェック3 = True Then .Offset(, 3) = 出荷A.Value End If If チェック4 = True Then .Offset(, 3) = 出荷B.Value End If End With テキスト日付 = "" チェック1 = False 生産A = "" チェック2 = False 生産B = "" チェック3 = False 出荷A = "" チェック4 = False 出荷B = "" テキスト日付.SetFocus Cells(Rows.Count, 1).End(xlUp).Offset(1).Select End Sub こんな感じですかね? 参考になれば良いのですが・・・m(__)m
その他の回答 (3)
- hallo-2007
- ベストアンサー率41% (888/2115)
品名は 本当に2つ?これから増えることはないの? 私だったら A B C D 日付 品名 生産数 出荷数 11/1 A 100 11/1 A 50 ・・・とかデータが入るようにフォーム上のボタンにVBAで機能を持たせます。 つまりユーザーフォーム上には Textbox で今日の日付が常に出ている。 Listbox で商品名が選択できる。 Listbox で出荷 或いは 生産 が選択できる。 Button を押せばデータの最後に 日付と商品名と 生産数或いは出荷数のどちらか がデータとして記録される ようなシートを機能を考えます。
お礼
参考にさせていただきます ありがとうございました
- rukuku
- ベストアンサー率42% (401/933)
先ほどの回答で敬称が抜けていました m(_ _)m
- rukuku
- ベストアンサー率42% (401/933)
こんばんは 補足要求です。 お力になれそうですが、ご質問の内容だけではどう回答して良いのか分からないので、状況をもう少し教えてください。 1.エクセルのバージョン(2003、2007など) 2.直接エクセルに入力するのではなく、ユーザーフォームを用意したいと思うのはなぜですか? 3.r21d21 はエクセルやエクセルマクロをどのくらい使うことが出来ますか?
補足
説明不足ですいません エクセルのバージョンはXP(2002?)で エクセルのマクロは 全くと言って良いほど素人で 色々なHPを見ながら勉強しているところです。 UserForm1にツール(コントロール)を配置しました。
お礼
大変 参考になりました。 ありがとうございました。