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

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

[9141]データ記入用ファイルを配布する-その2

2017-11-25 08:24:04 受講生さんからの投稿です。

・変数の置き換えがやっぱり重要
 ”&” ちょん・あんど・ちょん と言いながら一つ一つ確認しながらやってみるとうまくいった。
・作業ホルダーと保存先フォルダーの関係に気をつける。
(ここでつまづいて解決するのに60分かかった。が、勉強になった)
何より失敗して解決していく過程が大事だと実感した。
・ファイルの配布ができるようになった!

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

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

2017-11-10 00:08:55 受講生さんからの投稿です。

一通りフォローアップを学んでみたあと、また動画1の課題から解説を見ないで取り組んでいます。

今回は「担当区域」を先に考えてやりました。以前に動画を見たときに、確か、migi=2 とか使ってたな、と思って進めていくと、途中で、自分の書き方だとmigi=1でないとうまくいかないと思ったり、あとから「業者名」「フリガナ」を入れたので、『"e" & migi』には1を足さないとダメだな、など、動かしながらやってると、特に意図もなく、1を足してみたり引いてみたりして、結果的に答えにはたどりついています。

例えば、E~G列は、2行目から始まるので、migi=2とするのが通常かなと思います。しかし、意図せず1を足したり引いたりして結果に結び付けばよいのでしょうか?自分が書いたあと、もう一度動画を見ると、自分のはなんだか不格好だなと思います。

初心者のうちは、このような形でもよいのでしょうか?

Sub ren()
Dim hida
Dim tiku
Dim migi
migi = 1
For hida = 2 To 27

If Range("a" & hida).Value <> Range("a" & hida - 1).Value Then
    Range("e" & migi + 1) = Range("a" & hida).Value
    Range("f" & migi + 1) = Range("b" & hida).Value
     tiku = Range("c" & hida) & "地区"
     migi = migi + 1
Else
   tiku = tiku & "," & Range("c" & hida).Value & "地区"
End If
Range("g" & migi).Value = tiku

Next

End Sub

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

[9106]文字列を加工してデータ転記する(その2)

2017-11-04 11:47:02 受講生さんからの投稿です。

その前の問題もそうですが、先生の動画を見る前に一度自分で書いてみると以下のようになってしまい、変数を効果的に使っていないことに気付きます。

書いたあとだと、Instr(range(~)など、同じようなものが出てくるし、変数を使った方がすっきりするな、と思うんですが、書いている途中だと変数の使い方がピンときませんでした。

慣れるしかないのかなと思いますが、最初のうちは、以下のように書いてしまってから、あとから、ここはこういう風に変数を使った方がいいな、とか考えていってもいいのでしょうか?よろしくお願いします。

「問題4」シート「Sheet2」で、C列にある住所の「区」または「市」までをF列に、それ以降をG列に書き込むマクロを作れ

Sub ren()

Dim gyo
For gyo = 2 To 11
If InStr(Range("c" & gyo).Value, "区") = 0 Then
    Range("f" & gyo).Value = Left(Range("c" & gyo).Value, InStr(Range("c" & gyo).Value, "市"))
Else
    Range("f" & gyo).Value = Left(Range("c" & gyo).Value, InStr(Range("c" & gyo).Value, "区"))
End If

Next

End Sub

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

[9105]条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。

2017-11-04 09:32:08 横山 知明さんからの投稿です。

すばらしいです。
請求書を発行するときなど、実践で使えそうです。
やっと、ここまでたどり着きました。

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

[9102]条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で同一ファイル内に連続的に作成する。

2017-10-31 21:23:36 受講生さんからの投稿です。

・select はクール!
・シートごとに分類するマクロを作る時は”リスト”などの下準備をしておくといい

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

[9100]条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で作成する。

2017-10-30 21:51:13 受講生さんからの投稿です。

・削除系のマクロを作る時は、後ろから削除する。
・数式 n(終わりの数になるための数)-gyo で後ろから実行する
・step -1 で指定した範囲の後ろから実行する

[ 続きを読む ]  返信件数: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件  [ 動画を見る] 

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

2017-10-18 00:35:52 受講生さんからの投稿です。

解説の前半で、goukei=0 ・・・ goukei=goukei+1 とありますが、前半だけの話で完結した場合、最初の「goukei=0」は必要でしょうか?
たとえば、goukei=0 を書かなくても、goukei=0+1 ということになり、結果的には同じことにはなると思いますが。

後半では、goukeiを0にしておかないと一旦クリアにならないので必要だというのは分かりました。

よろしくお願いいたします。

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

[9065]保険料額表から標準報酬額ごとの保険料負担額を算出する

2017-10-15 16:18:36 受講生さんからの投稿です。

初めて 先にイメージしたことが解説通りになった。
新しいポイントは Exit for
条件を満たした時に For next構文を終了する。

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

[9048]条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で同一ファイル内に連続的に作成する。

2017-10-12 22:44:12 受講生さんからの投稿です。

お世話になっております。
[8959]で説明されているDo Loopで上から処理をするとなると、こんな感じになるのでしょうか。違和感があるため、動画のとおりに素直に下からFor Nextで処理したいです。

Sub Sample()
    Dim i As Long, j As Long, wsName As String
    With Sheets("リスト")
        For i = 4 To 7
            Sheets("本番").Copy After:=Sheets(Sheets.Count)
            wsName = .Cells(i, 4)
            ActiveSheet.Name = wsName
            j = 4
            Do While Cells(j, 2).Value <> ""
                If .Cells(i, 3).Value <> Cells(j, 4).Value Then
                    Range(Cells(j, 2), Cells(j, 5)).Delete Shift:=xlUp
                    j = j - 1
                End If
                j = j + 1
            Loop
        Next i
    End With
End Sub

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

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

2017-10-11 22:02:55 受講生さんからの投稿です。

これまでの複合技!
・for next 構文で気をつけることは、データのはじめと終わりに
 自分の求める処理がされているか。
・失敗しながら何度もやってみる。
 成功者ほどたくさん失敗している!byドラッカー

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

[9005]各資料ごとに1番からの番号を割り振る。AutoFill機能より便利なマクロ

2017-10-06 19:01:04 受講生さんからの投稿です。

・上の行と下の行の値を比べることで番号を割り振ることができる。

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

[8987]各資料ごとに1番からの番号を割り振る。AutoFill機能より便利なマクロ

2017-10-03 12:39:09 受講生さんからの投稿です。

いま仕事でこの機能をつかってデータ加工してます 全部はマクロ化するのは先になりますが部分的でも仕事の効率が違います ありがとうございました

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

[8982]文字列の一部を取り出す(応用例)

2017-10-02 12:38:39 受講生さんからの投稿です。

Instr関数
Left関数
Mid関数の復習になったが、いかに自分が理解していないかがわかった。
何度も見直すこと。

文字列を分割するときに、前のスラッシュと後のスラッシュをInstr関数であらわすが今回のポイント
Instr関数で見つけよう”/”を見つける。

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

[8977]各資料ごとに1番からの番号を割り振る。AutoFill機能より便利なマクロ

2017-10-01 17:46:00 横山 知明さんからの投稿です。

発想がすごいです。マスターするのが必死で、質問できるところまでのレベルに
行っていないような気がします。それでも、仕事で使うときに、何も見ないで書けるものも出てきているので、とても嬉しいです。

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

[8949]条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で同一ファイル内に連続的に作成する。

2017-09-28 15:53:29 金子 伊智郎さんからの投稿です。

前回と今回の動画を見る前に作ってみました。
ポイントはシートコピーする前に存在したら削除するようにした点です。
下から上に処理をしていくというヒントをもらっていたのでスムーズに
できました。
上から順に処理するとなると行削除する際にカウンターを-1でしょうか..
気持ち悪いコードになりそうです。

Sub mondai3()
    Dim gyo
    Dim jyokyo
    Dim komoku
    Dim sname
    Dim ws As Worksheet
    
    For jyokyo = 4 To 7
        komoku = Worksheets("リスト").Range("C" & jyokyo).Value
        sname = Worksheets("リスト").Range("D" & jyokyo).Value
         
         For Each ws In Worksheets
            If ws.Name = sname Then
                Application.DisplayAlerts = False
                Worksheets(sname).Delete
                Application.DisplayAlerts = True
                Exit For
            End If
         Next
        Sheets("本番").Copy After:=Sheets(7)
        Sheets("本番 (2)").Name = sname
    
        For gyo = 29 To 4 Step -1
            If Worksheets(sname).Range("D" & gyo).Value <> komoku Then
                Worksheets(sname).Rows(gyo & ":" & gyo).Select
                Selection.Delete Shift:=xlUp
            End If
        Next
    Next

End Sub

コメントがないためさびしい限りですが第1号になって見ます。

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

[8945]セル内の文字列から区切り文字を見つけ、その区切り文字の間にある文字列を切り出す

2017-09-27 10:45:42 金子 伊智郎さんからの投稿です。

mae, ato を利用して文字列を切り出すやり方がわかりにくかったので
1文字ずつ連結していく方法で作ってみました。
とりあえず結果は同じになりました。

Sub mondai5()
    Dim mojiretsu
    Dim idx
    Dim yakuwari
    Dim gyo
    Dim hidari
    
    gyo = 2
    For hidari = 2 To 7
        yakuwari = Range("D" & hidari).Value
        For idx = 1 To Len(yakuwari)
            If Mid(yakuwari, idx, 1) = "、" Then
                Range("G" & gyo).Value = Range("B" & hidari).Value
                Range("L" & gyo).Value = mojiretsu
                gyo = gyo + 1
                mojiretsu = ""
            Else
                mojiretsu = mojiretsu & Mid(yakuwari, idx, 1)
            End If
        Next
        Range("G" & gyo).Value = Range("B" & hidari).Value
        Range("L" & gyo).Value = mojiretsu
        gyo = gyo + 1
        mojiretsu = ""
    Next

End Sub

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

[8941]文字列を様々に解析して条件分岐

2017-09-27 05:54:38 受講生さんからの投稿です。

・Instr関数は値が0かどうかで必要な文字列を検索し、その結果に応じた処理ができる。 
Instr関数の復習になった!

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

[8938]住所情報を都道府県から市区町村レベルで細かく分割する

2017-09-26 13:58:12 受講生さんからの投稿です。

質問ですが、各回のコメントをチェックしていると動画18で一旦基礎編のフォローアップは完結していたのですかね?
動画19以降は後から追加されたもののようですが、動画35までを目標に進めていきます。
本講座をとても気に入っていますので、発展編1も引き続きやりたいところ
ですが経済的な理由もありますので、まずは基礎編を固めたいと思っております。

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

[8937]住所情報を都道府県から市区町村レベルで細かく分割する

2017-09-26 13:50:20 金子 伊智郎さんからの投稿です。

問題[2]ですが、B11="東京都町田市○×123-1", B12="福島県郡山市○×123-1" などと入れてテストしましたが前者ばNG,後者はOKでした。
ですので若干改修してみました。
他にもうまくいかないケース(千葉県市原市など)は多々あると思いますが
このセンテンスでは全パターンを網羅するマクロを作成する(=品質を高める)のが目的ではないと理解しておりますのでこれで良しとします。

Sub bunkatsu2()
    Dim gyo
    Dim todofuken_idx
    Dim shikugun_idx
    Dim jyusho
    
    For gyo = 2 To 12
        jyusho = Range("B" & gyo).Value
        If Left(jyusho, 3) = "東京都" Then
            todofuken_idx = Len("東京都")
        ElseIf Left(jyusho, 3) = "北海道" Then
            todofuken_idx = Len("北海道")
        ElseIf Left(jyusho, 3) = "大阪府" Then
            todofuken_idx = Len("大阪府")
        ElseIf Left(jyusho, 3) = "京都府" Then
            todofuken_idx = Len("京都府")
        ElseIf InStr(jyusho, "県") > 0 Then
            todofuken_idx = InStr(jyusho, "県")
        End If
        Range("C" & gyo).Value = Left(jyusho, todofuken_idx)
    
        If InStr(todofuken_idx + 1, jyusho, "町田市") > 0 Then
            shikugun_idx = InStr(jyusho, "町田市") + 2
        ElseIf InStr(todofuken_idx + 1, jyusho, "村") > 0 Then
            shikugun_idx = InStr(jyusho, "村")
        ElseIf InStr(todofuken_idx + 1, jyusho, "町") > 0 Then
            shikugun_idx = InStr(jyusho, "町")
        ElseIf InStr(todofuken_idx + 1, jyusho, "区") > 0 Then
            shikugun_idx = InStr(jyusho, "区")
        ElseIf InStr(todofuken_idx + 1, jyusho, "市") > 0 Then
            shikugun_idx = InStr(jyusho, "市")
        ElseIf InStr(todofuken_idx + 1, jyusho, "郡") > 0 Then
            shikugun_idx = InStr(jyusho, "郡")
        End If
        
        Range("D" & gyo).Value = Mid(jyusho, todofuken_idx + 1, shikugun_idx - todofuken_idx)
        Range("E" & gyo).Value = Mid(jyusho, shikugun_idx + 1)
    
    Next

End Sub

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

[8923]残業時間がいちばん多い従業員の情報を出力する。Max関数、Min関数より便利なマクロ

2017-09-25 14:11:10 金子 伊智郎さんからの投稿です。

小川さん お世話になっています。
時間を見つけてフォローアップを進めております。
問題[3]について列を移動していく際にどうしようか考えておりましたが
これまでの各動画のコメント欄でoffsetを使用している方がいらっしゃったので利用してみました。

Sub zangyo_syukei2()
    Dim gyo '行番号
    Dim col_num '列オフセット
    Dim target_month '該当月
    Dim saikou_name '最高値データの名前
    Dim saikou_month '最高値データの月
    Dim saikou_zangyo '最高値データの値
    Const retsu_start = "C" '開始列
    Const retsu_name = "B" '名前列
    Const month_gyo = "5" '月タイトル行
    
    '1月から6月まで列を移動しながらデータ走査
    For col_num = 0 To 5
        '該当月をセット
        target_month = Range(retsu_start & month_gyo).Offset(0, col_num).Value
        '行方向にデータ走査
        For gyo = 6 To 33
            If Range(retsu_start & gyo).Offset(0, col_num).Value > saikou_zangyo Then
                '最高値データが更新される毎に 名前、月、残業時間を更新
                saikou_name = Range(retsu_name & gyo).Value
                saikou_month = target_month
                saikou_zangyo = Range(retsu_start & gyo).Offset(0, col_num).Value
            End If
        Next
    Next
    
    Range("K4") = saikou_name
    Range("L4") = saikou_month
    Range("M4") = saikou_zangyo
End Sub

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

[8922]複数の表の間でのマッチング。VLookUp関数がやっていることをマクロで書くと?

2017-09-24 17:31:54 受講生さんからの投稿です。

左の表と右の表の変数を作ることが基本
IDの一致は理解できた。
それをIF文で作る

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

[8921]ElseIfを使った条件分岐

2017-09-24 06:31:54 横山 知明さんからの投稿です。

VBEを矢印で動かすように意識してやってます。
質問です。
 シート→VBE
 VBE→シート間の移動は、
alt+Tabキー以外で、何かありますか?

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

[8916]複数条件を組み合わせた条件分岐

2017-09-22 21:38:30 横山 知明さんからの投稿です。

if then
else
end if の箱をつくって、それをまた
if then
else
end if の箱に入れると、とても便利で実務で役立てられそうです。

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

[8895]残業時間がいちばん多い従業員の情報を出力する。Max関数、Min関数より便利なマクロ

2017-09-17 09:15:48 受講生さんからの投稿です。

・互いのセルの数値を比べ 条件に合うセルを kati=gyo とすることで選択範囲のセルに対して必要なセルを選び出すことができる。

・複数列について調べる際は、列ごとに比べ、条件に合うセルを残していくようにする。

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

[8894]勘定項目ごとに合計額を算出する。SumIf関数がやっていることをマクロで書くと?

2017-09-17 08:26:04 受講生さんからの投稿です。

動画4を基礎にして出現回数を金額に置き換える。
合計は、累計にならないようにループの初めに0をする。

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

[8891]文字列を加工してデータ転記する(その3)

2017-09-16 16:09:41 ながのさんからの投稿です。

文字列を見つけることがポイント
/や半角スペースを ”/”、" "で示すことで文字列を加工することができる。
いやぁ〜でも、変数がたくさん出てくるので、どの変数が何を意味しているのかを理解することが大事。

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

[8871]文字列を加工してデータ転記する(その2)

2017-09-12 21:23:30 受講生さんからの投稿です。

Instr関数を使って、見つけたい文字列がなければ”0”を返すのがポイント!

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

[8870]文字列を加工してデータ転記する(その1)

2017-09-12 21:05:25 受講生さんからの投稿です。

Left関数、Mid関数、Instr関数の復習になった。
どんどん書く練習をすすめるぞ!

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

[8851]とびとびに存在するデータを拾って加工する

2017-09-10 12:49:23 受講生さんからの投稿です。

・二つのデータを合わせるときは”&”でつける。
・データの規則性をみつけたら変数×3−2のように数式で表せるように考え
 てみる。←この思考が大切!

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


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

 

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

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

トップへ