和風スパゲティのレシピ

日本語でコーディングするExcelVBA

VBAの悩みはVBAerに聞け(Zoom配信)に登壇いたします - ExcelVBA

本日20:00~VBAの悩みはVBAerに聞け(Zoom配信)に登壇いたします。他者がコーディングする様をリアルタイムに見、その場で解説を聞くためのイベントです。内容は、初級者向けに、オートフィルターの基本コードを解説します。

アクティブシートを変えずにシートを追加・コピーする

アクティブシートを変えずに、シートを追加・コピー・移動する方法を解説します。アクティブシートを全く変えることなくメソッドを実行する方法はありませんので、元のアクティブシートを記憶し、後でそのシートをActivateして地道に達成します。

新規シートを新しいブックに追加する

新しいシートを、新規のブックに追加する方法を紹介します。それには Set 新規シート = Workbooks.Add.Worksheets(1) というコードを実行します。Workbooks.Addでブックを追加すればそこにシートがありますので、そのシートを取得すればOKです。

エラーメッセージを(ググるために)コピーする方法

エラーが発生した際に、そのエラーメッセージをコピーする方法を紹介します。まずはエラー画面で[デバッグ]を押し、イミディエイトウィンドウに移動します。そこに?Err.Descriptionと入力することで、エラーメッセージを取得することができます。

セル範囲を縮小する/見出し行を除外する

セル範囲を縮小する方法(見出し行を除外する方法)を紹介します。Set 下から1行減らしたセル範囲 = セル範囲.Resize(セル範囲.Rows.Count - 1) や、Set 上から1行減らしたセル範囲 = セル範囲.Offset(1).Resize(セル範囲.Rows.Count - 1)で取得できます。

セル範囲を元の大きさを基準に拡大縮小する

セル範囲を、元の大きさを基準に拡大縮小する方法を紹介します。セル範囲を変更するには、RangeオブジェクトのResizeプロパティを使用し、「セル範囲.Resize(セル範囲.Rows.Count + 1 , セル範囲.Columns.Count)」というコードを実行します。

関数(プロシージャ)分割は思ってるより簡単です

関数分割が難しいのは「なにを関数にすればいいのかわからない」という、目的の理解が最大の悩みと感じます。この目的を「処理のまとまりに名前をつけられること」と捉えて、母国語の力を借りてコードを読めば、関数化の本質がつかめると思います。