講座「エクセルマクロ・VBA基礎編フォローアップ ベーシック」のワーク一覧を表示します
シート「mondai2」で、各行につき、「合計」の値が100を超えていたらJ列に「○」そうでなければ「×」をつけるマクロを作ります。
コーディングのノウハウ、サンプルデータのダウンロードについては、リンク先のページを参照ください。
「ハナコのステップ」の手順をしっかり守ってください。
If - ElseIf - Else - End If という構造文です。
D列に記載された得点が
80点以上だったら「A判定です」
60点以上だったら「B判定です」
40点以上だったら「C判定です」
それより下だったら「D判定です」
と記載するマクロを作ります。
コーディングのノウハウ、サンプルデータのダウンロードについては、リンク先のページを参照ください。
If - ElseIf - Else - End If という構造文です。
D列に記載された得点が
80点以上だったら「A判定です」
60点以上だったら「B判定です」
40点以上だったら「C判定です」
それより下だったら「D判定です」
と記載するマクロを作ります。
ただし、今度は、出力する値をいったん変数に入れて、If文を抜け出してから値を書き出すようにします。
コーディングのノウハウ、サンプルデータのダウンロードについては、リンク先のページを参照ください。
特定の条件を満たすセルの数を数えます。
基礎編フォローアップ前半最大の難所かもしれません。
リンク先の解説を何度も熟読して、仕組みを理解してください。
そして、何度もプログラムを書いて、また解説を熟読してください。
このくり返しで、あるとき、「あ、なんだ。そういうことか」と腑に落ちるようになります。
このワークのポイントは、「変数の値をIf文の中で自分で変更する」という部分です。
そこが理解できて運用できるようになれば難しくはありません。また、できることの幅が一気に広がるようになります。
理解/理解に基づいた実装能力の評価には、タイムトライアルを行うのがいちばんです。
解いて、改善してまた解いて、として、このタイミングで、できる改善をつきつめてみてください。
所要時間が何分何秒になったところでモノにできるか、楽しみに取り組んでください。
コーディングのノウハウ、サンプルデータのダウンロードについては、リンク先のページを参照ください。
前回の問題と似ていますが、今回は、出現回数ではなく、数値の合計を求めます。
ほんの少しだけ、目先が変わりました。
ですが、やることはほぼ同じです。
同じように解けるでしょうか。
「前回の問題とまったく同じだな」と感じられるようになるまで、くり返し問題を解いてください。
特定の条件を満たすセルの数を数えます。
今回は、複数のアイテムについて数えます。
このワークのポイントは、「カウンターの値を0にしてから数えはじめる」という点です。
これをしっかりできていれば、どのアイテムについて数えるときも、数えはじめの段階では、カウンターの値は0になっています。
前回の問題と似ていますが、今回は、出現回数ではなく、数値の合計を求めます。
ほんの少しだけ、目先が変わりました。
ですが、やることはほぼ同じです。
同じように解けるでしょうか。
「前回の問題とまったく同じだな」と感じられるようになるまで、くり返し問題を解いてください。
条件に一致するものを別表に転記します。
すでに、「条件に一致するものがあった場合は、変数の値を 1つ増やす」というテーマの演習を行っています。
新たに加わった要素は、「そのようにして値を変更した変数を使って転記先の行を指定する」という点のみです。
条件に一致するデータを、別シートにある表に転記します。
複数シート間でのデータ転記では、転記元のセル、転記先のセルの指定で、「どのシートのセルなのか」ということを明示しましょう。
でないと、トラブルの元です。
とびとびに存在するデータを拾って加工します。
参照先ページの動画で最初に紹介した、左の表用と右の表用で2つの変数を用意して解決する方法を使ってください。
とびとびに存在するデータを拾って加工します。
参照先ページの動画で2つ目に紹介した、For Next構文用の1つ変数をだけで解決する方法を使ってください。
文字列を切り出して別々のセルに投入します。
Instr関数、Left関数、Mid関数を使います。
まずは、参照先ページで紹介されているうち、[1]の課題についてだけトライしてください。
文字列を切り出して別々のセルに投入します。
Instr関数、Left関数、Mid関数を使います。
まずは、参照先ページで紹介されているうち、[1], [2] の課題について連続してトライしてください。
文字列を切り出して別々のセルに投入します。
Instr関数、Left関数、Mid関数を使います。
参照先ページで紹介されているうち、[3]の課題にトライしてください。
1つの文字列を分割して、3つのセルに分割して投入します。
文字列を切り出して別々のセルに投入します。
Instr関数、Left関数、Mid関数を使います。
参照先ページで紹介されているうち、[4]の課題にトライしてください。
Instr関数で区切り文字を探す際に条件分岐を伴います。
文字列を切り出して別々のセルに投入します。
Instr関数、Left関数、Mid関数を使います。
参照先ページで紹介されているうち、[5]の課題にトライしてください。
Instr関数で見つけようとする区切り文字の長さが2文字以上の場合を扱います。
項目別の合計額と総計を同時に算出します。
これ以前の演習までで、項目別の合計額を算出すること、総計を算出することは個別にできるようになっているかと思います。
さて、それでは、これらの処理を同時に行えるでしょうか。
参照先ページの[1]の課題を解いてください。
最大値を取得します。
暫定の最大値を変数に格納しておき、新たに取得した値と比較します。
新たに取得した値のほうが大きければ、新たに取得した値で暫定の最大値を更新します。
すべてのセルについて調査を終えたあとで、「暫定の最大値」を出力します。
参照先ページの[2]の課題を解いてください。
調査範囲内で最大値の格納されたセルを取得します。
最大値の格納されたセルの行番号の情報を格納する変数を用意します。
そのセルの値と新たに調査したセルの値ととを比較します。
新たに調査したセルの値のほうが大きければ、新たに取得したセルの行番号で変数の値を更新します。
すべてのセルについて調査を終えたあとで、変数に格納された行番号情報を元にして出力すべき情報を決定します。
参照先ページの[3]の課題を解いてください。
調査範囲内で最大値の格納されたセルを取得します。
調査範囲が複数列にまたがります。
発展編1まで学習が進むとより洗練された手法がいくつかあるのですが、今回は、基礎編レベルの知識だけで解決します。その分、腕力は必要になります。
参照先の「問題(前半)」で示された課題を解いてください。
ひとつの文字列を、3つ以上に分割します。
ひとつの文字列内にある、2つの区切り文字の場所を調べます。
Instr関数には、「○文字目以降について調べる」と、調査対象文字列のどの範囲で区切り文字を探すかを調べるオプションがあります。
これを利用します。
そして、Left関数、Mid関数を使って文字列を切り出します。
この課題も、発展編2まで学習を進めると、より洗練された解決方法を学べます。
今回は、基礎編の知識のみで、腕力で解決します。
参照先の「問題(後半)」で示された課題を解いてください。
ひとつの文字列を、3つ以上に分割します。
ひとつの文字列内にある、2つの区切り文字の場所を調べます。
Instr関数には、「○文字目以降について調べる」と、調査対象文字列のどの範囲で区切り文字を探すかを調べるオプションがあります。
これを利用します。
そして、Left関数、Mid関数を使って文字列を切り出します。
この演習問題では、得られた文字列の内容によって出力する文字列を変更することがあります。
参照先ページの [1] の課題を解いてください。
同一カテゴリものものには同一の値を入れます。
上のセルから順番に値を調べていきます。
そして、ひとつ上のセルと値が違ったら、新しいカテゴリIDを生成します。
頻出パターンです。
参照先ページの [2] の課題を解いてください。
同一カテゴリものものには同一の値を入れます。
と同時に、すべてのアイテムに固有のIDを割り当てます。
リンク先ページの問[1]から問[2]までを解きます。
For Next 構文の Step キーワードを使います。
参照先ページの課題[1]を解いてください。
ひとつの表を元にして、リストを生成します。
For Next構文内で、出力用リストにだいたい近いものを作ります。
ただし、そのままでは先頭 or 末尾に余計な文字列が残ります。
そこで、出力時に、余計な部分を取り除きます。
動画ではいくつかの解法を紹介しています。
どの方法でも実装できるよう、十分に練習してください。
参照先ページの課題[2]を解いてください。
ひとつの表を元にして、重複しないリストを生成します。
表には、重複した値が格納されています。
上のセルから順番に値を調べます。
そして、もしもひとつ上のセルと値が異なる場合は、リストの要素とします。
For Next構文内で、出力用リストにだいたい近いものを作ります。
ただし、そのままでは先頭 or 末尾に余計な文字列が残ります。
そこで、出力時に、余計な部分を取り除きます。
動画ではいくつかの解法を紹介しています。
どの方法でも実装できるよう、十分に練習してください。
参照先ページの課題[2]を解いてください。
重複した値を持つ表から、重複しない値だけの表を生成します。
さらに、そのそれぞれの値に対して、元の表で関連づけられた値をリストとして書き出します。
個々の部品はこれまでの演習でくりかえし練習してきたものです。
総合力が問われます。
「実装しきるには実力が不足している」と感じられた場合は、自分が苦手としていることに気づき、これ以前の関連の演習で練習してください。
2024年11月20日 21:41
小川 慶一さん
2024年11月20日 21:28
AIユーザさん
2024年11月14日 17:04
小川 慶一さん
2024年11月13日 18:12
AIユーザさん
2024年11月13日 18:11
田中 宏明さん