• 締切済み

エクセル VBA

excel_abcの回答

回答No.2

とりあえず、こんなんでどうでしょうか? Sub Try2() Dim oSh As Worksheet Dim oRng As Range Dim oCel As Range Dim i As Long, j As Long Dim pList() As String Dim pFnc As Boolean Set oSh = Sheets("Sheet1") Set oRng = oSh.Range("A1:A10") oSh.Range("A12") = 0 For Each oCel In oRng If oCel <> "" Then If i = 0 Then ReDim pList(i) pList(i) = oCel Else For j = 0 To UBound(pList) If oCel = pList(j) Then pFnc = True Exit For Else pFnc = False End If Next j If pFnc = False Then ReDim Preserve pList(UBound(pList) + 1) pList(UBound(pList)) = oCel End If End If i = i + 1 End If Next oSh.Range("A12") = UBound(pList) + 1 Set oCel = Nothing Set oRng = Nothing Set oSh = Nothing End Sub

hinakiti
質問者

お礼

ありがとうございました。 勉強になりました。

関連するQ&A

  • エクセルでできますか?

    エクセル初心者です。 2種類の記号をつかって、あらかじめパターンを決めておき(この場合だと4パターンa、b、c、d) ○○=a ○×=b ×○=c ××=d A列に2種類の記号(白黒、○×など)を不規則に入れていき、B列にa、b、c、dを自動的に表記させることは できますか(一マスおきになる)? 例 A B ○ b × ○ a ○ × d × × c ○

  • excel VBAについて質問します

    excel VBAについて質問します A列のセルには単なる数値や「44+30」のようなデータが入っているものがある。 ' + の記号があったら、セルの先頭に = を追加して計算させて答えを表示しなさい。 'マクロ実行後、A列には、数値だけが表示されることとする。 マクロ実行前   ⇒  マクロ実行後 22   --------------- 22 44+30 --------------- 77 35 -------------------- 35 22+11 --------------- 33 こういった感じにしたいんですがなかなか上手く行きません。

  • エクセル ランダム

    エクセルで数学の小テストを作ろうと考えています。 (1)にグループAの問題数問からランダムに一問 (2)にグループBの問題数問からランダムに一問 という感じで、毎回ランダムな20問程度の小テストを作りたいのですが、よい関数はありませんか?? エクセル等ほぼ初心者なので、よろしくおねがいします。

  • エクセルの計算式について教えてください

    エクセルの計算式について教えてください A列にはA~Zまでのアルファベットがランダムに並んでいます。 B列には1~9間での数字がランダムに並んでいます。 C-3 の数 (つまりA列がCでB列が3) がいくつあるかカウントさせる式を作りたいのです。 エクセルでは基本的なことかもしれませんが、まだ十分理解していません。何かエクセル関数理解のお勧めのサイトがあればついでに教えてください。

  • エクセルの列記号が・・・(エクセル初心者です!)

    ワードは使いますが、エクセルは初心者の質問です。 キャッシュフロー表を作らなくてはならなくて、入力する計算式なども教えてもらったのですが。 私のPCのエクセルは何故だか、列記号が(上の行)数字なんです。(PCは98です) 普通はA.B.C...となっているはずですよね。 クリックしたセルも通常はA1.B1...と出ますよね? それが、A1のセルには【R1C1】と出るんです。 この列記号を数字からアルファベットに変えるにはどうすれば良いのでしょうか。 エクセルが判らないのに、こんなところでつまずいていて キャッシュフロー表どころではありませんo(;△;)o どなたか、初心者にも判るように是非教えてください! 御願いします!!!

  • EXCEL VBAで

    EXCEL VBAで シート1のA2~G2までの列にA,B,C,D~と題名があり、それぞれの下の行には数字が並んでます。シート2のA2~G2までの列にもA,B,C,D~と題名がありますが、ランダムに並んでます。シート1のAの行を、シート2のAの行に、BにはBへという風にコピーをさせるにはどのようにすればよいでしょうか。またシート1A~Gのどれかが欠けている場合もあります。その場合はシート1にあるもののみコピーすることとします。 わかりにくいかも知れませんか、どうかよろしくお願いします。

  • エクセルについて

    はじめましてエクセル初心者なので教えてもらいたいのですが、よろしくお願いします。 A1が1の時は*20、A1が2の時は*40等の計算をB1にまとめたいのですがどのようにしたらいいのでしょうか?   A   B 1 1  計算式 2 3

  • エクセルで範囲内にある重複していないデータの総数を調べる方法

    初めまして。エクセルで分からないところがありまして質問いたします。 タイトルがややこしくて申し訳ありませんが、下記の例のような状況の時に、範囲内(A1~A5)の商品の種類数がA6で計算出来ればいいなと考えております。   A 1 A(←例えば「A」という商品) 2 B 3 C 4 B 5 A 6 3(種類) A4とA5はそれぞれA2とA1に重複しているのでカウントせずにA6に3(種類)と計算されるという事です。 分かりにくくて申し訳ありませんが、宜しくお願いします。ちなみにエクセルは初心者~中級者レベルです。

  • Excel VBA セルを指定個数ランダム選択

    Excel VBA セルを指定個数ランダム選択 A1からA30までのセルをランダムで8コ選んで値として"○"を入れる ということをやりたいのですがどのようにすればよいでしょうか? よろしくお願いします。

  • エクセルVBA

    初心者です エクセル2003 ユーザーフォームのコンボボックスの連携について教えてください   Seet1       A     B     C     D      E     F           1   種類1   商品1  商品A  商品あ        コンボ1  2   種類2   商品2  商品B  商品い 3   種類3   商品3  商品C  商品う                4   種類4   商品4  商品D  商品え        コンボ2 5   種類5   商品5  商品E  商品お (1)コンボボックス1と2を別々のユーザーフォームで配置(ダブルクリックにて表示 F1とF4) (2)コンボボックス1でA列の種類を選択によりコンボボックス2のリストが変わる (3)コンボボックス1で選んだ種類をF1のセルに挿入 (4)コンボボックス2は種類1の場合はB列             種類2の場合はC列             種類3の場合はD列のリストとします (5)コンボボックス2で選択した商品をF4に挿入といった具合です 何度か挑戦しましたが、同一ユーザーフォームにコンボボックス2つは成功するのですが うまくいきません コード及びコード記入場所を教えていただけませんか よろしくお願いいたします