
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
任意で選択したセルをテキストボックスに表示
Excel(エクセル)
-
8
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
9
ExcelVBAのユーザーフォームで一度保存したデータを同じフォームに呼び出して編集する方法
Visual Basic(VBA)
-
10
ユーザーフォームのテキストボックスに前回入力した値を表示する Excel
Visual Basic(VBA)
-
11
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
12
VBAユーザーホームテキストボックスにカーソルを自動で表示したい
Visual Basic(VBA)
-
13
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
14
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
15
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
16
エクセルVBA「リストボックスで選択した値をテキストボックスで変更してシート上セルに反映したい」
Excel(エクセル)
-
17
フレーム内のオプションボタンの選択結果をセルに書き出したい。 図のような預金種目というフレームにオプ
Visual Basic(VBA)
-
18
Excel VBA あるセルでENTERを押すと特定のセルへ移動したい
Excel(エクセル)
-
19
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
20
VBA フォームに入力された数値を検索条件としたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの画面にユーザーフォ...
-
Excelシート上のマクロを登録し...
-
【Excel VBA】マクロボタンを表...
-
オブジェクト名をVBAで指定...
-
APEXをパソコンでしようとゲー...
-
シート内のピボットテーブル ...
-
マクロを登録しているボタンが...
-
UPS警告音を止めたい
-
ペアーズを利用しようと メッセ...
-
エクセルVBA フォームへ動...
-
エクセルでグループボックスを...
-
エクセルで、オプションボタン...
-
至急 Fossil Gen6をメルカリで...
-
複数シートのボタンに同一の動...
-
入力済み、選択したセルに連動...
-
日報の休日ボタン(トグルボタ...
-
セックスレスの既婚女性は自慰...
-
「ご処理進めて頂きますようお...
-
IQテストの数列
-
お家デートをしててハグを長い...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelシート上のマクロを登録し...
-
UPS警告音を止めたい
-
マクロを登録しているボタンが...
-
【Excel VBA】マクロボタンを表...
-
Excelで、ボタンにコメントをつ...
-
入力済み、選択したセルに連動...
-
エクセルの画面にユーザーフォ...
-
複数シートのボタンに同一の動...
-
マクロで作ったボタンのサイズ...
-
オブジェクト名をVBAで指定...
-
エクセルで、オプションボタン...
-
EXCELのマクロが 実行時エラー5...
-
ユーザーフォームをショートカ...
-
Excel ラジオボタンのリセット...
-
フォームコントロールから作っ...
-
トグルボタンをオプションボタ...
-
エクセルでマクロボタンを押す...
-
VBAでオプションボタンなどそれ...
-
【Excel】行移動ボタンを沢山作...
-
ボタンを押しただけで発生する...
おすすめ情報
後学の為に教えていただけたらと思うのですが、UserFormはわかりやすい名前に変更していいものと思っていましたがだめなんでしょうか?
そういう物と覚える物なのでしょうか?