オンライン講座 質問と回答

無料・有料のオンライン講座で寄せられたメッセージの一部を紹介致します。

[11346]セル内の文字列から区切り文字を見つけ、その出現回数+1回だけデータ転記する

2019-04-12 17:28:41 マサラさんからの投稿です。

【動画3】でSheet1からSheet2へ転記が行われる際に、
For kaisu = 0 To Worksheets(“Sheet1”).Range(“G” & gyo).Value
というマクロの一文が登場しましたが、正直なところ戸惑いを覚えました。
このkaisuという変数は、マクロの実行に伴い
0→1→2→3
と4つの値を示し、その後に4回の転記が行われています。
For~Nextの構文では、例えば上記の例のgyoのように、
特定のセルの値を示すものだと思い込んでおりましたが、
このkaisuという変数はgyoのような役割ではなく、いわば形式的に置かれていると考えてよろしいのでしょうか?

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10333]セル内の文字列から区切り文字を見つけ、その出現回数+1回だけデータ転記する

2018-08-07 00:11:59 morimotoさんからの投稿です。

instrで「、」の位置を見つけ次のstart値を変えていく、、、という苦戦したやり方でしました。。。がmidでストレートに文字を探せばシンプルに解決できるのですね。勉強になりました。問題3で「、」の位置を直接求めずいっきにする方法はびっくりしました!。問題2のコードを加工してるだけですね。使う道具はシンプル、あとは
ほんと応用するだけですね。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[9076]セル内の文字列から区切り文字を見つけ、その出現回数+1回だけデータ転記する

2017-10-19 21:08:25 受講生さんからの投稿です。

nagasa = Len(moji)

For n = 1 To nagasa
If Mid(moji, n, 1) = “、” Then
kazu = kazu + 1

がポイント!
 for の新しい使い方を学んだ!

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[8571]セル内の文字列から区切り文字を見つけ、その出現回数+1回だけデータ転記する

2017-07-22 09:18:31 受講生さんからの投稿です。

○動画13:44分付近でfor next 構文でのブレイクポイント(F9)を使ったテスト方法 
ですがたいへん参考になりました。繰り返し回数毎に変数の中身を確認することがで 
きるのですね。

○for カウンター変数 = 最小値 + 最大値
の書き方で最小値を0とした書き方が勉強になりました。
 
○問題[1]をinstr関数を使い、問題[3]を作成しました。過去に小川先生がコメン
されているようにmid関数を使った方法の方がわかりやすいと思いました。
下記に記載しました。

Sub lesson02_ikki() 
    Dim moji
    Dim kazu
    Dim n
    Dim nagasa
    
    Dim saki
    saki = 2
    Dim kaisu
    Dim gyo
        
    For gyo = 2 To 7
        kazu = 0
        moji = Worksheets("Sheet1").Range("E" & gyo).Value
        nagasa = Len(moji)
        For kazu = 0 To nagasa
            n = InStr(n + 1, moji, "、")
            If n = 0 Then
                Exit For
            End If
        Next kazu
        
       For kaisu = 0 To kazu
            Worksheets("Sheet2").Range("A" & saki).Value = saki - 1
            Worksheets("Sheet2").Range("B" & saki & ":G" & saki).Value = Worksheets("Sheet1").Range("A" & gyo & ":F" & gyo).Value
            saki = saki + 1
        Next kaisu
    Next gyo
End Sub

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[6224]セル内の文字列から区切り文字を見つけ、その出現回数+1回だけデータ転記する

2016-03-31 13:43:58 受講生さんからの投稿です。

最初、[1][2]で求めた回数をそのまま使って一つのマクロで書こうと思ったのですが
すぐに行き詰りました。少し動画を見ると先生も別々のマクロで作っておられたので、その方式で再挑戦。
(最終的には先生もダイレクトなマクロにされていましたが、いきなりはハードル高いですよね;)

最初、A列の連続文字が1から6までで止まってしまいました。
動画で確認すると、変数-1の発想もできていたし、見た目ほとんど同じ内容でした。
(゜-゜)なぜだろう?
いろいろ調べてみて、変数の使い方が間違っていたと判明しました。
転記シートの記述位置を示す変数と、元シートの行位置を示す変数を混同していたのです。

やはり転記作業は、変数を正しく使い分けられるかどうかがポイントですね・・・
形ができても、正しく変数を使えなければ、期待した結果が得られません。
ちょっと複雑な動きをすると、すぐに変数を混同してしまうので、
この辺はやはり、慣れなのでしょうか(-ω-;)

しそ巻きカウント辺りを復習してみようと思います。

Sub tenki033008()
    Dim gyo   '元データの行数
    Dim tenki '記入シートでの記述行位置
    Dim kai     '区切り文字の回数
    Dim kaisu
    tenki = 2
    gyo = 2
    For gyo = 2 To 7
        kaisu = Worksheets("sheet1").Range("g" & gyo).Value '区切り回数が記述された場所
        For kai = 0 To kaisu                            '各行の区切り回数だけ繰り返す
            Worksheets("sheet2").Range("A" & tenki).Value = tenki - 1
            Worksheets("sheet2").Range("b" & tenki & ":G" & tenki).Value = Worksheets("sheet1").Range("A" & gyo & ":F" & gyo).Value
            tenki = tenki + 1
        Next
    Next
End Sub

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[6209]セル内の文字列から区切り文字を見つけ、その出現回数+1回だけデータ転記する

2016-03-30 10:09:57 受講生さんからの投稿です。

最初の[1]のみです。動画を見ずに挑戦しています。
instrで「、」を検索し、更に2つめの「、」3つめの「、」があるかどうかを調べて、
その結果によって回数を導く方法を考えました。
効率の良い方法ではなさそうですが、やってみました。

Sub rensyu033003()     ’「、」が含まれる回数の調査
    Dim gyo
    Dim ten         ’1番目の「、」の文字位置
    Dim ten2          '2番目の「、」の文字位置
    Dim ten3          '3番目の「、」の文字位置
    Dim yakuwari        '調査対象の文字列
    Dim kaisu        '最終的な回答
    For gyo = 2 To 7
        yakuwari = Range("E" & gyo).Value        
         ten = InStr(yakuwari, "、")
         ten2 = InStr(ten + 1, yakuwari, "、")
         ten3 = InStr(ten2 + 1, yakuwari, "、")
        
        If ten = 0 Then
            Range("G" & gyo).Value = 0
        ElseIf ten2 = 0 Then
            Range("G" & gyo).Value = 1            
        ElseIf ten2 > 0 And ten3 = 0 Then
            Range("G" & gyo).Value = 2
         ElseIf ten3 > 0 Then
            Range("G" & gyo).Value = 3
        End If
        kaisu = Range("g" & gyo).Value
    Next
End Sub

by gooska

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[5601]セル内の文字列から区切り文字を見つけ、その出現回数+1回だけデータ転記する

2016-01-13 21:48:37 受講生さんからの投稿です。

「、」の数を数える際に、動画でInStr関数を使用しかけて途中でやめていましたが、「InStr関数で「、」の位置を調べ、見つかったらカウントアップする」を
繰り返す方法でも可能であることが分かりました。実際にコードを書き、動作確認しました。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[5595]セル内の文字列から区切り文字を見つけ、その出現回数+1回だけデータ転記する

2016-01-12 22:02:06 受講生さんからの投稿です。

最初は配列を使う方法を思いつきコードを書いてしまいましたが、動画で「方針」を聞いた後動画を止め、コードを書き直してみました。
工夫次第で基礎編の知識だけでもできることが分かったのは、発見でした。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 


各講座ごとのメッセージを見る場合はこちら

 

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

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

トップへ