和風スパゲティのレシピ

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

2024-01-01から1年間の記事一覧

Range、Cellsの「.Value」は省略してよいか

VBAにおいてセル(Rangeオブジェクト)を扱う際、「.Value」を省略しても同じ動きになることが多いです。.Valueはどんな時に書く必要があるのか、書く必要がなかったとして省略しても良いのかを解説します。

IsArray(Range)は.Valueを省略してもTrue

IsArray関数は変数などが配列かを調べる関数ですが、Rangeオブジェクトに対してもTrueを返すという性質があります。IsArrayがTrueなのにUbound/Lboundがエラーになるなどにお悩みの方はこの仕様を疑ってください。

変数が配列(Array)かどうか判定する - IsArray関数

変数が配列か調べるには、IsArray関数を使用します。この関数は変数に限らず、関数の返り値や、配列を取得するプロパティも判定してくれます。一点、Rangeに対してもTrueになる点だけ注意して使ってください。

イミディエイトウィンドウをクリアする方法

イミディエイトウィンドウをクリアする方法を紹介します。専用のプロパティ、組込関数はありませんので、イミディエイトウィンドウの限界行数である200行分、Debug.Printを実行することで疑似的に行います。

配列(Array)の次元数を取得する

配列の次元数を取得する方法を紹介します。GetDimensionのような一発で取得する組込関数、プロパティはありませんので、Uboundがエラーを出すまで次元数をループして上げてみるという方法で取得します。

ByRefの引数にただの値や定数を渡したときの動き

ByRefで定義された引数にただの値や定数を渡したらどうなるかを検証します。ByRefで定義された引数に値や定数を渡したときは、ByValと同じ動き(値が入った変数が新しく作られる)をしてくれます。

100本目:WEBから100本ノックのリストを取得

Excel&VBA解説サイト「エクセルの神髄」様出題の問題集、「VBA100本ノック」に対する私の回答と解説のページです。

12/28(土)21:00~ VBA勉強会「第1回 スパゲティコード添削会」

「スパゲティコード添削会」と称して、みなさんのマクロをリファクタリングするVBA勉強会を開催します!ちょっとしたコードからマクロ全体まで、添削してほしいコードがあればなんでもご相談ください!

データ閲覧機能を1クリックで一括設定するマクロ

生CSVなどに対し、列幅自動調整、オートフィルターの設置、ウィンドウ枠の固定、印刷タイトルの設定、すべての列を1ページに印刷、上下左右の余白0をすべてセットするマクロを紹介します。

WEB上の表をExcelに読み込む - QueryTable

WEBページ内にある表(テーブル)を、ワークシートに書き出すコードを紹介します。CSV読み込みなどに使用するQueryTableのAddメソッドにURLを渡すことで、WEBの読み込みも行うことができます。

Excel&VBAのコミュニティ「Excel-Fun.xls*」を開設しました!

Excel・VBAの勉強や困りごと解決のためのコミュニティ 「Excel-Fun.xls*」を開設しました!Discordをプラットフォームに、質問、相談、Tips閲覧、イベント参加にご活用いただけます。お気軽にご参加ください。

最近使ったアイテムを追加/削除する - RecentFilesプロパティ

最近使ったアイテムをVBAから編集したいときは、Application.RecentFilesプロパティを使用します。Addメソッドで追加を、Deleteメソッドで削除を実行できます。

Dictionaryで列番号を管理する

列番号を管理する方法として、列挙型変数Enumを用いる他に、Dictionaryを用いる方法もあります。特に「同じコードをレイアウトの異なるシートに対して実行できる」のが強みですので一度使ってみてください。