エクセルマクロ オンライン講座コメント紹介

コメント紹介
   └ エクセルマクロ・VBA基礎編フォローアップ ベーシック
       └ 出現回数を数える。CountIf関数がやっていることをマクロで書くと?

出現回数を数える。CountIf関数がやっていることをマクロで書くと?

[2551] 2014-09-24 21:32:26 受講生さんからの投稿です。

小川先生

>>あと、上級DVDで紹介している「配列」を使うと以下のとおり。
>>出力部分については考えてみてください。
とのことでしたので、一部修正し、出力部分を追加して書いてみました。
修正箇所があれば教えて下さい。

Sub hairetu()
Dim gyo As Long
Dim goukei(2) As Long
goukei(0) = 0
goukei(1) = 0
goukei(2) = 0
For gyo = 4 To 33
Select Case Range("C" & gyo).Value
  Case Range("E4").Value
  goukei(0) = goukei(0) + 1
  Case Range("E5").Value
  goukei(1) = goukei(1) + 1
  Case Range("E6").Value
  goukei(2) = goukei(2) + 1
End Select
Next
For gyo = 4 To 6
Cells(gyo, "F").Value = goukei(gyo - 4)
Next
End Sub

 


[2553] 2014-09-25 06:43:03 小川慶一さんからの投稿です。

匿名 さん:

よいかと v(^^

あえて言うなら、select case のところは range、 for next のところは cells で書いているというのはちょっと気になるかな。
ひとつのプログラムの中ではどちらかに統一したほうがメンテナンス性が高いです。

あとは、さらにバージョンアップしたコードにするなら...。
キャンペーンのタイプがいくつあるのかも未知のままだったらどうするか。
その場合は、キャンペーンタイプのリストを自分で作成することになります。(発展編1の動画フォローでそういう課題がでてきます)



>小川先生
>
>>>あと、上級DVDで紹介している「配列」を使うと以下のとおり。
>>>出力部分については考えてみてください。
>とのことでしたので、一部修正し、出力部分を追加して書いてみました。
>修正箇所があれば教えて下さい。
>
>Sub hairetu()
> Dim gyo As Long
> Dim goukei(2) As Long
> goukei(0) = 0
> goukei(1) = 0
> goukei(2) = 0
> For gyo = 4 To 33
> Select Case Range("C" & gyo).Value
>   Case Range("E4").Value
>   goukei(0) = goukei(0) + 1
>   Case Range("E5").Value
>   goukei(1) = goukei(1) + 1
>   Case Range("E6").Value
>   goukei(2) = goukei(2) + 1
> End Select
> Next
> For gyo = 4 To 6
> Cells(gyo, "F").Value = goukei(gyo - 4)
> Next
>End Sub

 


[2557] 2014-09-25 20:27:49 受講生さんからの投稿です。

小川先生:
ご返信ありがとうございます。

>その場合は、キャンペーンタイプのリストを自分で作成することになります。(発展編1の動画フォローでそういう課題がでてきます)
ユニークリストの作成ということでしょうか?
そのあたりも、ぜひマスターしていきたいと思います。

講座を開始した当初は焦る気持ちもありましたが、まずは基礎編(フォローアップ課題やEnshuフォルダ)をしっかりと繰り返し実践し、
スラスラとできるようになってから、発展編に進んでいきたいという気持ちです。

余談ですが、小川先生のさりげないブレークポイントの使い方も大変参考になりました。
また、よろしくお願いいたします。

>匿名 さん:
>
>よいかと v(^^
>
>あえて言うなら、select case のところは range、 for next のところは cells で書いているというのはちょっと気になるかな。
>ひとつのプログラムの中ではどちらかに統一したほうがメンテナンス性が高いです。
>
>あとは、さらにバージョンアップしたコードにするなら...。
>キャンペーンのタイプがいくつあるのかも未知のままだったらどうするか。
>その場合は、キャンペーンタイプのリストを自分で作成することになります。(発展編1の動画フォローでそういう課題がでてきます)
>
>
>>小川先生
>>
>>>>あと、上級DVDで紹介している「配列」を使うと以下のとおり。
>>>>出力部分については考えてみてください。
>>とのことでしたので、一部修正し、出力部分を追加して書いてみました。
>>修正箇所があれば教えて下さい。
>>
>>Sub hairetu()
>> Dim gyo As Long
>> Dim goukei(2) As Long
>> For gyo = 4 To 33
>> Select Case Cells(gyo,3).Value
>>   Case Cells(4,5).Value
>>   goukei(0) = goukei(0) + 1
>>   Case Cells(5,5).Value
>>   goukei(1) = goukei(1) + 1
>>   Case Cells(6,5).Value
>>   goukei(2) = goukei(2) + 1
>> End Select
>> Next
>> For gyo = 4 To 6
>> Cells(gyo, "F").Value = goukei(gyo - 4)
>> Next
>>End Sub
>

 


[2560] 2014-09-26 07:11:37 小川慶一さんからの投稿です。

匿名 さん:

>ユニークリストの作成ということでしょうか?

はい、そうです。

ユニークリスト作成自体はアルゴリズムそんなに難しくありません。
(よく考えたら、基礎編フォロー動画でも後半に登場しました (^^; )

基礎編の道具だけでも、相当のことができますよ。
あと、基礎編フォローでは主要なアルゴリズムはほぼ網羅しています。

>余談ですが、小川先生のさりげないブレークポイントの使い方も大変参考になりました。

生収録の魅力ですね。
見ていると分かるとおりけっこう失敗していますが、失敗した状態からどう修正するか?というのも大切なノウハウなので、すべて晒すようにしています。

ひきつづきお楽しみください☆



>小川先生:
>ご返信ありがとうございます。
>
>>その場合は、キャンペーンタイプのリストを自分で作成することになります。(発展編1の動画フォローでそういう課題がでてきます)
>ユニークリストの作成ということでしょうか?
>そのあたりも、ぜひマスターしていきたいと思います。
>
>講座を開始した当初は焦る気持ちもありましたが、まずは基礎編(フォローアップ課題やEnshuフォルダ)をしっかりと繰り返し実践し、
>スラスラとできるようになってから、発展編に進んでいきたいという気持ちです。
>
>余談ですが、小川先生のさりげないブレークポイントの使い方も大変参考になりました。
>また、よろしくお願いいたします。
>
>>匿名 さん:
>>
>>よいかと v(^^
>>
>>あえて言うなら、select case のところは range、 for next のところは cells で書いているというのはちょっと気になるかな。
>>ひとつのプログラムの中ではどちらかに統一したほうがメンテナンス性が高いです。
>>
>>あとは、さらにバージョンアップしたコードにするなら...。
>>キャンペーンのタイプがいくつあるのかも未知のままだったらどうするか。
>>その場合は、キャンペーンタイプのリストを自分で作成することになります。(発展編1の動画フォローでそういう課題がでてきます)
>>
>>
>>>小川先生
>>>
>>>>>あと、上級DVDで紹介している「配列」を使うと以下のとおり。
>>>>>出力部分については考えてみてください。
>>>とのことでしたので、一部修正し、出力部分を追加して書いてみました。
>>>修正箇所があれば教えて下さい。
>>>
>>>Sub hairetu()
>>> Dim gyo As Long
>>> Dim goukei(2) As Long
>>> For gyo = 4 To 33
>>> Select Case Cells(gyo,3).Value
>>>   Case Cells(4,5).Value
>>>   goukei(0) = goukei(0) + 1
>>>   Case Cells(5,5).Value
>>>   goukei(1) = goukei(1) + 1
>>>   Case Cells(6,5).Value
>>>   goukei(2) = goukei(2) + 1
>>> End Select
>>> Next
>>> For gyo = 4 To 6
>>> Cells(gyo, "F").Value = goukei(gyo - 4)
>>> Next
>>>End Sub
>>
>

 


[2563] 2014-09-26 20:05:39 受講生さんからの投稿です。

小川先生:

ユニークリストの作成、AdvancedFilterを使うのは反則かなと思い、アルゴリズムを考えてみました。
試行錯誤の結果、以下のようになりました。修正点がありましたら、教えて下さい。

Sub Sample1()
Dim i As Long, j As Long, cnt As Long, flag As Boolean
cnt = 4
For i = 4 To 33
flag = False
For j = 4 To cnt
If Cells(i, 3).Value = Cells(j, 5).Value Then
flag = True
Exit For
End If
Next j
If Cells(i, 3).Value <> "" And flag = False Then
Cells(cnt, 5).Value = Cells(i, 3).Value
cnt = cnt + 1
End If
Next i
End Sub

基礎編のフォロー動画はまだ第11回までしか終わっていませんが、この週末に少しでも
進めていきたいと思います。
メルマガの「休日は追いつくチャンス」という言葉、結構気に入っています。


>匿名 さん:
>
>>ユニークリストの作成ということでしょうか?
>
>はい、そうです。
>
>ユニークリスト作成自体はアルゴリズムそんなに難しくありません。
>(よく考えたら、基礎編フォロー動画でも後半に登場しました (^^; )
>
>基礎編の道具だけでも、相当のことができますよ。
>あと、基礎編フォローでは主要なアルゴリズムはほぼ網羅しています。
>
>>余談ですが、小川先生のさりげないブレークポイントの使い方も大変参考になりました。
>
>生収録の魅力ですね。
>見ていると分かるとおりけっこう失敗していますが、失敗した状態からどう修正するか?というのも大切なノウハウなので、すべて晒すようにしています。
>
>ひきつづきお楽しみください☆
>
>
>
>>小川先生:
>>ご返信ありがとうございます。
>>
>>>その場合は、キャンペーンタイプのリストを自分で作成することになります。(発展編1の動画フォローでそういう課題がでてきます)
>>ユニークリストの作成ということでしょうか?
>>そのあたりも、ぜひマスターしていきたいと思います。
>>
>>講座を開始した当初は焦る気持ちもありましたが、まずは基礎編(フォローアップ課題やEnshuフォルダ)をしっかりと繰り返し実践し、
>>スラスラとできるようになってから、発展編に進んでいきたいという気持ちです。
>>
>>余談ですが、小川先生のさりげないブレークポイントの使い方も大変参考になりました。
>>また、よろしくお願いいたします。
>>
>>>匿名 さん:
>>>
>>>よいかと v(^^
>>>
>>>あえて言うなら、select case のところは range、 for next のところは cells で書いているというのはちょっと気になるかな。
>>>ひとつのプログラムの中ではどちらかに統一したほうがメンテナンス性が高いです。
>>>
>>>あとは、さらにバージョンアップしたコードにするなら...。
>>>キャンペーンのタイプがいくつあるのかも未知のままだったらどうするか。
>>>その場合は、キャンペーンタイプのリストを自分で作成することになります。(発展編1の動画フォローでそういう課題がでてきます)
>>>
>>>
>>>>小川先生
>>>>
>>>>>>あと、上級DVDで紹介している「配列」を使うと以下のとおり。
>>>>>>出力部分については考えてみてください。
>>>>とのことでしたので、一部修正し、出力部分を追加して書いてみました。
>>>>修正箇所があれば教えて下さい。
>>>>
>>>>Sub hairetu()
>>>> Dim gyo As Long
>>>> Dim goukei(2) As Long
>>>> For gyo = 4 To 33
>>>> Select Case Cells(gyo,3).Value
>>>>   Case Cells(4,5).Value
>>>>   goukei(0) = goukei(0) + 1
>>>>   Case Cells(5,5).Value
>>>>   goukei(1) = goukei(1) + 1
>>>>   Case Cells(6,5).Value
>>>>   goukei(2) = goukei(2) + 1
>>>> End Select
>>>> Next
>>>> For gyo = 4 To 6
>>>> Cells(gyo, "F").Value = goukei(gyo - 4)
>>>> Next
>>>>End Sub
>>>
>>
>

 


[2565] 2014-09-27 09:31:24 小川慶一さんからの投稿です。

匿名 さん:

アルゴリズムについては、基礎編フォロー動画後半ででてくるので、そちらにて。
気になるようでしたら、先に18回、17回あたりを観てしまっていただいてOKです。

このアルゴリズムについては、何かあればそれからまた質問してください!


>メルマガの「休日は追いつくチャンス」という言葉、結構気に入っています。

僕も好きです。気に入っています。




>小川先生:
>
>ユニークリストの作成、AdvancedFilterを使うのは反則かなと思い、アルゴリズムを考えてみました。
>試行錯誤の結果、以下のようになりました。修正点がありましたら、教えて下さい。
>
Sub Sample1()
    Dim i As Long, j As Long, cnt As Long, flag As Boolean
    cnt = 4
    For i = 4 To 33
        flag = False
        For j = 4 To cnt
            If Cells(i, 3).Value = Cells(j, 5).Value Then
                flag = True
                Exit For
            End If
        Next j
        If Cells(i, 3).Value <> "" And flag = False Then
            Cells(cnt, 5).Value = Cells(i, 3).Value
            cnt = cnt + 1
        End If
    Next i
End Sub

>
>基礎編のフォロー動画はまだ第11回までしか終わっていませんが、この週末に少しでも
>進めていきたいと思います。
>メルマガの「休日は追いつくチャンス」という言葉、結構気に入っています。
>
>
>>匿名 さん:
>>
>>>ユニークリストの作成ということでしょうか?
>>
>>はい、そうです。
>>
>>ユニークリスト作成自体はアルゴリズムそんなに難しくありません。
>>(よく考えたら、基礎編フォロー動画でも後半に登場しました (^^; )
>>
>>基礎編の道具だけでも、相当のことができますよ。
>>あと、基礎編フォローでは主要なアルゴリズムはほぼ網羅しています。
>>
>>>余談ですが、小川先生のさりげないブレークポイントの使い方も大変参考になりました。
>>
>>生収録の魅力ですね。
>>見ていると分かるとおりけっこう失敗していますが、失敗した状態からどう修正するか?というのも大切なノウハウなので、すべて晒すようにしています。
>>
>>ひきつづきお楽しみください☆
>>
>>
>>
>>>小川先生:
>>>ご返信ありがとうございます。
>>>
>>>>その場合は、キャンペーンタイプのリストを自分で作成することになります。(発展編1の動画フォローでそういう課題がでてきます)
>>>ユニークリストの作成ということでしょうか?
>>>そのあたりも、ぜひマスターしていきたいと思います。
>>>
>>>講座を開始した当初は焦る気持ちもありましたが、まずは基礎編(フォローアップ課題やEnshuフォルダ)をしっかりと繰り返し実践し、
>>>スラスラとできるようになってから、発展編に進んでいきたいという気持ちです。
>>>
>>>余談ですが、小川先生のさりげないブレークポイントの使い方も大変参考になりました。
>>>また、よろしくお願いいたします。
>>>
>>>>匿名 さん:
>>>>
>>>>よいかと v(^^
>>>>
>>>>あえて言うなら、select case のところは range、 for next のところは cells で書いているというのはちょっと気になるかな。
>>>>ひとつのプログラムの中ではどちらかに統一したほうがメンテナンス性が高いです。
>>>>
>>>>あとは、さらにバージョンアップしたコードにするなら...。
>>>>キャンペーンのタイプがいくつあるのかも未知のままだったらどうするか。
>>>>その場合は、キャンペーンタイプのリストを自分で作成することになります。(発展編1の動画フォローでそういう課題がでてきます)
>>>>
>>>>
>>>>>小川先生
>>>>>
>>>>>>>あと、上級DVDで紹介している「配列」を使うと以下のとおり。
>>>>>>>出力部分については考えてみてください。
>>>>>とのことでしたので、一部修正し、出力部分を追加して書いてみました。
>>>>>修正箇所があれば教えて下さい。
>>>>>
Sub hairetu()
    Dim gyo As Long
    Dim goukei(2) As Long
    For gyo = 4 To 33
        Select Case Cells(gyo,3).Value
          Case Cells(4,5).Value
              goukei(0) = goukei(0) + 1
          Case Cells(5,5).Value
              goukei(1) = goukei(1) + 1
          Case Cells(6,5).Value
              goukei(2) = goukei(2) + 1
        End Select
    Next
    For gyo = 4 To 6
        Cells(gyo, "F").Value = goukei(gyo - 4)
    Next
End Sub

 


まずはここから!スマホでも学べる無料動画講座

今なら先着30名限定で無料!定価4,800円の、初心者のためのエクセルマクロ動画講座。
  1. Excel 97~Excel 2016まですべて対応。動画本数20本、総再生時間2時間44分53秒
  2. PC, Mac, iPhone, iPad, Androidのお好みの環境で、いつでも好きなときに学べます。
2004年から10年間述べ3,000名以上に実施した研修の経験と実績を集約した講座です。
いますぐ無料で試してください。

トップへ