セル内の文字列から区切り文字を見つけ、その区切り文字の間にある文字列を反映しつつデータ転記する

この講座は有料講座です。
講座の購入後ご覧になれます。

ログインアカウントの新規作成

解説

演習問題テーマ:セル内の文字列から区切り文字を見つけ、その区切り文字の間にある文字列を反映しつつデータ転記する

総合問題直前2つの課題で学んだことを実践します。慣れないとかなり難しく感じられますが、パターンなので何度か手を動かして自力で解けるようになれば、実務でもかなり役立つことでしょう。

この教材についての過去の質問・感想

11537 : 小川慶一の回答 (2019-08-01 13:08:07)

ほとさん:

アドバンスドの内容は、ベーシックで学んだことを「スラスラできる」という前提でお伝えしているものです。
「掛け算九九」ができてはじめて因数分解や式の展開ができる、という感じですかね...。

理数系科目のスキル習得は、知識を身体に落とし込むことのくりかえしです。
ただし、身体が慣れてしまえば、頭では複雑そうに見えることも、実際には慣れた身体の動きの組み合わせ、と感じられるようにもなってきます。

そういう意識をどこかにもったうえでひきつづきお楽しみください☆


> 3回から5回の動画講座がなんとか理解できました。
> 最初、課題を自力で解決できず動画をみました。その中で小川先生に叱咤激励を受けて、ベーシックでできたことがなぜ今回の課題ではうまくできなかったのかを再度比較、整理しました。そして、ちょっと考え方を工夫さえできれば確かにこの課題もクリアできるはずだと気づきました。
> その結果、3回と4回の総まとめである第5回の課題のマクロを分割することなく一度にかけることができました。
> 物凄い達成感です。引き続き、いろいろなパターンを経験して経験値をふやしていきたいと思います。
>


11536 : ほとさんのコメント (2019-08-01 12:50:58)

3回から5回の動画講座がなんとか理解できました。
最初、課題を自力で解決できず動画をみました。その中で小川先生に叱咤激励を受けて、ベーシックでできたことがなぜ今回の課題ではうまくできなかったのかを再度比較、整理しました。そして、ちょっと考え方を工夫さえできれば確かにこの課題もクリアできるはずだと気づきました。
その結果、3回と4回の総まとめである第5回の課題のマクロを分割することなく一度にかけることができました。
物凄い達成感です。引き続き、いろいろなパターンを経験して経験値をふやしていきたいと思います。


11193 : 小川慶一の回答 (2019-02-22 21:29:40)

受講生 さん:

そもそも、発展編2まで行けばsplit関数でさくっと決まる案件ではあります。


11178 : 受講生さんのコメント (2019-02-16 19:52:32)

文字列の最後に"、"を追加する方法を思いつき、少しシンプルになりました。

Sub ikkinizenbu2()
    Dim migi
    migi = 2
    Dim mae
    Dim ato
    Dim moji
    Dim n
    Dim gyo
    For gyo = 2 To 7
        mae = 0
        ato = 0
        moji = Worksheets("Sheet1").Range("D" & gyo).Value
        'mojiの最後が"、"でない場合、
        If Mid(moji, Len(moji), 1) <> "、" Then
            moji = moji & "、" '文字列の最後に"、"を追加
        End If
        For n = 1 To Len(moji)
            If Mid(moji, n, 1) = "、" Then
                mae = ato
                ato = n
                Worksheets("Sheet2").Range("A" & migi).Value = migi - 1
                Worksheets("Sheet2").Range("B" & migi).Value = Worksheets("Sheet1").Range("A" & gyo).Value
                Worksheets("Sheet2").Range("C" & migi).Value = Worksheets("Sheet1").Range("B" & gyo).Value
                Worksheets("Sheet2").Range("D" & migi).Value = Worksheets("Sheet1").Range("C" & gyo).Value
                Worksheets("Sheet2").Range("F" & migi).Value = Worksheets("Sheet1").Range("E" & gyo).Value
                Worksheets("Sheet2").Range("E" & migi).Value = Mid(moji, mae + 1, ato - mae - 1)
                migi = migi + 1
            End If
        Next
    Next
End Sub 


10070 : 小川慶一の回答 (2018-06-04 10:27:04)

マメコトさん:

> 『最初に見つけた「、」をatoに入れる(∵仮想のmaeが0だから)。』という発想は独力では思いつきませんでした。

マクロを書くときに限らず、仕組みを作る時には、「いかにシンプルなルールですべてを表現しているか?」という視点が大切です。

> 動画を見て処理のロジックが理解できた後、一気に処理できるマクロを先生のように書けるのが楽しくて、3回も(最初から)書いて実行してみるを繰り返しましたw

マクロを最初から書くというのはとても良いことです。
書けば書くほど、力がつきますね。

> しかもこのような処理って、実務で結構ニーズのあることだと思います。
> サラサラとマクロを書いて、同僚から賞賛の目で見られている自分の姿を妄想したりしています。
> 楽しいなぁ~

基礎編フォローアップ演習では、かなり無理やりゴリゴリに解いています。

が、この問題は、「発展編2」まで学ぶと、シンプルな構文であっさり解けるようになります。

そして、ゴリゴリと解く力をつけることも大切です。

楽しんで勉強続けてください (^^*


10069 : マメコトさんのコメント (2018-06-04 09:45:33)

『最初に見つけた「、」をatoに入れる(∵仮想のmaeが0だから)。』という発想は独力では思いつきませんでした。
動画を見て処理のロジックが理解できた後、一気に処理できるマクロを先生のように書けるのが楽しくて、3回も(最初から)書いて実行してみるを繰り返しましたw
しかもこのような処理って、実務で結構ニーズのあることだと思います。
サラサラとマクロを書いて、同僚から賞賛の目で見られている自分の姿を妄想したりしています。
楽しいなぁ~


8548 : 小川慶一の回答 (2017-07-17 08:13:34)

受講生 さん:

ご質問の件が出てくるのは 2:03 くらいです。
その段階では理解できている、と言うことですね。
であれば、「2:03では何とも思わなかった。、そして、4:10になって初めてこの疑問が湧いた」と言うのがどう言う事情だったのか、分からないのですが。。
もう少し情報をください。
ひょっとして、4:00すぎでループの外に置いているものの方についての質問ですか。

> 動画23の4:10までは、解けますが、
> mae=ato
> ato=n
> の考え方は、1つ目の「,」は左から数えて7番目(ループ7回目)
> その時、区別を前、後にはできないので、14文字目までの調査が行ったとき、「,」は後、と前の区別が左から数えて何番目にあるからと言える。
> この考え方でいいのですか?


8547 : 受講生さんのコメント (2017-07-16 22:33:45)

動画23の4:10までは、解けますが、
mae=ato
ato=n
の考え方は、1つ目の「,」は左から数えて7番目(ループ7回目)
その時、区別を前、後にはできないので、14文字目までの調査が行ったとき、「,」は後、と前の区別が左から数えて何番目にあるからと言える。
この考え方でいいのですか?


8546 : 小川慶一の回答 (2017-07-16 21:54:06)

受講生 さん:

このページの動画について、何分何秒までは理解できていますか。
そして、どこまでは、問題なくマクロを書けていますか。


8545 : 受講生さんのコメント (2017-07-16 16:16:58)

お世話になっております。
この動画内容は、ある程度理解できるように、手慣れるまで、以前の動画を繰り返し練習をしています。そこで mae = ato 、 ato = nがわかりませんでした。
宜しくお願いします。


6721 : 関口昭博さんのコメント (2016-06-13 05:29:07)

小川慶一 さん:

ありがとうございました。

>関口昭博 さん:
>
>>これでも動いたので、問題ないのか。それともこれではあとあと
>>うまくないのか、コメントいただけると幸いです。
>
>原則として、きちんと動いているようでしたら、それでよいと思ってよいです。
>もしもあとあと行き詰まったら、それから遡って見本と比較し、見本のやり方なら回避その行き詰まりを回避できるということでしたら、それからアルゴリズムを詳細に比較します。
>


6713 : 小川慶一の回答 (2016-06-12 06:38:57)

関口昭博 さん:

>これでも動いたので、問題ないのか。それともこれではあとあと
>うまくないのか、コメントいただけると幸いです。

原則として、きちんと動いているようでしたら、それでよいと思ってよいです。
もしもあとあと行き詰まったら、それから遡って見本と比較し、見本のやり方なら回避その行き詰まりを回避できるということでしたら、それからアルゴリズムを詳細に比較します。


6705 : 関口昭博さんのコメント (2016-06-08 05:31:39)

小川様

お世話になります。

動画を見たあと私が作ったプログラムですが
一点、模範解答と違うところがあります。
コメントしてるか所ですが、模範解答はato = Len(moji) + 1
となっていますが、私のはa=nです。

これでも動いたので、問題ないのか。それともこれではあとあと
うまくないのか、コメントいただけると幸いです。

ちなにみこのプログラムは同じシート(sheet1)に転記するようにしています。

Sub hukusyuu()
    Dim mae
    Dim ato
    Dim n
    Dim moji
    Dim migi
    migi = 11
    
    Dim gyo
    For gyo = 2 To 7
        moji = Range("D" & gyo).Value 
        mae = 0
        ato = 0
        For n = 1 To Len(moji)
            If Mid(moji, n, 1) = "、" Then 
                mae = ato
                ato = n
                Range("A" & migi) = migi - 10
                Range("B" & migi) = Range("A" & gyo).Value
                Range("C" & migi) = Range("B" & gyo).Value
                Range("D" & migi) = Range("C" & gyo).Value
                Range("F" & migi) = Range("E" & gyo).Value
                Range("E" & migi).Value = Mid(moji, mae + 1, ato - mae - 1)
                migi = migi + 1
            
            End If
            
        Next
        mae = ato
        ato = n '←その根拠がここと思っていたら→また新発見!for next構文を抜けた後nに格納された変数が+1された。
        Range("A" & migi) = migi - 10
        Range("B" & migi) = Range("A" & gyo).Value
        Range("C" & migi) = Range("B" & gyo).Value
        Range("D" & migi) = Range("C" & gyo).Value
        Range("F" & migi) = Range("E" & gyo).Value
        Range("E" & migi).Value = Mid(moji, mae + 1, ato - mae - 1)
        migi = migi + 1
    Next
    
End Sub


5636 : 小川慶一の回答 (2016-01-18 15:31:53)

受講生 さん:

問題ないならOKです。

>前回で課題は完成していたのですね。
>>>愛知次郎さんは名古屋支店の担当(経理)で1行、担当(総務)で1行、広島支店で1行の3行
>と書かれていたため、6人分を「その他勤務場所」の分として1行増やすのかと
>思ってました。
>Sheet3が完成例なら、無事完成し動作確認できました。


5627 : 受講生さんのコメント (2016-01-15 21:31:34)

前回で課題は完成していたのですね。
>>愛知次郎さんは名古屋支店の担当(経理)で1行、担当(総務)で1行、広島支店で1行の3行
と書かれていたため、6人分を「その他勤務場所」の分として1行増やすのかと
思ってました。
Sheet3が完成例なら、無事完成し動作確認できました。


5585 : 小川慶一の回答 (2016-01-11 22:30:45)

受講生 さん:

よろしく!お楽しみを☆

>小川慶一 さん:
>
>返信ありがとうございます。
>以下の点確認して、引き続き学んでいきたいと思います。
>今後ともどうぞよろしくお願いいたします。
>
>>受講生 さん:
>>
>>複数シート間でのデータ転記の問題があります。
>>これができれば、発展編1には十分についてこられますよ。
>>
>>「条件に一致するデータを別シートに転記する」
>>https://online.pc5bai.com/movie/index/27/145
>>
>>むしろ、さらに上位の知識を身につけたところで基礎編フォローの動画で学ぶと、さらに理解が深まるかとも思います。
>>
>>ひきつづきよろしくお願いいたします。
>>
>>
>>>小川先生
>>>基礎編を受講終了しました。復習もしたのですが何度やっても回答を見なければできない問題もあります。何度もやりすぎて、意味がわからなくても回答を覚えてしまうのと、飽きてきてしまったので完全に理解していないうちに発展編に進もうか迷っています。今後は、発展編→わからなかったら基礎に戻って再度復習をして前に進んでみようと思います。
>>>やはり、基礎編を完璧に理解してから発展に進んだほうがいいですか?
>>
>


5579 : 受講生さんのコメント (2016-01-11 20:14:28)

小川慶一 さん:

返信ありがとうございます。
以下の点確認して、引き続き学んでいきたいと思います。
今後ともどうぞよろしくお願いいたします。

>受講生 さん:
>
>複数シート間でのデータ転記の問題があります。
>これができれば、発展編1には十分についてこられますよ。
>
>「条件に一致するデータを別シートに転記する」
>https://online.pc5bai.com/movie/index/27/145
>
>むしろ、さらに上位の知識を身につけたところで基礎編フォローの動画で学ぶと、さらに理解が深まるかとも思います。
>
>ひきつづきよろしくお願いいたします。
>
>
>>小川先生
>>基礎編を受講終了しました。復習もしたのですが何度やっても回答を見なければできない問題もあります。何度もやりすぎて、意味がわからなくても回答を覚えてしまうのと、飽きてきてしまったので完全に理解していないうちに発展編に進もうか迷っています。今後は、発展編→わからなかったら基礎に戻って再度復習をして前に進んでみようと思います。
>>やはり、基礎編を完璧に理解してから発展に進んだほうがいいですか?
>


5565 : 小川慶一の回答 (2016-01-11 12:50:52)

受講生 さん:

複数シート間でのデータ転記の問題があります。
これができれば、発展編1には十分についてこられますよ。

「条件に一致するデータを別シートに転記する」
https://online.pc5bai.com/movie/index/27/145

むしろ、さらに上位の知識を身につけたところで基礎編フォローの動画で学ぶと、さらに理解が深まるかとも思います。

ひきつづきよろしくお願いいたします。


>小川先生
>基礎編を受講終了しました。復習もしたのですが何度やっても回答を見なければできない問題もあります。何度もやりすぎて、意味がわからなくても回答を覚えてしまうのと、飽きてきてしまったので完全に理解していないうちに発展編に進もうか迷っています。今後は、発展編→わからなかったら基礎に戻って再度復習をして前に進んでみようと思います。
>やはり、基礎編を完璧に理解してから発展に進んだほうがいいですか?


5548 : 受講生さんのコメント (2016-01-10 11:43:07)

小川先生
基礎編を受講終了しました。復習もしたのですが何度やっても回答を見なければできない問題もあります。何度もやりすぎて、意味がわからなくても回答を覚えてしまうのと、飽きてきてしまったので完全に理解していないうちに発展編に進もうか迷っています。今後は、発展編→わからなかったら基礎に戻って再度復習をして前に進んでみようと思います。
やはり、基礎編を完璧に理解してから発展に進んだほうがいいですか?


3日がかりのその仕事、3分で終わらせる方法教えます。ガラパゴスタディーオンライン講座 ユーザー登録

本講座の動画一覧

  1. 【動画1】 住所情報を都道府県から市区町村レベルで細かく分割する
    【動画1】 住所情報を都道府県から市区町村レベルで細かく分割する 未習得
  2. 【動画2】 保険料額表から標準報酬額ごとの保険料負担額を算出する
    【動画2】 保険料額表から標準報酬額ごとの保険料負担額を算出する 未習得
  3. 【動画3】 セル内の文字列から区切り文字を見つけ、その出現回数+1回だけデータ転記する
    【動画3】 セル内の文字列から区切り文字を見つけ、その出現回数+1回だけデータ転記する 未習得
  4. 【動画4】 セル内の文字列から区切り文字を見つけ、その区切り文字の間にある文字列を切り出す
    【動画4】 セル内の文字列から区切り文字を見つけ、その区切り文字の間にある文字列を切り出す 未習得
  5. 【動画5】 セル内の文字列から区切り文字を見つけ、その区切り文字の間にある文字列を反映しつつデータ転記する
    【動画5】 セル内の文字列から区切り文字を見つけ、その区切り文字の間にある文字列を反映しつつデータ転記する 未習得
  6. 【動画6】 VLookUp関数、Index関数、Match関数より便利なマクロ-該当する行が見つからない場合の処理をアレンジ
    【動画6】 VLookUp関数、Index関数、Match関数より便利なマクロ-該当する行が見つからない場合の処理をアレンジ 未習得
  7. 【動画7】 VLookUp関数、Index関数、Match関数より便利なマクロ-複数シート間、複数ファイル間でのマッチング
    【動画7】 VLookUp関数、Index関数、Match関数より便利なマクロ-複数シート間、複数ファイル間でのマッチング 未習得
  8. 【動画8】 転記先シートを生成してデータを流し込む。
    【動画8】 転記先シートを生成してデータを流し込む。 未習得
  9. 【動画9】 転記先ファイルを生成してデータを流し込む。
    【動画9】 転記先ファイルを生成してデータを流し込む。 未習得
  10. 【動画10】 条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で作成する。
    【動画10】 条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で作成する。 未習得
  11. 【動画11】 条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で同一ファイル内に連続的に作成する。
    【動画11】 条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で同一ファイル内に連続的に作成する。 未習得
  12. 【動画12】 条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。
    【動画12】 条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。 未習得
  13. 【動画13】 ファイル配布→配布先でのデータ記入→記入済データを手元資料に統合
    【動画13】 ファイル配布→配布先でのデータ記入→記入済データを手元資料に統合 未習得
  14. 【動画14】 データ記入用ファイルを配布する-その1
    【動画14】 データ記入用ファイルを配布する-その1 未習得
  15. 【動画15】 データ記入用ファイルを配布する-その2
    【動画15】 データ記入用ファイルを配布する-その2 未習得
  16. 【動画16】 各部署からファイルを回収し、記入済データを手元資料に統合その1
    【動画16】 各部署からファイルを回収し、記入済データを手元資料に統合その1 未習得
  17. 【動画17】 各部署からファイルを回収し、記入済データを手元資料に統合その2
    【動画17】 各部署からファイルを回収し、記入済データを手元資料に統合その2 未習得
  18. 【動画18】 商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その1)
    【動画18】 商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その1) 未習得
  19. 【動画19】 商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その2-1)
    【動画19】 商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その2-1) 未習得
  20. 【動画20】 商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その2-2)
    【動画20】 商品ごと、年ごとの販売額合計をピボットテーブルのように出力する(その2-2) 未習得

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ