2021.09.11Excelセミナーレポート 9月11日「ExcelマクロVBAセミナー初級編」開催レポート こんにちは、サブ講師の佐藤です。1か月ぶりの「ExcelマクロVBAセミナー初級編」セミナー、定員を半分にしてソーシャルディスタンスに配慮しての開催となりました。講師もしっかりフェイスガードしております。 書籍ご紹介VBAに初めて挑戦する方から、こんな質問をいただきました。「セルに関数を入力するのと同じように、VBEでもシート上で指定部分を選択したら、それが入力されるようにならないですか?」 こんな風にできたらいいのにな…… ちょうどWorksheetFunctionでワークシート関数を入力しているので、猶更ワークシート関数のシート入力と同じようできたら……と思われるのは自然な流れでしょう。 でも残念ながら、答えは NO ですね。ワークシート関数とVBAは違う機能だからダメ、と端的に言うこともできます。 その場で動作するワークシート関数と、呼び込んで初めて処理をするVBAは違うから。VBAは関数の引数以外にもいろいろ入力するものがあるから。 ……どれもこれもその通りなんですけど、それだけでは面白くありません。 ワークシート関数をシート入力すれば済むものを、わざわざVBAにして手入力する理由が、そこには隠れていたのです! ■わざわざVBAでワークシート関数の引数を手入力する理由 そもそもVBAで関数処理をするメリット・ワークシート関数をセルに入力して、関数が壊れる心配がない・作業列を作らなくてよいのでシートの見た目がすっきりする こんなところでしょうか。 VBAで引数を手入力できるメリット・引数の指定には、数字以外にも自由に指定できる! なんといってもこれです!!!セミナーでも紹介している Cells(Rows.Count, 1).End(xlUp).Row A列を含む表の最下端の行番号を取得するコードです。セミナーでは、For Nextなどの終わり行の可変対応するためのテクニックとして紹介していますが、これをワークシート関数の引数にしたっていいんです。変数に格納してしまえば可読性もUP! その他には、Range("A5").CurrentRegion.Offset(1, 0).ClearContents(A1セルを含む表データの範囲指定の状態で、1行下、0行右にずらした範囲)のセル内容をクリア 演習ではこんな指定方法も学びます。他にもいろいろなセルや範囲の指定方法があり、それら全部をVBAのワークシート関数の引数に指定することが可能なのです。 更に、引数を事前にIFやSelectで条件判定をして、「引数が80以上なら処理、未満スキップ」なんて、条件分岐もできちゃいます。 実に自由にいろいろ指定できることがお分かりになるかと思いますVBAでは、A1、C:Dのような固定値を直接入力しているだけでは勿体ないのです。 これらの処理も頑張ればワークシート関数上でも実現できないわけではないのですが、可読性、メンテナンス性はVBAの方が段違いに優れています。 「マクロは出来ないけど、ワークシート関数のネスト(入れ子)で複雑な処理ができるよ。ただ式が崩れるのが悩み……」という方は、まさしくマクロ習得のハジメドキですよ!!! * * * * * すごい改善社長の吉田Twitter、オンライン版公式TwitterにてExcelに関する情報を配信していきますので、よろしければフォローお願いいたします。 機能と関数を羅列するだけだった従来型のExcel本は読む気がしなかった私が、楽しんで通読できる本を目指して書きました。おかげさまで累計36万部突破。『たった1日で即戦力になるExcelの教科書』https://t.co/JS9J9N4PDf『たった1秒で仕事が片づくExcel自動化の教科書』https://t.co/IhvgcL8SsM pic.twitter.com/tYAc7hMfdf — 吉田 拳@Excelの㈱すごい改善代表 (@sugoi_kaizen) August 21, 2020 Follow @sugoi_kaizen 今日は知らないと損する?!一括入力のショートカットCtrl+Enterをご紹介。基本編と応用2つに分けてご紹介します!まずは基本編!#Excelショートカット pic.twitter.com/HNKkczLlHo — すごい改善Excelセミナーオンライン版【公式】 (@550Excel) July 2, 2021 2つのセミナー、それぞれお申込み受付中です。 Excelを基礎から体系的に学びたい方はこちら↓↓↓ とにかく作業を自動化!1クリックで仕事を終わらせたい方はこちら↓↓↓ 合わせて読みたい [関連記事]