新規無料会員登録で1000名様に電子コミック1000円分が当たる!!

こんにちは。
朝質問させて頂きました。
Excelにて写メのような値(組み合わせ)がよく出ているか調べる時に、関数を使えばいいのかそれともマクロがいいのかどっちを使えばいいのか分かりません。

「こんにちは。 朝質問させて頂きました。 」の質問画像

A 回答 (2件)

No.1です。



>これをこのまま打ち込めば、できますか?

単にコードを提示しただけなので、
ご自身でマクロを実行する必要があります。

Excel画面左下の操作したいシート見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行してみてください。

Alt+F8キー → マクロ → マクロ実行です。

※ 前回のコードはO・P列に表示するようにしていますので、
O・P列は何もない状態でマクロを実行してください。m(_ _)m
    • good
    • 0
この回答へのお礼

分かりました!!
やってみます!!

お礼日時:2020/08/26 19:12

こんにちは!


関数でも作業用の同じ範囲を利用すれば可能かもしれませんが、
手っ取り早く、VBAでの一例です。

O・P列に出現回数の多い順に表示するようにしてみました。

Sub Sample1()
 Dim myDic As Object
 Dim i As Long, j As Long
 Dim lastRow As Long
 Dim myKey, myItem, myR

  Set myDic = CreateObject("Scripting.Dictionary")
   Range("O:P").ClearContents
    lastRow = Cells(Rows.Count, "H").End(xlUp).Row
     myR = Range(Cells(1, "H"), Cells(lastRow, "M"))
      For i = 1 To UBound(myR, 1)
       For j = 1 To UBound(myR, 2)
        If Not myDic.exists(myR(i, j)) Then
         myDic.Add (myR(i, j)), 1
        Else
         myDic(myR(i, j)) = myDic(myR(i, j)) + 1
        End If
       Next j
      Next i
     myKey = myDic.keys
     myItem = myDic.items
      For i = 0 To UBound(myKey)
       With Cells(i + 1, "O")
        .Value = myKey(i)
        .Offset(, 1) = myItem(i)
       End With
      Next i
       Range("O:P").Sort key1:=Range("P1"), order1:=xlDescending, Header:=xlNo
     Set myDic = Nothing
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

これをこのまま打ち込めば、できますか?

お礼日時:2020/08/26 18:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング