スタイル

VBAアセットがプログラミングに採り入れているスタイルを紹介します。

スタイル

CSVファイルを使ってエクセルを共同編集する

エクセルのファイルをOneDriveに保存すれば共同編集が可能になりますが、法律事務所の場合、セキュリティ上の懸念があります。そこで、更新したデータをデータごとにテキストファイルで保存することで複数のユーザーが同時に編集できるようにする方法を紹介します。
スタイル

ワードのマクロ起動は文字列のダブルクリックで行う

VBAアセットでは、Word文書内の特定の文字列をダブルクリックすることで、あらかじめ設定したマクロを起動させる手法を用いています。1. この手法が必要となる理由Excel VBAには、セルをダブルクリックしたときにマクロを実行する便利なイ...
スタイル

マクロの起動は「リボンUI」を基本とする

これまでVBAアセットでは、「VBAマクロの起動にはクイックアクセスツールバー(QAT)を使う」ことをスタイルとしてきました。しかし、2025年10月に開催された「旭川セキュリティシンポジウム2025」へのブース出展経験や、所内のMac利用...
スタイル

コードはシートモジュールに書く

VBAの達人たちは、その多くがマクロのコードを標準モジュールに書くことを推奨しています。しかし、VBAアセットでは、コードをシートモジュールに書くというスタイルを採っています。その理由は、次の2つです。シートに関係の強いプロシージャをそれ自...
スタイル

VBAプロジェクト名は固有のものに変更する

Wordのテンプレート(.dotm)やExcelのアドイン(.xlam)を新規作成すると、VBAプロジェクト名は自動的にデフォルトの名前に設定されます。Wordでは 「TemplateProject」、Excelでは 「VBAProject...
スタイル

カスタムドキュメントプロパティを利用する

アドインやテンプレートにユーザー設定を保存したい場合、どこに保存するのかが問題になります。VBAアセットでは、「VA公用文」(Word VBA)の開発過程から得られた経験を踏まえ、カスタムドキュメントプロパティを利用することをそのスタイルと...
スタイル

オブジェクトの解放は確実に行う

オブジェクトは使用後に解放しないとメモリ上に残る可能性があると分かってはいたのですが、実害を受けたことがなかったので、いい加減にしていました。ところが今回、Wordアドインでやっかいな問題を引き起こすことになってしまいました。今後は「オブジ...
スタイル

オプション機能は最低限にする

「VA公用文」を利用しているユーザーの方から、次のようなご要望をいただいたことがありました。「自分は見出しのマークダウン記号に『#』ではなく『.』を用いています。VA公用文がバージョンアップするたびに、VBEで定数を設定し直しているのですが...
スタイル

2つ以上の文字を全角1文字に収める際には、アドバンス幅で倍率を修正する

本や雑誌では、(1)のような見出し番号が全角1文字の幅になっています。ワードのスタイルやアウトラインでは実現できないために、通常、インデントを調整して文字送りを一致させています。でも、文字幅を調節すれば、本や雑誌と同じように全角1文字の幅に...
スタイル

マクロのダイアログボックスに表示させたくないプロシージャにはダミーの引数を設定する

ワードやエクセルなどのアプリケーションの「開発」-「マクロ」メニューを開くと、実行可能なプローシージャの一覧が表示され、「実行」ボタンを押すことで実行することが可能です。特定のプロシージャをここに表示させないようにするためには、プロシージャ...
スタイル

表は必ずテーブルにする

法律事務所の仕事では、エクセルをデータベースとして使うことが多くあります。エクセルをデータベースとして使用する場合に便利な機能として、テーブル機能があるのですが、使っている人は少ないようです。テーブル機能がどうして便利なのかについては、こち...
スタイル

パワークエリのソースはワークシートから設定する

パワークエリのソースをフォルダとしている場合、フォルダ名などを変更するたびにクエリの再設定が必要となります。VBAアセットでは、パワークエリの使い方がわからない弁護士や事務員でもフォルダ名などを変更できるようにするため、パワークエリがソース...
スタイル

変数や処理をまとめたくなったらクラスを使う

実は、クラスモジュールは、今まで使ったことがありませんでした。「使わなくてもできないことは何もない」からです。ところが、先日、ある方が使っているのを見て、「なんかカッコいいな~」と思ってしまったのです。そもそも「クラスモジュールとは何なのか...
スタイル

For Each 構文でワードVBAを高速化する-速度比較ワード版

エクセルVBAの高速化については、さまざまな記事がネット上に公開されています。エクセルVBAについては、条件にもよりますが、「Do While」も「For Next」も「For Each」も大差はなく、より高速化を図りたければ「配列」を使う...
スタイル

VBEの設定

VBAは、VBEと呼ばれる専用のエディタで読み書きを行います。このVBEを使いこなすことが、VBAを使えるようになるための第1歩です。そのためにおススメする設定をご紹介します。オプションの変更「ツール」-「オプション」で「自動構文チェック」...
スタイル

ユーザーフォームの表示位置は手抜きで設定する

エクセルVBAのユーザーフォームは、エクセルの中央に表示されるのがデフォルトになっています。しかし、セルをダブルクリックして入力値をユーザーフォームから選択するような場合、ダブルクリックしたセルの近くにユーザーフォームを表示させたくなります...
スタイル

編集中の行以外のセルにはロックをかける

エクセルを共有している場合、自分が編集しようと思っているセル以外を書き換えてしまうリスクがあります。特に外部データベースにデータを保存している場合は、Ctrl+Zを使った復元ができない場合もあるので問題です。このため、VBAアセットでは、セ...
スタイル

値の共有には引数を使用する

引数とは、プロシージャから別のプロシージャを呼び出すときに計算や処理の元となる値を渡す仕組みです。VBAエキスパート公式テキストのExcel VBAスタンダード(2019年版)には、モジュールレベル変数を利用することで、引数を使用しなくても...
スタイル

標準モジュールは複数使用する

VBAアセットでは、「コードはシートモジュールに書く」ことを推奨しています。だだし、上の記事にも書いているとおり、テンプレートやアドインのように自分自身以外のファイルを操作する場合は、標準モジュールを使わざるを得ません。「公用文テンプレート...
スタイル

リストの種類を把握する

この段落に適用されているリストは?ワードVBAについては、エクセルVBAに比べると情報量が少なく、「これをやるにはどうしたら良いの?」という疑問を書籍やネットで解決するのがなかなか難しいです。本サイトに掲載している「公用文テンプレート」の今...