
excel2007 Winndows2007です。
添付表例、A5セル「客先名:い」を選択しコマンドボタンで「行呼出し」をクリックしたらA5~D5の
セル連動した行のレコードデータをユーザーフォームで呼び出しC5セルの価格20を30に変更入力しユーザーフォームの「更新ボタン」をクリックし更新を終了させたいのです。
本屋で参考書を何冊も読みましたが最終行から1つ下の行に新規入力するというのはありましたが入力済み行をユーザーフォームで呼び出しある箇所を修正し更新するのがなく宜しく御願いします。

No.2ベストアンサー
- 回答日時:
こんな感じではいかがでしょうか?
--------------------------------------------------------------------------
Sub 行呼出し()
UserForm1.Show
End Sub
--------------------------------------------------------------------------
Private Sub UserForm_Activate()
客先名.Value = Cells(Selection.Row, 1).Value
製品名.Value = Cells(Selection.Row, 2).Value
価格.Value = Cells(Selection.Row, 3).Value
数量.Value = Cells(Selection.Row, 4).Value
End Sub
Private Sub キャンセル_Click()
UserForm1.Hide
End Sub
Private Sub 更新_Click()
Cells(Selection.Row, 1).Value = 客先名.Value
Cells(Selection.Row, 2).Value = 製品名.Value
Cells(Selection.Row, 3).Value = 価格.Value
Cells(Selection.Row, 4).Value = 数量.Value
UserForm1.Hide
End Sub
--------------------------------------------------------------------------
※「Sub 行呼出し()」は「行呼出し」のボタンに登録してください。
※ テキストボックスのオブジェクト名は「客先名」「製品名」「価格」「数量」にしてあります。
※ ボタンのオブジェクト名は「キャンセル」「更新」にしてあります。
※ ユーザーフォームのオブジェクト名は「UserForm1」のままです。
回答有難う御座います。いただいたコード試してみました。
フォームから入力し更新クリックするとセルに反映されるのですが、「行呼出し」ボタンをクリックしても既に入力されているセルの値を呼び出す事が出来ませんでした。
No.7
- 回答日時:
補足コメントについて
もちろん変更してもOKです。呼び出すときにそのオブジェクト名で呼び出せば良いだけです。
「入力表」でしたら「UserForm1」を「入力表」に全て変えるだけです。
No.6
- 回答日時:
以下はどこに登録されていますか?
----------------------------------------------------------
Private Sub UserForm_Activate()
客先名.Value = Cells(Selection.Row, 1).Value
製品名.Value = Cells(Selection.Row, 2).Value
価格.Value = Cells(Selection.Row, 3).Value
数量.Value = Cells(Selection.Row, 4).Value
End Sub
----------------------------------------------------------
「キャンセル_Click()」と「Sub 更新_Click()」と同じユーザーフォームのモジュールに書き込まれていないといけないのですが、標準モジュールに書き込まれていたりしませんよね。
表示されるようになりました。
原因は「UserForm」の記述を自分でわかりやすいようにと「入力表」と書き換えていたためでした。
こんな所でつまづくなんて未熟者です。いろいろお手数お掛けして申し訳御座いませんでした。
No.5
- 回答日時:
No.4 追補
何らかの方法で「ユーザーフォーム」が先に表示されてしまうがやめ方が判らなくて、いちいち「キャンセル」ボタンを押すのが面倒とか言うことならば「行呼出し」ボタンを押したときに一度閉じるようにしましょうか?以下のように「UserForm1.Hide」を1行足すだけで出来ます。
--------------------------------------------------------------------------
Sub 行呼出し()
UserForm1.Hide
UserForm1.Show
End Sub
--------------------------------------------------------------------------
・「行呼出し」ボタンに「行呼出し」マクロはチャント登録されていますか?
⇒標準モジュールに登録されています。
・「ユーザーフォーム」が先に表示された状態で「行呼出し」ボタンをクリックしていませんか?
(先に表示されないようにするか「キャンセル」ボタンで一度消してください)
⇒先に表示はされてはいません。
「行呼出し」ボタンクリックしてから「ユーザーフォーム」が表示されますがテキストBoxは空白になっています。そこに入力して「更新」すればセルに表示されます。
しかし別の行のセルを選択しても先程フォームに入力したデータが表示されてしまいます。
No.4
- 回答日時:
No.2 へのお礼について
・「行呼出し」ボタンに「行呼出し」マクロはチャント登録されていますか?
・「ユーザーフォーム」が先に表示された状態で「行呼出し」ボタンをクリックしていませんか?
(先に表示されないようにするか「キャンセル」ボタンで一度消してください)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
教えて!goo限定!! 電子コミック1000円分ギフトコードプレゼント!!
新規無料会員登録で抽選で1000名様に電子コミック1000円分ギフトコードプレゼント!!
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
ExcelVBAのユーザーフォームで一度保存したデータを同じフォームに呼び出して編集する方法
Visual Basic(VBA)
-
VBAでユーザーフォームにセル値を表示させるには
Visual Basic(VBA)
-
4
ユーザーフォームのコピー?
Excel(エクセル)
-
5
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
6
ExcelVBAでセルをクリックしてユーザーフォームを表示するには
Excel(エクセル)
-
7
エクセルVBA「リストボックスで選択した値をテキストボックスで変更してシート上セルに反映したい」
Excel(エクセル)
-
8
VBA 複数のセルの値をテキストボックスに表示する
Excel(エクセル)
-
9
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
10
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
11
ユーザーフォームのTextに数値を入れるとセルにエ
Excel(エクセル)
-
12
ユーザーフォームでTextBox1にカーソルを移動したい
Excel(エクセル)
-
13
エクセルVBAリストボックスに表示された検索結果をクリックして、該当するセルをアクティブセルにしたい
Excel(エクセル)
-
14
VBAでシートからコンボボックスにデータを設定する方法
Visual Basic(VBA)
-
15
ユーザーフォームへのデータ入力を繰り返す方法
Visual Basic(VBA)
-
16
テキストボックスにセルの値を複写する方法
Visual Basic(VBA)
-
17
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
18
UserForm1.Showでエラーになります。
工学
-
19
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
20
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
関連するQ&A
- 1 ユーザーフォームでセルを選択
- 2 特定のセルを選択した場合にユーザーフォームを表示したい
- 3 エクセルVBA ユーザーフォームコントロールのチェックボックスで複数選択した項目名をそのままセルに反
- 4 【Excell VBA】ユーザーフォーム上のスプレッドシートのセルを選択したときのイベント
- 5 エクセルで複数のセル選択をした後、選択したセルの1つを選択解除したい
- 6 Excel2007で一つの文字列を選択すると他のセルはそれとは別の文字列が選択できるようにしたいです
- 7 Excelvba2013で、ユーザーフォームから別のユーザーフォームを呼び出して変数を使用する方法
- 8 Excel VBAのユーザーフォームについて質問致します 別のExcelを編集中にユーザーフォームの
- 9 エクセル 計算式も入っていないのに 別シートの同一セルに連動 入力されてしまう
- 10 エクセル ユーザーフォーム 連続したデータ表示 結合したセル
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
エクセルでマクロボタンを押す...
-
5
Excelシート上のマクロを登録し...
-
6
excel スクロールしても常にボ...
-
7
エクセルの画面にユーザーフォ...
-
8
Dドライブのアクセス許可
-
9
EXCELの塗りつぶしのボタ...
-
10
複数シートのボタンに同一の動...
-
11
iMovieで取り込んだビデオ映像...
-
12
入力済み、選択したセルに連動...
-
13
ユーザーフォームをショートカ...
-
14
YouTube見てるとたまに勝手にSi...
-
15
Excelで検索ボタンを作るには
-
16
エクセルで、オプションボタン...
-
17
ノートパソコンの操作について...
-
18
excel 2000でのマクロボタン作成で
-
19
【Excel】難しいのですが、献立...
-
20
AccessVBAでオプションボタン・...
おすすめ情報
公式facebook
公式twitter
後学の為に教えていただけたらと思うのですが、UserFormはわかりやすい名前に変更していいものと思っていましたがだめなんでしょうか?
そういう物と覚える物なのでしょうか?