• 締切済み

エクセル フィルタの抽出結果をユーザーフォームで

ネット調べてみてるのですが、該当するものが見つからず困っています。是非ご協力ください。お願いします。 顧客リストがあり、それにフィルタをかけ、抽出結果を1件づつユーザーフォームで参照し、必要があれば1件づつに手を加えたい(タイムスタンプ等の入力)のですが、どこか解説の載っているサイトをご存じないでしょうか? そもそも抽出結果を上から1件づつ見ていくユーザーフォームは作成できるのでしょうか?

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

エクセルのシートへの入力も、人間がセル位置を決めて、そこにデータを入力する。付加して新項目データを入力する場合なら、同行に主項目(例えば氏名)データもみえている。ユーザーフォームでの入力と変わらない。それなのに(初心者には)難しことをなぜ考えるのか。 他人に使ってもらうもの(仕組み)を作るため、とかいう理由も過去質問にあったが、ここに質問しているようなレベルで、他人に使ってもらうようなプログラムを(それも仕事がらみの)作るのは危険である。 下記コードなどは、短くないが、データはチェックが出来てない。実際では必要だろう。 ーー まずは既に回答の在る、データーユーザーフォームの利用がある。 ーー それ以外はユーザーフォームの利用はVBAを使うことが前提だろう。 「アクセス」のようにテーブル(クエリ)と連結した、テキストボックスを自動で作れないようなので複雑化する。。 参考までに 例データ Sheet1のデータ A1:D6 氏名 住所 年令 車所有(現在空白、追加項目) 山田 相模原市 33 小島 厚木市 31 大田 横浜市 35 鈴木 海老名市 36 大木 横須賀市 36 ーー 車所有の情報を追加するのが主目的。 データの1行分を1行ずつ、ボタンクリックで(下に)すすめる。 車所有以外も変更・訂正してボタンをクリックすると、変更される。 ーー VBE画面でー挿入ーユーザーフォーム テキストボックス4つ、コマンドボタン1つ貼り付け。 フォーム 上に    (テキストボックスの四角 空欄)  ←氏名表示用テキストボックス    (テキストボックス 空欄)  ←住所表示用テキストボックス    (テキストボックス 空欄)    (テキストボックス 空欄)         ■ <--コマンドボタン 普通は、テキストボックスの左には見だし(氏名など)をラベルで表示したりする(略) ーー コード ユーザーフォームの「コードの表示」の コマンドボタンのクリックイベントに Private Sub CommandButton1_Click() Static f Static i Static w 'ーーー If f = "" Then ' 初回のみ i = 1 '最初の表示第2行目から w = 1 '表示モードから GoTo p2 '最初は表示モードから End If p1: '--更新モード If f <> "" Then '初回はスキップ If w = 0 Then '更新モードなら Cells(i, "A") = TextBox1.Text Cells(i, "B") = TextBox2.Text Cells(i, "C") = TextBox3.Text Cells(i, "D") = TextBox4.Text w = 1 '次は表示モード '--終わり判定 If i >= Range("A65536").End(xlUp).Row Then MsgBox "終わり" Exit Sub End If '--- End If End If '--- p2: i = i + 1 '次行 w = 1 '次は表示モード f = "n" '最初ではないに設定 If w = 1 Then '表示モードなら '---- TextBox1.Text = Cells(i, "A") TextBox2.Text = Cells(i, "B") TextBox3.Text = Cells(i, "C") TextBox4.Text = Cells(i, "D") w = 0 '次は更新モード End If f = "n" '最初ではないに設定 End Sub ーー メニューの「実行ーSUB/ユーザーフォームの実行」で ユーザーフォームが現れる。クリックすると、第2行目のデータが現れ、テキストボックスの中を、変更なりしてボタンをクリックすると、その状態でシートに保存され、次の行のデータがテキストボックス群に出てくる。 後戻りは出来るように考慮してない。 私は相当苦労したので、初心者には難しいと思う。

mattco
質問者

お礼

かなり複雑なことになってしまうのですね。 ちょっと手に負えるか解かりませんが、折角筋道たてていただいたのでチャレンジしてみます。 自分のためにこれ程ご尽力いただき、大変感激しております。 本当にどうもありがとうございました。 行き詰ったらまたお願いします。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 表内の任意セルを選択→データ→フォームでお試しください。 因みに操作はエクセル2003以下ですので相違する場合は、web検索して下さい。

mattco
質問者

お礼

どうもありがとうございます。 自分もその手を考えていたのですが、フォームだと文字が途中で欠けてしまうんですよね 涙)

関連するQ&A