• 締切済み

エクセルのマクロで困ってます

エクセルのマクロで(VBAで) シートにデータが羅列されています。 その中から、条件を満たすものを抜き出したいのですが。 ココまでは条件の合うものを抽出って方法が考えられると思います。 でも、その条件の設定方法を、A1セルに入った数字ってしたいとき。 どのようなプログラムを組んだらいいのか教えてください。 抽出まで一連のプログラムを書いていただけるとありがたいです。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 こんな感じかな? Sub FindNumbers() 'A1 のデータより小さいデータを1列に出力するマクロ Dim rng As Range Dim sRng As Range Dim ar() As Long Dim c As Variant Dim i As Long  Set rng = ActiveSheet.UsedRange  Set sRng = rng.SpecialCells(xlCellTypeConstants, xlNumbers)  If Not sRng Is Nothing Then  For Each c In sRng.Cells   If c.Value < Range("A1").Value And Not Range("A1") Is c Then    ReDim Preserve ar(i)    ar(i) = c.Value    i = i + 1   End If  Next c  End If    'データ列を1つ空けて出力   Columns(rng.Columns.Count + 2).Resize(UBound(ar()), 1).Value = _                 WorksheetFunction.Transpose(ar())  Set rng = Nothing: Set sRng = Nothing End Sub

syara0506
質問者

お礼

2回目のご回答ありがとうございます!! と、あと、初心者にお付き合いいただき本当にありがとうございます!! さっそく、やってみます。 もし、もしも。思ったとおりにできなければ、また具体的に質問させていただきます。 そのときはまたよろしくおねがいいたします。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 >抽出まで一連のプログラムを書いていただけるとありがたいです。 一連のっていうのは、ちょっと辛いですね。意味がはっきりしないからです。 >シートにデータが羅列されています。 >その中から、条件を満たすものを抜き出したいのですが。  -どこにですか? >ココまでは条件の合うものを抽出って方法が考えられると思います。 >でも、その条件の設定方法を、A1セルに入った数字ってしたいとき。  A1 に入っている数字なら、その数を数えて、それを並べるだけですから、 With ActiveSheet  i= WorksheetFunction.CountIf(.UsedRange, .Range("A1").Value)  Sheet2.Range("A1").Resize(i).Value = .Range("A1").Value End With もう少し、具体的に、どのようにするのか分らないと、話が進みませんね。

syara0506
質問者

お礼

ああ!すみません。 でも、答えていただけてありがたいです。 ありがとうございます。 よろしければもうすこし、初心者にお付き合いください!! 補足をNo1の方のところにつけさせていただきました。 これで、もう少し具体的になったでしょうか? またよろしくお願いいたします。

回答No.1

この文章だと何を求めているのか良くわかりませんが。。。 もしかしたらこれかな? ISNUMBER(A1) A1の値が数値として解釈できればTRUE、解釈できなければFALSEを返します。

syara0506
質問者

補足

すみません!! 初心者で・・・どう書いたらわかりやすいのかもわからなかったのです。 シートの中に数値のデータを並べておきます。 (これは、実験データです) その数値データの中から、ある条件を満たすものを同じシートの中に抜き出して書いてほしい。と思っています。 条件は、「A1の場所に入れた数値より小さい」と設定したいと思っています。 なので、 ・A1の中に入っているのは数値だと認識させたい ・条件として設定するために「A1より小さい」とプログラムさせたい ・条件にあうデータを抜き出したい ・その抜き出した結果を、元からあるデータを同じシート上に出したい この作業ができるようなプログラムを知りたいと思っています。 わかりにくくてすみません・・・

関連するQ&A

専門家に質問してみよう