- ベストアンサー
エクセルDBでclickして個別シートへ飛ぶ
- エクセルで個別表示用のシートへの飛び方を知りたい
- 一覧表のページから自動的に個別表示用のシートへ遷移したい
- 具体的な方法やサイトについて教えてほしい
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
質問の趣旨がよくわからないのだが、無駄とも思うが、自分の関心でやって見た。 もしVBAをつかったことがあるなら、まずテスト的にやってみて。 VBAが経験もなく、判らなければ、多分、本質問の件をVBAを使わないでやる方法はないと思うから、あきらめること。 一般に仕事でエクセルをつかうなら(特にある業務のために、他人に使わせるなら)、VBAの利用は必須と思う。 下記モデルケースで、やってみて、そういうタイプの問題なら、 VBAを勉強して、改良したら。 (下記は、余り手の込んだつくりに、してないので、そのままでは使えないだろうが、仕組みの見本のつもり)。 例データ Sheet1(別の名前のシートだとダメ) A1:I7 氏名 年齢 住所1 住所2 性別 趣味 学歴 職歴1 職歴2 今井 君子 29 横浜市 南区 女子 音楽 短大卒 養護施設 ライター 大島 かおり 25 東京都北区 本町 女子 料理 大学卒 出版社 事務職 木村 みな 31 東京都港区 北町 女子 刺繍 大学卒 販売院 事務職 中島 徳子 26 東京都新宿区 寺町 女子 料理 大学卒 書店員 事務職 木村 みな 31 東京都港区 北町 女子 刺繍 大学卒 販売院 事務職 中島 徳子 26 東京都新宿区 寺町 女子 料理 大学卒 書店員 事務職 A列のどの行でも(1セルだけ選択のこと。本例では名前のセル)マウスで選択すると ユーザーフォームが現れて、そこのテキストボックスにデータが表示される。 見終わったら、右上部のXをクリックすると、閉じて消える。 この繰り返しで利用する。 ーー 事前準備は (1)ユーザーフォームを1つ(手動で)作る(名前は「UserForm1」であること。何度も作っては消していると名前の末尾1が、2,3・・に変わるので)。 ユーザーフォームを作る操作は、開発ー挿入ーユーザーフォームで現れる。 ユーザーフォーム上にテキストボックスを作るのは下記プログラムTest01がおこなう。 (2)(引き金)トリガーとなる、セルを選択する操作時に反応する Sheet1のSelection-Changeイベントを使うので 「プロジェクトエクスプローラー」を表示する。 その中のSheet1をクリックして、WorkSheet-SelectionChangeイベントを選択して、」そこに下記プログラムを作る(。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' MsgBox Target.Column If Target.Column <> 1 Then Exit Sub r = Target.Row() test01 (r) End Sub を作る(今回はコピペ) (3)標準モジュールに、SheetIのデータで、ユーザーフォームに表示するプログラムを作る。こんかいはコピペする。 Sub test01(r) rc = Range("Z1").End(xlToLeft).Column 'MsgBox rc For i = 1 To rc '--セルの値を表示するテキストボックスを作成し、セル野値内容もセット Set txt = UserForm1.Controls.Add("Forms.textbox.1") txt.Top = (i - 1) * 20 txt.Left = 100 txt.Name = "text" & i txt.Text = Cells(r, i) '--項目見出しラベル作成 Set lbl = UserForm1.Controls.Add("Forms.label.1") lbl.Top = (i - 1) * 20 lbl.Left = 10 lbl.Name = "lbl" & i lbl.Caption = Cells(1, r) Next i UserForm1.Height = 300 UserForm1.Show End Sub (4)実行する操作は、Sheet1の画面を表示して、A列のどの行でもクリックする。 すると、ユーザーフォームに選択した行のセルの内容が、表示される
その他の回答 (2)
- SI299792
- ベストアンサー率47% (788/1647)
マクロでもいいのですね。 どのような表なのか不明なので、参考ホームページにある表と同じとして説明します。 一覧表のIDはA2から始まっている 個別表示用のB1にIDがある 個別表示用のシート名は「個別表示用」 とします。 開発タブでVisual Basicを選んで、「一覧表」を選択し以下のマクロを書きます。 ' Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' If Target.Row > 1 And Target.Column = 1 Then [個別表示用!B1] = Target Target.Offset(0, 1).Select Sheets("個別表示用").Select End If End Sub これで、一覧表のA列をクリックすれば、「個別表示用」のB1に項目がコピーされます。
- imogasi
- ベストアンサー率27% (4737/17070)
質問の趣旨がよくわからんが、(質問の表現が普通と違うように思うから) エクセルの仕組みの「データフォーム」をやってみたらどうか。 Googleで「エクセル201X データフォーム」で照会し https://support.office.com/ja-p/Article 長いので以下略 などを読んで、やってみたら。 「クイックアクセスツールバー」にフォームの四角いアイコンを表示することから始める。結構わかりにくいが。(2003までならメニューの「データーフォーム」で取り掛かれたが。) シートの第1行に項目見出しを入れ、第2行目からデータを入れる。 フォームは、シートのデータを作成(入力)用の仕組でもあるが、表示用でもあり、検索用にもなる。 氏名 年齢 住所1 住所2 性別 趣味 学歴 職歴1 職歴2 今井 君子 29 横浜市 南区 女子 音楽 短大卒 養護施設 ライター 大島 かおり 25 東京都北区 本町 女子 料理 大学卒 出版社 事務職 木村 みな 31 東京都港区 北町 女子 刺繍 大学卒 販売院 事務職 中島 徳子 26 東京都新宿区 寺町 女子 料理 大学卒 書店員 事務職 の様にね。 検索は、データ範囲を指定しておいて、検索条件ー クリアー 名前ー 大島かおり 次を検索 で「大島かおり」のデータが出る。 趣味が「料理」の人を探す場合は「次を検索」を続けると大島、中島が順次出る。 出力が、「次を検索」をクリックしても変わらなければ該当はそれでおしまい。 ーー 勿論VBAで「ユーザーフォーム」のしくみを使い、質問のようなことはできるが、VBAでも上級編で、解説(書)の理解やVBAコード作成は、おいそれとはできまい。教える人が必要だろう。 やりたい、というだけではどうにもならない。これぐらいの複雑な分野になると 、ここのコーナーに回答を書いてもらってそのままコピペしてやるのは、むつかしい。それができる近くまで、VBAに関連したことを含めて、勉強してないと無理だと思う。 >自分でも調べてみますが 調べて判る、それができればコンピュータ向きの、立派な人だ。