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

コメント紹介
   └ エクセルマクロ・VBA基礎編フォローアップ ベーシック
       └ 表を解析して1行のリストを作る、1行のリストを解析して表にする(その2)

表を解析して1行のリストを作る、1行のリストを解析して表にする(その2)

[3784] 2015-02-09 08:00:07 佐藤 あゆむさんからの投稿です。

今回は2日間粘って[2]を完成させました。

今から仕事なので帰宅したら小川先生のマクロを検証しつつなぞろうと思います。
Sub createlist2()
    Dim i, j, ward
    Range("E2").Value = Range("A2").Value
    Range("F2").Value = Range("B2").Value
    
    j = 3
    For i = 3 To 26
        If Range("A" & i - 1).Value <> Range("A" & i).Value Then
            Range("E" & j).Value = Range("A" & i).Value
            Range("F" & j).Value = Range("B" & i).Value
            j = j + 1
        End If
    Next
    
'作成日: 2015/02/09。↓2日考えてやっと完成
    j = 2
    Range("G2").Value = Range("C2").Value & "地区"
    For i = 2 To 26
        If Range("A" & i) <> Range("A" & i + 1) Then
            ward = 0
            j = j + 1
            ward = Range("C" & i + 1).Value & "地区,"
            Range("G" & j).Value = ward
        Else
            ward = ward & Range("C" & i + 1) & "地区,"
            Range("G" & j).Value = ward
        End If
    Next
    For i = 3 To 11
        Range("G" & i).Value = Left(Range("G" & i).Value, Len(Range("G" & i).Value) - 1)
    Next
    
End Sub

 


[3790] 2015-02-10 06:39:50 小川慶一さんからの投稿です。

ゲスト さん:

そして、動画で示した見本と比べてどうでしたでしょうか?

>今回は2日間粘って[2]を完成させました。
>
>今から仕事なので帰宅したら小川先生のマクロを検証しつつなぞろうと思います。
>
>Sub createlist2()
>    Dim i, j, ward
>    Range("E2").Value = Range("A2").Value
>    Range("F2").Value = Range("B2").Value
>    
>    j = 3
>    For i = 3 To 26
>        If Range("A" & i - 1).Value <> Range("A" & i).Value Then
>            Range("E" & j).Value = Range("A" & i).Value
>            Range("F" & j).Value = Range("B" & i).Value
>            j = j + 1
>        End If
>    Next
>    
>'作成日: 2015/02/09。↓2日考えてやっと完成
>    j = 2
>    Range("G2").Value = Range("C2").Value & "地区"
>    For i = 2 To 26
>        If Range("A" & i) <> Range("A" & i + 1) Then
>            ward = 0
>            j = j + 1
>            ward = Range("C" & i + 1).Value & "地区,"
>            Range("G" & j).Value = ward
>        Else
>            ward = ward & Range("C" & i + 1) & "地区,"
>            Range("G" & j).Value = ward
>        End If
>    Next
>    For i = 3 To 11
>        Range("G" & i).Value = Left(Range("G" & i).Value, Len(Range("G" & i).Value) - 1)
>    Next
>    
>End Sub
>
>

 


[3798] 2015-02-10 22:00:05 佐藤 あゆむさんからの投稿です。

小川先生:

私が一番悩んだのは地区の部分をどうやって入れるかということでした。
どうしても一段後にずれるようなので、とりあえずA2の岩手化学が一つしかないのを幸いに、
岩手化学をForNextから出して先行させ、残りの地区を入れていくという算段を立てました。

小川先生は、その一段ずれる部分をIf migi>2Thenで吸収していますね。
流れを変えたい部分を大きな流れの中に組み込んで分岐させる、という発想は私にはありませんでした。
流れを変えたいから、全体としての大きな流れとはまた別の流れを作ってしのごうと考えましたから。

今後は、マクロを書く中で「この流れをかえたい」という部分を全体の流れにうまく組み込んで書けるようになりたいです(*゚▽゚)*


>ゲスト さん:
>
>そして、動画で示した見本と比べてどうでしたでしょうか?
>
>>今回は2日間粘って[2]を完成させました。
>>
>>今から仕事なので帰宅したら小川先生のマクロを検証しつつなぞろうと思います。
>>
>>Sub createlist2()
>>    Dim i, j, ward
>>    Range("E2").Value = Range("A2").Value
>>    Range("F2").Value = Range("B2").Value
>>    
>>    j = 3
>>    For i = 3 To 26
>>        If Range("A" & i - 1).Value <> Range("A" & i).Value Then
>>            Range("E" & j).Value = Range("A" & i).Value
>>            Range("F" & j).Value = Range("B" & i).Value
>>            j = j + 1
>>        End If
>>    Next
>>    
>>'作成日: 2015/02/09。↓2日考えてやっと完成
>>    j = 2
>>    Range("G2").Value = Range("C2").Value & "地区"
>>    For i = 2 To 26
>>        If Range("A" & i) <> Range("A" & i + 1) Then
>>            ward = 0
>>            j = j + 1
>>            ward = Range("C" & i + 1).Value & "地区,"
>>            Range("G" & j).Value = ward
>>        Else
>>            ward = ward & Range("C" & i + 1) & "地区,"
>>            Range("G" & j).Value = ward
>>        End If
>>    Next
>>    For i = 3 To 11
>>        Range("G" & i).Value = Left(Range("G" & i).Value, Len(Range("G" & i).Value) - 1)
>>    Next
>>    
>>End Sub
>>
>>

>

 


[3814] 2015-02-13 06:06:34 小川慶一さんからの投稿です。

ゲスト さん:

For Next構文の入りにそれが初回処理かどうか判断して条件分岐するというのは常道です。
ムダに知識を増やすより、こういう手法を知っているか、自分のケースに当てはめて自由に活用できるかということが重要です。

 


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

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

トップへ