『オートフィルタ抽出後データ先頭セルの選択後にその選択セルを特定のセルに入力させるにはどの様に指示したら良いでしょう? 』(せり) どうかご教示下さい オートフィルタ抽出後データ先頭セルの選択後にその選択セルを特定のセルに入力させるにはどの様に指示したら良いでしょう? オートフィルタ抽出後データ先頭セルの選択は↓のものを入れています。(うまく走っていませんが…) Range("A2:A" & 最終行 + 1).SpecialCells(xlCellTypeVisible).Areas(1).Cells(1).Select Range("A65536").Select '必須項目のA列のシート最下行を選択 Selection.End(xlUp).Select '入力のあるセルまでジャンプ 最終行 = Selection.Row '選択セルの行数を取得 因みに、ある列の項目すべてでオートフィルタをしオートフィルタの表示順にプリントアウト出来る↓のVBAの★のところに入力しようと思います。 Sub test() 'この行から Dim i, j As Long Dim ws1, ws2 As Worksheet Set ws1 = Worksheets("sheet1") '←Sheet名は実際のSheet名に! Set ws2 = Worksheets("sheet2") ws2.Cells.Clear For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row If WorksheetFunction.CountIf(Range(ws1.Cells(1, 1), ws1.Cells(i, 1)), ws1.Cells(i, 1)) = 1 Then ws2.Cells(Rows.Count, 1).End(xlUp).Offset(1) = ws1.Cells(i, 1) ★ End If Next i j = ws1.Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To ws2.Cells(Rows.Count, 1).End(xlUp).Row Range(ws1.Cells(1, 1), ws1.Cells(j, 4)).AutoFilter field:=1, Criteria1:=ws2.Cells(i, 1) ws1.PrintOut Next i End Sub 'この行まで < 使用 Excel:Excel2013、使用 OS:Windows7 > ---- 私が勘違いしているだけなのかもしれませんが >オートフィルタ抽出後データ先頭セルの選択後にその選択セルを特定のセルに入力させる 1)★の位置は、まだオートフィルタ実行前ですが? 2)特定セルとは? (マナ) 2015/06/02(火) 23:46 ---- うまく走ってないのは入力の位置のせいだったんですね 理解できていませんでした。 ws1.PrintOut の前にオートフィルタ抽出後データ先頭セルの選択させるプログラムを入力させれば良いでしょうか? 特定のセルとは、すでにVLOOKUPが組んでるセルで そのセルに入力すると他のセルも反映します (せり) 2015/06/02(火) 23:57 ---- ws1.PrintOut の前に、特定セル=ws2.Cells(i, 1) でできませんか? (マナ) 2015/06/03(水) 00:03 ---- 出来ませんでした オートフィルタ抽出後データ先頭セルの選択で 一行目のタイトル行を飛ばしたい場合どうすればいいでしょう? タイトル行をずっと選択してしまいます (せり) 2015/06/03(水) 12:25 ---- 特定セルがどこのセルかわかりませんが 仮に、セルF1だとしたら、 Range(ws1.Cells(1, 1), ws1.Cells(j, 4)).AutoFilter field:=1, Criteria1:=ws2.Cells(i, 1) ws1.Cells(1,6)=ws2.Cells(i, 1)   '★追加はこれだけ ws1.PrintOut でできませんか? (マナ) 2015/06/03(水) 20:45 ---- 走ってはいますが、参照して欲しいセルがオートフィルタで毎回違うのですが拾ってないようです 実際に参照してほしいのはws1の2行目なので ws1.Cells(1,6)=ws1.Cells(i, 2) としているのですが、iでオートフィルタ毎になるはずなのですが出来ませんでした (せり) 2015/06/04(木) 12:28 ---- コードの元はこちらで公開されているものを参考にされているのかと想像します。 http://rmoon3.seesaa.net/category/19068932-1.html   > 実際に参照してほしいのはws1の2行目なので > ws1.Cells(1,6)=ws1.Cells(i, 2)   ws1.Cells(i, 2) が何を返しているのかは、確認されましたか? なんとなく 「2行目」を参照したいというのに変更後のコードは「2列目」を指定しているようですが、 ここに勘違いはありませんか?   勘違いがなく、フィルタ後の先頭行の2列目(隣の列?)の値を拾いたいとしている場合、 最初に示された下記コード   > Range("A2:A" & 最終行 + 1).SpecialCells(xlCellTypeVisible).Areas(1).Cells(1).Select   を活用し、Offsetで2列目を見るようにする事で対処できそうですが これの読み替えがうまく出来ていないとかそういう事ではなかろうかと想像してみます。   上記を踏まえ、参考になるであろう記述を示してみます。   Debug.Print Range(ws1.Cells(2, 1), ws1.Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeVisible).Areas(1).Cells(1).Offset(, 1).Address   この記述でもある条件の場合は期待するセル位置を返さないなどがある事までは確認していますが そこまでのフォローはしないので触って確かめてみてください。 (ご近所PG) 2015/06/04(木) 15:58 ---- 間違えました 2列目のタイトルセルを除いた先頭セルを選択したかったのです もっとスマートなプログラムでできそうな気がしてきました Sheet2が要らないし また詳しくアップしたいと思います (せり) 2015/06/04(木) 19:20 ---- 具体的な表としては、以下シート”2015.4月”例です    A     B    C    D   E   F 1                        2         F2■←vlookup設定セル 3 4タイトル1 タイトル2 ・・・・ 5 123    aaa 6 123 aaa 7 123 aaa 8 234 bbb 9 234 bbb 10 345 ccc 11 345 ccc 12 345 ccc 13 456 ddd 14 456 ddd 15 456 ddd : : : : : : オートフィルタをしオートフィルタの表示順にプリントアウト出来るというのは一様出来ているように思えるのですが、やはりF2のセルにオートフィルタ抽出後B列の先頭セル選択後にその選択セルを入れるという部分が難しく Sheet2にシート”2015.4月”のB列(タイトルも含む)をコピーしてそれをF2にへリンクさせようと組んでみました。そこでも、タイトルを含んで表示してしまい、困っています。 以下に今走らせているソースを書きますので、これに手直しをしていただけるとありがたいです。 お手数ですがお願いします。 Dim i,j,As Long Dim ws1,ws2 As Worksheet Set ws1 = Workseet("2015.4月分") Set ws2 = Workseet("Sheet2") ws2.Cells.Clear For i = 2 To ws1.Cells(Rows.Count,1).End(xlUp).Row If WorkshetFunction.CountIf(Range(ws1.Cells(5,1),ws1.Cells(i,1)),ws1.Cells(i,1)) = 1 Then ws2.Cells(Rows.Count,1).End(xlUp).offset(1) = ws1.Cells(i,1) ws2.Cells(Rows.Count,2).End(xlUp).offset(1) = ws1.Cells(i,2) End If Next i j = ws1.Cells(Rows.Count,1).End(xlUp).Row For i = 2 To ws2.Cells(Rows.Count,1).End(xlUp).Row Range(ws1.Cells(5,1),ws1.Cells(j,2)).AutoFilter field:=1,Criterial:=ws2.Cells(i,1) ws1.Cells(2,6) = ws2.Cells(i,2) ws1.PrintOut Next i (せり) 2015/06/12(金) 01:29 ---- うまく表が表示されませんでしたが、abcdはB列のものです。 よろしくお願いいたします。 (せり) 2015/06/12(金) 01:34 ---- これでどうなりますか。 For i = 2 To ws1.Cells(Rows.Count,1).End(xlUp).Row を For i = 5 To ws1.Cells(Rows.Count,1).End(xlUp).Row (マナ) 2015/06/12(金) 05:33 ---- i=5にしただけでうまく行くようになっていると思われます Sheet2のデータがタイトル行以下のものをコピーするようになっていました 大量にデータがあるので印刷して無いので 最終的に印刷してみて結果をみたいと思います また不具合が出ましたら相談させてください ありがとうございました (せり) 2015/06/12(金) 12:24