
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も見ています
-
VBA フォームのテキストボックスにセルの値を表示させたいが改行していたら改行もあわせて表示させたい
Excel(エクセル)
-
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
ExcelVBAでセルをクリックしてユーザーフォームを表示するには
Excel(エクセル)
-
5
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
6
VBAでユーザーフォームにセル値を表示させるには
Visual Basic(VBA)
-
7
ExcelVBAのユーザーフォームで一度保存したデータを同じフォームに呼び出して編集する方法
Visual Basic(VBA)
-
8
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
9
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
10
Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。
Visual Basic(VBA)
-
11
任意で選択したセルをテキストボックスに表示
Excel(エクセル)
-
12
VBAユーザーホームテキストボックスにカーソルを自動で表示したい
Visual Basic(VBA)
-
13
エクセルで検索結果をユーザーフォームに表示したいのですが
Excel(エクセル)
-
14
【エクセル】オプションボタンにセルの値を反映させるには
Visual Basic(VBA)
-
15
ユーザーフォームのテキストボックスに前回入力した値を表示する Excel
Visual Basic(VBA)
-
16
フレーム内のオプションボタンの選択結果をセルに書き出したい。 図のような預金種目というフレームにオプ
Visual Basic(VBA)
-
17
ユーザーフォームに日付を表示させる方法を教えてください。そして、実行したあとでも日付が変わるようなプ
Visual Basic(VBA)
-
18
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
19
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
20
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel ラジオボタンのリセット...
-
エクセル2003のチェックボック...
-
ユーザーフォームをショートカ...
-
UPS警告音を止めたい
-
excel 2000でのマクロボタン作成で
-
Access VBAでボタンの背景色を...
-
「ご処理進めて頂きますようお...
-
IQテストの数列
-
セックスレスの既婚女性は自慰...
-
スマホでサイトの画像を長押し→...
-
お家デートをしててハグを長い...
-
お客様から1MB未満の写真を送っ...
-
エクセルで、日付を入力すると...
-
「PC Helpsoft Driver Updated...
-
メルカリのメルカードで買い物...
-
取り消し線が入った文字を削除...
-
VBAのユーザーフォームのイメー...
-
VBAでCOPYを繰り返すと、処理が...
-
ff13の視点が悪すぎてすぐに自...
-
VBAでセルに値が入力されるまで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelシート上のマクロを登録し...
-
UPS警告音を止めたい
-
エクセルの画面にユーザーフォ...
-
【Excel VBA】マクロボタンを表...
-
入力済み、選択したセルに連動...
-
マクロを登録しているボタンが...
-
フォームコントロールから作っ...
-
マクロで作ったボタンのサイズ...
-
複数シートのボタンに同一の動...
-
Excel ラジオボタンのリセット...
-
Excelで、ボタンにコメントをつ...
-
オブジェクト名をVBAで指定...
-
エクセルで、オプションボタン...
-
ユーザーフォームをショートカ...
-
EXCELのマクロが 実行時エラー5...
-
エクセルでマクロボタンを押す...
-
エクセルでグループボックスを...
-
マクロ初心者です。 msgboxのre...
-
Accessのフォームでタブの色
-
excel スクロールしても常にボ...
おすすめ情報
後学の為に教えていただけたらと思うのですが、UserFormはわかりやすい名前に変更していいものと思っていましたがだめなんでしょうか?
そういう物と覚える物なのでしょうか?