質問: 検索結果を表示させるには??発展させて http://oshiete1.goo.ne.jp/qa3081314.html これでも十分仕上がったのですが、さらに発展をさせて使用したいのです 例 sheet1で a b c d e f g h 1入院日 氏名 術日 術眼 術式 日帰り? 主治医 部屋番号 26/1 佐藤 6/2 右 ○○ 入院 高橋 201 3 6/3 左 △△ 46/2 川端 6/2 右 ×× 入院 松橋 202 5 6/3 左 ×○ ※a2とa3、b2とb3、f2とf3、g2とg3、h2とh3はセルが結合している a4とa5、b4とb5、f4とf5、g4とg5、h4とh5はセルが結合している このような大元がありまして sheet2に 術日に応じて、名前・術眼・術式・日帰り等をオートフィルタではなく 関数でズラッと出せるようにしたいのですが、どうすれば良いのでしょうか ?? a b c d e f g 16/3として 2名前 術眼 術式 日帰り?? 主治医 部屋番号 3佐藤 左 △△ 入院 高橋 201 4川端 左 ×○ 入院 松橋 202 このように、sheet1で簡素化してセルを結合して表示しても、 sheet2ではセル結合してもしっかり反映して、検索結果を表示させたいのですが、どのような関数式を用いればよろしいでしょうか?? よろしくお願いします
回答: #2です。 sub test() dim rw1 as integer, rw2 as integer, rw3 as integer, rww as integer dim clm as integer km = array("名前", "術眼", "術式", "日帰り??", "主治医", "部屋番号") if sheets("sheet2").cells(1, 1) = "" then ret = msgbox("sheet2のa1セルに月日が入っていません。" & chr(13) & "処理を中止します。", vbokonly + vbexclamation, "警告") exit sub end if sheets("sheet2").range("a2:f65536").clearcontents for clm = 1 to 6 sheets("sheet2").cells(2, clm).value = km(clm - 1) next clm rw3 = 2 for rw1 = 2 to sheets("sheet1").range("c65536").end(xlup).row if sheets("sheet1").cells(rw1, 3) = sheets("sheet2").cells(1, 1) then for rw2 = rw1 to 2 step -1 if sheets("sheet1").cells(rw2, 1) <> "" then rw3 = rw3 + 1 sheets("sheet2").cells(rw3, 1).value = sheets("sheet1").cells(rw2, 2) for clm = 2 to 6 if clm <= 3 then rww = rw1 else rww = rw2 end if sheets("sheet2").cells(rw3, clm).value = sheets("sheet1").cells(rww, clm + 2) next clm exit for end if next rw2 end if next rw1 ret = msgbox("終了しました", vbokonly) end sub でいかがでしょう!!