ここから本文です

EXCEL ユーザーフォームを入力用かつ編集用として利用する

caldinaboy2005さん

2012/2/2811:53:48

EXCEL ユーザーフォームを入力用かつ編集用として利用する

データ入力用のユーザーフォームを作成しました。テキストボックス5個コンボボックス3個です。現在は入力用として使用していますが、データ入力後の修正に同じユーザーフォームを使用できない方試行錯誤しています。シート内のデータを各テキストボックス・コンボボックスに反映し、修正後、「修正」などのコマンドボタンをクリックすることで編集できるようなものがあるとうれしいです。

いろいろと試しましたが、うまくいきません。よろしくお願いいたします。

閲覧数:
4,966
回答数:
3
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

kei_jun_kuuさん

2012/2/2814:48:36

caldinaboy2005さん

シート配列が見えないので、考え方ですが…
上の宣言セクションにDim myRow As Longなどで変数宣言して、
ユーザーフォームに「抽出ボタン」を作っておいて、
データが重複しない列(A列として)に入力するテキストボックス(TextBox1として)に、修正するデータを入力して、
「抽出ボタン」をクリックしたときのイベントで、MATCH関数で当該セルの「行」を取得して、
ユーザーフォームに表示させてから、訂正します。
その後に「修正登録」ボタンをクリックして、先ほどのMATCH関数で得た行に戻します。

適当ですが、、

Option Explicit
Private myRow As Long
Private Sub CommandButton2_Click() '抽出ボタン
Dim myData As Long
On Error Resume Next
If TextBox1.Value <> "" Then
myData = WorksheetFunction.CountIf(Columns(1), TextBox1.Value)
If myData = 1 Then
myRow = WorksheetFunction.Match(TextBox1.Value * 1, Columns(1), 0)
End If
End If
TextBox2.Value = Cells(myRow, 2).Value
TextBox3.Value = Cells(myRow, 3).Value
ComboBox1.Value = Cells(myRow, 10).Value
ComboBox2.Value = Cells(myRow, 11).Value
ComboBox3.Value = Cells(myRow, 12).Value
End Sub

Private Sub CommandButton3_Click() '修正登録ボタン
Cells(myRow, 2).Value = TextBox2.Value
Cells(myRow, 3).Value = TextBox3.Value
Cells(myRow, 10).Value = ComboBox1.Value
Cells(myRow, 11).Value = ComboBox2.Value
Cells(myRow, 12).Value = ComboBox3.Value
End Sub

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

siogetusiさん

2012/2/2814:01:49

移動ボタンをクリックすることで、例えばA列を上下に移動することにすれば、次の様なサブルーチンでフォームに読み込めます。
Sub yomikomi()
TextBox1.Value = Selection.Value
TextBox2.Value = Selection.Offset(, 1).Value
End Sub
フォームに何らかが読み込まれれば、データのある行なので変更、何ら読み込まれていない場合は新規入力ということでボタン一つで流用できます。
もしA列以外がアクティブな場合もあるので、Initializeイベントで強制的にアクティブセル行のA列に持っていくといったことも必要にはなるかと思います。

jetblackersさん

編集あり2012/2/2812:26:43

ユーザーフォームのControlSourceプロパティを使うとお互いの値がリンクされ参照、編集に使えます。この場合ボタン操作は不要です。設定の仕方は私の過去の質問にあります。
もう一つは、
テキストボックス=セル
となっているところを左右入れ替えるて、テキストボックスに表示させてから編集し入力ボタンで入力というもの。この場合参照ボタンのクリックイベントなんかで操作すると良いと思います。
※後半修正しました。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

5文字以上入力してください

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。