
VBA超初心者です。顧客リストを作成中です。
検索フォームと再登録フォームとで分けてユーザーフォームを作っています。
検索フォームのListBox1にはSheet1の顧客データを反映しています。
修正が必要なListBox1の値をDoubleClickし、「再登録フォーム」のTextBoxに値を転記。
ここまでは出来ています。
再登録フォーム内のTextBoxでデータを修正し、再登録ボタンを押して再度Sheet1の同じ箇所に収めたいです。現時点では再登録ボタンを押すとSheet1の1行目に上書きされてしまい困っています。
自分なりにやってみましたが先に進めず挫折寸前です。
どうかご教示願います。
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
With ListBox1
a = .ListIndex '選択した行番号を取得
再登録フォーム.実施日TextBox.Text = .List(a, 0)
再登録フォーム.団体名TextBox.Text = .List(a, 1)
再登録フォーム.幹事名TextBox.Text = .List(a, 2)
再登録フォーム.所属先TextBox.Text = .List(a, 3)
再登録フォーム.役職TextBox.Text = .List(a, 4)
再登録フォーム.郵便番号TextBox.Text = .List(a, 5)
再登録フォーム.住所TextBox.Text = .List(a, 6)
再登録フォーム.TELTextBox.Text = .List(a, 7)
再登録フォーム.FAXTextBox.Text = .List(a, 8)
再登録フォーム.携帯TextBox.Text = .List(a, 9)
再登録フォーム.Show
End With
End Sub
No.3ベストアンサー
- 回答日時:
こんばんは
既にある回答と重複しますが、
ListBox1はどのように作成していますか?
ListBox1リストの作り方にもよりますが
作成時の行№と 変数a の差異はどのような値でしょうか?
セルからループなどで取得している場合
差異=.ListIndexが0の時に入るデータの行№
再登録ボタン
worksheets("Sheet1").cells(a+(差異),カラム1).value=再登録フォーム.実施日TextBox.Text
変数aを使用するのならモジュールレベル変数で宣言かな・・
不特定セルから加工(一定でない範囲)などを行って、条件によって取得している場合は、加工方法により違ってきますので リスト登録した時の(変更前の)値を変数(配列)などに入れ、その値で対象範囲をFindで探すとか、
または、ListBox取得時のRangeを同様にモジュールレベル変数で記録して出力するとか・・少し面倒ですかね
No.2
- 回答日時:
こんばんは。
シートに上書きされてしまう部分のコードと、Listにセルのデータを取り込む
部分のコードがないので、推測になりますが、
シートからListに登録した時の情報が.ListIndexと同じ様なら、この値を
もとに、cells(.ListIndex+〇,列).Value = "保存したいデータ"の様な記載で
できるのでは?と思います。 〇は、1行目はタイトルになる事が多いのと、
Indexは0から始まるかと思うので、+2とかになるのかな?と思います。
ここは、質問者さんのシートのレイアウトなどで変わってくるので。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。
Visual Basic(VBA)
-
ListBoxを選択したデータ編集② VBA
Visual Basic(VBA)
-
エクセルVBA「リストボックスで選択した値をテキストボックスで変更してシート上セルに反映したい」
Excel(エクセル)
-
-
4
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
5
エクセルVBAリストボックスに表示された検索結果をクリックして、該当するセルをアクティブセルにしたい
Excel(エクセル)
-
6
Excel vba ListBoxについて
Excel(エクセル)
-
7
UserForm1.Showでエラーになります。
工学
-
8
ExcelVBA でリストリストボックスに列見出しをコーディングでつける
Excel(エクセル)
-
9
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
10
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
11
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
12
エクセルVBAでマルチページの切り替え方法の件で
Excel(エクセル)
-
13
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
14
リストボックスをクリックすると、他フォームに値代入
Excel(エクセル)
-
15
リストボックス 何も洗濯されてない場合はNullではなく"?
Visual Basic(VBA)
-
16
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
17
EXCELのリストボックスを選択した行が何行目か
その他(プログラミング・Web制作)
-
18
Excel・VBA フォーム入力で空欄によるエラーをなくすには?
Excel(エクセル)
-
19
リストビューの項目の内容を変更する方法は?
Visual Basic(VBA)
-
20
エクセル VBA ユーザーフォーム リストボックスで選択した値をテキストボックスに自動表示
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleフォーム・複数人の申し...
-
Accessでフォームから別フォー...
-
VBA リストボックスをダブルク...
-
アクセス フォームが存在する...
-
VBAにてメッセージボックスを最...
-
Accessでサブフォームの合計を...
-
csvに保存しているデータをURL...
-
ACCESS 表形式フォームで1レ...
-
サブフォームの新規レコードに...
-
C#で作成したDLLをDelphiで呼ぶ...
-
Access フォーム自動終了
-
いつもお世話になっています VB...
-
ExcelVBAでユーザーフォーム内...
-
アクセスでフォームで入力 複...
-
Access:ストアドプロシージャ...
-
dbOpenTableとdbOpenDynaset
-
サブフォームのコントロールの...
-
ACCESS VBAサブフォーム(DATA S...
-
VBのEXEファイルのサイズを小さ...
-
VBプログラムの終了
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Googleフォーム・複数人の申し...
-
VBA リストボックスをダブルク...
-
Accessでフォームから別フォー...
-
アクセスVBA フォームのス...
-
サブフォームのイベント取得
-
VBAにてメッセージボックスを最...
-
サブフォームの行ごとにコンボ...
-
ExcelVBAでユーザーフォーム内...
-
サブフォームの新規レコードに...
-
フォーム上の全てのコントロー...
-
accessで2つ以上のフォームを起...
-
Accessのトグルボタンでサブフ...
-
ユーザーフォーム上にアイコン...
-
ExcelVBAでフォーム内でブック...
-
PDFフォームに本日の日付を自動...
-
リストボックスの選択解除
-
dbOpenTableとdbOpenDynaset
-
VBAでフォームのスクロールバー...
-
Access サブフォームでの複数行...
-
フォームで複数のチェックボッ...
おすすめ情報