エクセルマクロ・VBA基礎編フォローアップ ベーシック
基礎編で学んだ内容を定着させるための演習問題とその解説動画で構成しています。
動画一覧
動画のサムネイルをクリックすると、この画面内で、動画が表示されます。
【動画1】 If文とForNext構文を組み合わせる - 21分5秒
演習問題テーマ:If文とForNext構文を組み合わせる
基礎編講義本編で登場した、 If 文です。
今回紹介した
If 条件 Then
Else
End IF
の形は、丸暗記してください。
Visual Basic上、エクセル上で僕が字を書いたりしているときのショートカットキー操作は、しっかりマスターしてくだざい。「ハナコのステップ」等の基本パターンについても、ここで、しっかり慣れてください。
ログインすると、詳細情報を取得できます
【動画2】 複数条件を組み合わせた条件分岐 - 16分8秒
条件が2つあり、それが別の列にあるときの処理の仕方。まずはひとつの条件で動くマクロをつくり、それを使ってもうひとつの条件で動くマクロを1こ完成させるのが大事、For Next構文は最後です。ハナコのステップに忠実に従ってかいてください。
ログインすると、詳細情報を取得できます
【動画3】 ElseIfを使った条件分岐 - 11分11秒
If 条件 then
Elseif 条件 then
Else
End if
の形を使ったパターン。条件の数にあわせて、Endif条件thenを増やします。何度も出てくる同じフレーズは1個ずつ打たないでコピーペーストする習慣をつけてください。
ログインすると、詳細情報を取得できます
【動画4】 出現回数を数える。CountIf関数がやっていることをマクロで書くと? - 17分9秒
変数の値を初期化(値を0にする)してからループを繰り返すパターン。
[1]出現回数をあらわす変数をたてて出現するたびに1つ増やす仕組み
[2]For Next構文で調べ終わったあとに最後の合計を表示する仕組み
[3]最後の合計を表示したらその変数の値を一度0に戻してから次のループに入る仕組みをよくみてください。
ログインすると、詳細情報を取得できます
【動画5】 条件に一致するデータを別表に転記する。AutoFilterより便利な条件抽出マクロ。 - 9分4秒
2つの表がある場合は変数を2つつくるパターン。
2つの変数とは、[1]左の表のどこを調べているか、[2]右の表のどこにかくか、をそれぞれ指定する変数です。ハナコのステップ3「カコウする」とき、左右どちらの変数の加工をしているかに注意して、関係するところだけを加工します。書き出す表のデータ間の行をつめて書き出すためには、1行かきおえて次にII何行目にかくかを指定する仕組みをつくることがポイント。
migi=migi+1の仕組みがどう動くかをよくみてください。
ログインすると、詳細情報を取得できます
【動画6】 条件に一致するデータを別シートに転記する - 7分35秒
2つの表がそれぞれ別のシートにあるパターン。
調べているシート、書き出し先のシートが異なります。このような複数シートのときはシートを指定するのがポイント。調べているシートに限らず書き出し先のシートも含めすべての値のシートを指定する習慣をつけてください。マクロを実行するときにどこのシートを開いていてもきちんと動くマクロをかけるように。また、シート間の移動はtrl+PageUP,Ctrl+PageDownでスムーズに。2つの表がある場合に変数を2つつくるパターンは前回と同じ。変数をつくるときは、どんな目的で作った変数かがわかる変数をつくると便利です。
ログインすると、詳細情報を取得できます
【動画7】 とびとびに存在するデータを拾って加工する - 10分42秒
とびとびのデータをどう扱うかをみてください。
とびとびの間隔に法則をみつけることが大事。法則をみつけたら、1、4、7、12のようにとびとびのデータを、Range("列名" & 変数×3−2).Valueと表現できるというのがポイント。すぐに法則がみつけられなくても実際にかいているうちにわかることがあるのでまずは動くマクロを1個ずつかいてみることが大事です。
ログインすると、詳細情報を取得できます
【動画8】 文字列を加工してデータ転記する(その1) - 7分23秒
セミナーで学習したLeft関数、Mid関数、Instr関数をどう使うかみてください。
Instr関数をつかって区切りの字が何文字目にあるのかを調べる変数をたてるのがポイント。そうすると区切りの字の後からの情報がほしいときは変数+1、前までなら変数−1と表現できるということに注目。
ログインすると、詳細情報を取得できます
【動画9】 文字列を加工してデータ転記する(その2) - 15分18秒
問題3で変数の使い方に慣れてください。
第7回の路線駅名を線と駅名以下にわける方法と基本的には同じことが変数を使えば実現できるというのがわかるかがポイント。基本的には1個を2つにわけるの繰り返し。1個を2つにわけ、わけたうちの1個を2つにわける。このときわけたうちの1個を戻り値とする変数をたてるのがポイントです。あとはInstr関数をつかって区切りの字が何文字目にあるかを調べる変数をたてれば、区切りの字の前か後かは変数-1、変数+1であらわせるというのは第7回と同じ。
問題4、5はInstr関数によって区切りの字の有無もわかるというのがポイント。
Instr関数をつかって区切りの字が何文字目にあるかを調べられると同時に、その字がない場合は値が0となることを利用して、If文を使って区切りの字が1つだけではない場合の処理ができます。またInstr関数はあくまでも区切りの字が何文字目にあるかがわかるだけなので「モノレール」の場合はどうするかよくみて学んでください。
ログインすると、詳細情報を取得できます
【動画10】 文字列を加工してデータ転記する(その3) - 5分11秒
Instr関数をつかって「" "」で、区切りの「スペース」が何文字目にあるのかも調べられるというのがポイント。
[1]Instr関数をつかって区切りの字(ここではスラッシュや半角スペース)が何文字目にあるかを調べる変数を使う
[2]区切りの字の前か後かを変数-1、変数+1であらわす
[3]区切りの字が複数ある場合はInstr関数が区切りの字の有無を判別することを利用してIf文を使う
の3点をしっかり復習してください。
ログインすると、詳細情報を取得できます
【動画11】 勘定項目ごとに合計額を算出する。SumIf関数がやっていることをマクロで書くと? - 12分5秒
項目が出現したらその回数ではなく隣の列の金額を加算する仕組みをつくります。
合計額をあらわす変数をたてること、For Next構文で調べ終わったら合計額を表示する仕組み、複数の項目がある場合に初期化してから次の項目の金額を新たに加算しはじめる仕組みは第10回と同じ。今月支払額合計を、初期化する前の各項目の合計額を利用して加算していく仕組みは、よくみると出現するたびに加算する仕組みと同じだということに気づいてください。
途中ででてくるGoukeiという変数をkobetsuに一気にかえるやり方もここで覚えてください。
ログインすると、詳細情報を取得できます
【動画12】 残業時間がいちばん多い従業員の情報を出力する。Max関数、Min関数より便利なマクロ - 13分27秒
勝ち抜き戦の基本パターン。
勝ち抜き戦勝者をあらわす変数をたてること、暫定勝者の値をきめること、暫定勝者と対戦相手の値を比較して値の大きいほうが勝者になり、次の対戦相手の値と比較するということを繰り返し、最後まで勝ち抜いた勝者が最も大きい値を示す仕組みを学んでください。
勝ち抜き戦の対戦相手が同じ列にいるか、複数の列にいるかによって、暫定勝者の値が列名と数字か、数字だけになるという仕組みもよくみてください。
ログインすると、詳細情報を取得できます
【動画13】 複数の表の間でのマッチング。VLookUp関数がやっていることをマクロで書くと? - 4分46秒
マッチングの基本パターン。
2つの表があるのでそれぞれの表に対応する変数をつくることが基本です。ひとつひとつていねいに、まず左の表のIDとマッチするところに右の情報をもってくる仕組み、次に右の表の情報を順番に全部調べる仕組みをつくります。
Ctrl+Zでマクロの状態を戻す習慣をつけてください。
ログインすると、詳細情報を取得できます
【動画14】 文字列を様々に解析して条件分岐 - 4分54秒
Len関数とInstr関数の復習。
1.Len関数の戻り値が文字列の長さ=文字数をあらわすことを利用したIf文。
2.Instr関数は戻り値が0かそれ以上の数字かによって、ある文字列の有無を示すことを利用したIf文。
ログインすると、詳細情報を取得できます
【動画15】 複数の記号に挟まれた文字列を取り出す - 17分34秒
●●●/▲▲▲▲▲/■■■といった形でひとつのセルに格納された情報から、「▲▲▲▲▲」を取り出す。
といった具合に、複数回登場する同じ記号に挟まれた文字列を取り出すことがよくあります。
その方法を解説します。
Instr関数の引数指定がポイントです。
No.0015 - 問題(前半)
[1]
シート「問題」のセルE3の文字列を元にして、Left関数、Mid関数を用い、以下を行うマクロを作れ
セルF3に路線名を記入する
セルG3に駅名を記入する
セルH3に駅からの距離を記入する
[2]
シート「問題」のセルE3の文字列に対して、以下を行うマクロを作れ
セルI3に、2つのスラッシュのうち、左にあるものが左から何文字目にあるかを記入する
セルJ3に、2つのスラッシュのうち、右にあるものが左から何文字目にあるかを記入する
[3]
シート「問題」のセルE3の文字列について、含まれる路線名、駅名の文字数に関わらず[1]と同様の処理を行うマクロを作れ
[4]
[3]と同様の処理をセルE2-E51のすべての文字列に対して行うマクロを作れ
No.0015 - 問題(後半)
以下では、「RC」という文字列は「鉄筋コンクリート」を指し、「SRC」という文字列は「鉄骨鉄筋コンクリート」を指すものとする。
また、セルD2-D51では、左のスラッシュより手前には、RCとSRCしか出現しないものとする。
[5]
セルD3の文字列を元にして、セルI3-K3のように記入するマクロを作れ
[6]
セルD2-D51のすべての文字列に対して、[4]と同様の処理を行うマクロを作れ
[7]
セルD3の文字列を元にして、セルL3ように記入するマクロを作れ
[8]
セルD2-D51のすべての文字列に対して、[7]と同様の処理を行うマクロを作れ
ログインすると、詳細情報を取得できます
【動画16】 各資料ごとに1番からの番号を割り振る。AutoFill機能より便利なマクロ - 9分49秒
1つ上の行と比べて同じか違うかによってわりふる数字が変わるというのがポイント。
2番目の問題は、同じカテゴリーの中では順番に番号を1個ずつ増やしてわりふる仕組み、違うカテゴリーになったら先頭番号を1に戻してからまた順番に番号を1個ずつ増やしてわりふる仕組み、をよくみてください。
ログインすると、詳細情報を取得できます
【動画17】 表を解析して1行のリストを作る、1行のリストを解析して表にする(その1) - 9分48秒
For Next構文のはじまりに条件をかくパターンと、For Next構文がおわったあとに処理するパターンを学んでください。
複数のセルの情報を1つのセルにまとめてかく際に重複をさける方法として、前回学習した1つ上の行と比べて同じか違うかによって戻り値がかわる仕組みを使います。
ログインすると、詳細情報を取得できます
【動画18】 表を解析して1行のリストを作る、1行のリストを解析して表にする(その2) - 20分31秒
理解してから書くよりも、まず書いてみる。その結果をみてから考えて書きなおすという繰り返しが大事です。
並べ替え済みのリストから重複しないリストをつくる仕組みと、For Next構文の始まった直後と終わった後に特別な仕掛けをつくる仕組みをよくみて何度もマクロを書いてみてください。
ログインすると、詳細情報を取得できます
この講座は有料です

本講座の動画一覧
-
【動画1】 If文とForNext構文を組み合わせる
-
【動画2】 複数条件を組み合わせた条件分岐
-
【動画3】 ElseIfを使った条件分岐
-
【動画4】 出現回数を数える。CountIf関数がやっていることをマクロで書くと?
-
【動画5】 条件に一致するデータを別表に転記する。AutoFilterより便利な条件抽出マクロ。
-
【動画6】 条件に一致するデータを別シートに転記する
-
【動画7】 とびとびに存在するデータを拾って加工する
-
【動画8】 文字列を加工してデータ転記する(その1)
-
【動画9】 文字列を加工してデータ転記する(その2)
-
【動画10】 文字列を加工してデータ転記する(その3)
-
【動画11】 勘定項目ごとに合計額を算出する。SumIf関数がやっていることをマクロで書くと?
-
【動画12】 残業時間がいちばん多い従業員の情報を出力する。Max関数、Min関数より便利なマクロ
-
【動画13】 複数の表の間でのマッチング。VLookUp関数がやっていることをマクロで書くと?
-
【動画14】 文字列を様々に解析して条件分岐
-
【動画15】 複数の記号に挟まれた文字列を取り出す
-
【動画16】 各資料ごとに1番からの番号を割り振る。AutoFill機能より便利なマクロ
-
【動画17】 表を解析して1行のリストを作る、1行のリストを解析して表にする(その1)
-
【動画18】 表を解析して1行のリストを作る、1行のリストを解析して表にする(その2)
コメント紹介
もっと見る