Excelセミナーレポート


Excelセミナーレポート

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に関する情報を配信していきますので、
よろしければフォローお願いいたします。

 

2つのセミナー、それぞれお申込み受付中です。

Excelを基礎から体系的に学びたい方はこちら↓↓↓

とにかく作業を自動化!1クリックで仕事を終わらせたい方はこちら↓↓↓

法人向けExcelオンライン研修

利用人数無制限・個別サポート付きのExcelオンライン研修です。

すごい改善のExcelセミナー

1日完結・実務直結・無期限サポートつきのExcelセミナー開催中

累計40万部突破のExcel教科書

Excel関数Tシャツ等のご購入はこちら