和風スパゲティのレシピ

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

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

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

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

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

シート名を取得・変更する - Worksheet.Name

ワークシートの名前を取得したり、変更する場合は、WorksheetオブジェクトのNameプロパティを使用します。シート名 = Worksheet(1).Nameというコードで名称を取得でき、Worksheet(1).Name = "変更シート名"というコードで名称を変更できます。

ByVal(値渡し)とByRef(参照渡し)の違い

関数に引数を渡す際の渡し方である、ByVal(値渡し)とByRef(参照渡し)の違いを説明します。ざっくり説明すると、関数に値(引数)を渡すときに、「変数に書いてある情報だけを渡すのが値渡し(ByVal)」、変数をそのまま渡すのが参照渡し(ByRef)です。

シートを削除する - Worksheet.Delete

ワークシートを削除するDeleteメソッドの使い方を解説します。シートを削除する場合は、[削除するシート].Deleteを実行します。削除時の警告メッセージを表示せずにシートを削除する場合はApplication.DisplayAlerts = False/Trueでこのコードを挟みます。

重複しないよう連番付きでシート名を設定する

シートの名称設定は、すでに使われているシート名を指定するとエラーになってしまいます。これを回避するために、シート名が重複した場合は(2)、(3)、(4)…と連番を付与してからシート名を設定するコードを紹介します。

ブック内の最終(右端)シートを取得する

あるブックの最後のシートを取得する方法を解説します。これを一発で取得するWorkbooks("○○").LastSheetみたいなプロパティはありませんので、Set 最終シート = 指定ブック.Worksheets(指定ブック.Worksheets.Count)と地道に取得することになります。