和風スパゲティのレシピ

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

ファイルを移動・名称変更する-Nameステートメント

ファイルを移動したりファイル名を変更する際に使用する、Nameステートメントの使い方を解説します。Name 移動するファイルのパス, 移動先のファイルパスという記述で実行でき、フォルダ部分を変えれば移動、変えなければ名称変更ができます。

FileCopyとFSO.CopyFileの違い

ファイルをコピーする際に使用する、FileCopyステートメントとFileSystemObject.CopyFileメソッドの違いを解説します。FSO.CopyFileが完全上位互換と言ってよく、特に「ファイル名省略可」「ワイルドカードで一括コピー可」が大きな長所となります。

Worksheets("○○"). の入力選択肢を出す方法

Worksheets("○○")でシートを取得したとき困るのが、「.」を入れても入力選択肢が出ないことです。この対処法として「変数にSet」「シートオブジェクト名」がありますが、第3の方法「Worksheet型にキャストする関数を作る」方法を解説します。

Sub/Functionプロシージャを呼ぶのにかかる時間

マクロをSub分割したり自作関数を作り始めると、Sub/Functionを呼ぶ時間分処理が遅くならないか心配になります。しかし、検証してみると1,000万回Callして1~2秒程度しか要さないため、プロシージャを呼ぶのにかかる時間は0だと思ってOKです。

IfステートメントとIIf関数の速度比較

5行かかるIf~Else~EndIfの分岐を1行で済ますIIf関数はとても便利なのですが、若干遅いためそれを検証してみます。結論としては、IIfが条件がTrueでもFalse部分も計算してしまうという遅さがあるが、それを除けば実務上実感できる差は出ません。

"1"+"1"="11"

「+」を文字列に対して使うと連結演算子(&と同じ)になります。足し算の結果がかなり大きな誤った値になったり、セルの表示書式を「文字列」にすると正しく計算されないような不具合が発生した場合は、この仕様を疑ってください。

サイトマップとカテゴリを整理しました

記事数がだいぶ増えたので、カテゴリを見直し、サイトマップをリニューアルしました。今回新たに「入門・まとめ」というカテゴリを追加しておりますので、勉強用の読み物が欲しい方はこちらからお探しください。