| すぐマク YNxv982 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| 名簿から検索して別のシートに貼り付けるには? |
|
|
|||
|
どんなシステムにしたいのか実にはっきりと、つかんでみえますね。
「エクセル97VBAは初心者」でも、システム経験はお有りと思います。 私は、この質問のすべてにお答えすることはできないので、申し訳ないですが@を中心にして、A以下はアドバイスと させてください。 なお、以下の説明は Excel95で行いましたが、Excel97でも共通と思います。 [質問@の回答(例)] あなたが転記に成功した「ユーザーフォーム1」とはメニューバーのデータのフォーム(※)のことかと思いますが、 @の「ユーザーフォーム」が何か、私にはわかりません。 この回答は、シート2に「検索」ボタンを追加し、押されると検索項目を入力するためのダイアログを映し出す方法で進めました。
上図のH〜J列はダイアログとリンクするセルで、任意のシートに設けれます。
右図の「一時」シートは、抜き出し作業に使う白紙のシートです。ダイアログボックスで会員番号、名前、電話番号のどれか1つを入力して「OK」ボタンを押すと、検索して結果をシート2のA〜F列に表示することにします。 マクロの詳細は「検索して別のシートに貼り付ける」を見てください。 サンプルマクロ 「名簿管理」をダウンロード すれば 実際に動かして見れます。 [質問Aのアドバイス] ダブルクリックにより2行目のデータをユーザーフォーム2に表示するためには、複雑なマクロが必要になると思います。 Excelのヘルプのトピックの検索でキーワードに「on」と入力して「OnDoubleClick プロパティ」と「イベントが発生したときにプロシージャを実行する」 をじっくり研究してみてください。 あまりにも難しいようでしたら、代替案として、シート2の検索ボタンの隣りに「フォーム」ボタンを作っておき、押されるとフォーム(※)を映し出す方法が考えられます。 [質問BCのアドバイス] 修正または削除ボタンが押されるたびに、シート1に修正内容または削除を反映してシート2と共に上書きしようとすると、マクロが複雑になりそうですし、 作業中の不測のトラブルによりシート1が破壊される場合もあり得ましょう。 すべてのデータの処理が終るまでシート2だけで作業すれば安全です。 この場合は検索結果でシート2を作る段階で、検索キーを逆転させてシート1を検索し結果をシート3に貼り付けておきます。 そして、シート2の検索ボタンの隣りに「反映」ボタンを設けておき、それが押されたらシート1の値をクリアしてから、シート3とシート2の内容をシート1に転記します。 |
| http://www.geocities.jp/happy_ngi/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |