和風スパゲティのレシピ

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

○○と△△の違い

NameとFSO.MoveFolderの違い

ファイルを移動するNameステートメントとFileSystemObject.MoveFolderメソッドの違いを解説します。どちらも2つのパスを受け取ってファイルを移動します。MoveFolderのみワイルドカード*による一括移動ができる点が一番大きな違いです。

NameとFSO.MoveFileの違い

ファイルを移動するNameステートメントとFileSystemObject.MoveFileメソッドの違いを解説します。どちらも2つのパスを受け取ってファイルを移動します。MoveFileのみワイルドカード*による一括移動ができる点が一番大きな違いです。

FileCopyとFSO.CopyFileの違い

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

RmDirとFSO.DeleteFolderの違い

フォルダを削除する際に使用する、RmDirとFileSystemObject.DeleteFolderの違いを解説します。実はこの二つはほとんど違うもの、RmDirは空のフォルダを削除するステートメントですが、DeleteFolderは中身ごとフォルダを削除するメソッドです。

KillとFSO.DeleteFileの違い

ファイルを削除する際に使用する、KillステートメントとFileSystemObject.DeleteFileメソッドの違いを解説します。両者はほとんど同じ仕様で、引数(削除するファイルのパス)、使えるワイルドカード、エラーが発生する条件などの挙動もほぼ同じです。

Time関数とTimer関数の違い

現在時刻を取得するTime関数とTimer関数の違いを解説します。単位(型)と精度が異なります。Time関数がDate型で表示形式や各種関数に利用できるのに対し、Timer関数は1/00秒まで計測できるSingle型のため、実行速度計測などに向いています。

DirとFSO.FolderExistsの違い

フォルダが存在するか判定する、Dir関数(vbDirectory)と、FileSystemObject.FolderExistsメソッドの違いを解説します。一番の違いは返り値で、True/Falseを返すFolderExistsに対し、フォルダ名を返すDir関数は="",<>""で判定する必要があります。

DirとFSO.FileExistsの違い

ファイルが存在するか判定する、Dir関数とFileSystemObject.FileExistsメソッドの違いを解説します。まずは返り値が異なり、Dir関数は=""<>""での判定が必要になります。また、Dir関数はワイルドカード*を使用した部分一致検索が可能です。

MkDirとFSO.CreateFolderの違い

フォルダを作成するときに使用する、MkDirステートメントとFileSystemObject.CreateFolderメソッドの違いを解説します。両者はほとんど同じものと思ってOKで、引数、省略時のカレントフォルダ指定、エラーの発生条件も全く同じ仕様です。

Worksheet.Selectと.Activateの違い

Worksheetオブジェクトから呼び出す場合の、SelectメソッドとActivateメソッドの違いを説明します。どちらもアクティブシートを設定/変更できるメソッドですが、単独のシート選択はActivate、複数のシート選択はSelectがそれぞれ得意です。

個人用マクロブックと普通のブックの違い

汎用関数・マクロを保存する方法として「個人用マクロブック」があります。このブックは一度作ると以降はExcelの起動時に裏で開かれるのですが、実はこれを普通のブックでやることもできます。その時の細かい違いを解説します。

Replace関数とReplaceメソッドの違い

ExcelVBAにおいて文字列を置換する処理に使う、Replace関数とReplaceメソッドの違いを解説します。Replace関数には、「シート関数のREPLACE」と、「VBA関数のReplace」の2つがありますので、ここでは3つのReplaceについて解説します。

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

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

キャメル記法とハンガリアン記法の違い

変数・関数などの名づけ方のルールである、キャメル記法とハンガリアン記法の違いを説明します。単語の区切りを分かりやすくするためのルールがキャメル記法で、どんな変数かを分かりやすくする」ためのルールがハンガリアン記法です。

システムハンガリアンとアプリケーションハンガリアンの違い

変数の名づけ方のルールである、システムハンガリアンとアプリケーションハンガリアンの違いを説明します。どちらも変数に接頭詞をつける命名で、lngApplePriceと変数の型を接頭するのが前者、yenApplePriceと変数の意味を接頭するのが後者です。

キャメルケースとスネークケースの違い

変数・関数などの名づけ方の種類(ルール)である、キャメルケースとスネークケースの違いを説明します。CamelCaseと、各単語の頭文字を大文字にするのがキャメルケース、snake_caseと、単語間にアンダーバーを入れるのがスネークケースです。

キャメルケースとパスカルケースの違い

変数・関数などの名づけ方のルールである、キャメルケースとパスカルケースの違いを説明します。camelCaseと、先頭の単語は小文字で始めるのがキャメルケースで、PascalCaseと、先頭の単語は大文字で始めるのがパスカルケースです。

Do While~Loop と Do~Loop While の違い

繰り返し処理を行うステートメントである、Do While~Loop文と、Do~Loop While文の違いを解説します。両者とも条件式によってループを続けるか判定しますが、While条件式 を書く位置が違います。ほぼ同じ動きなので、より有名な方を使いましょう。

Do While と Do Until の違い

繰り返し処理を行うためのステートメント、Do While文と、Do Until文の違いを解説します。「条件を満たす間続ける」のがDo While文「条件を満たしたら終わる」のがDo Until文です。使い分けですが、そもそもどちらも使わなくていい気がします。

RangeとCellsの違い

セルを指定するプロパティ、RangeとCellsの違いを解説します。どちらもセルを取得するために使いますが、Rangeの方ができることが多く「セル範囲や複数のエリア」を取得できます。Cellsは指定が数値なのを利用して、変数や定数を活用するために使います。

RangeオブジェクトとRangeプロパティの違い

Rangeオブジェクトと、Rangeプロパティの違いを解説します。「Rangeオブジェクトを取得する、たくさんあるプロパティの中のひとつがRangeプロパティ」です。これだけで分かるのは難しいと思いますので、より詳しく説明していきます。

Property Let と Property Set の違い

プロシージャの種類である、Property LetとProperty Setの違いを解説します。両者とも、プロパティの取得・設定を対となる2関数で行う仕組みのうちの、「値の設定」を担うプロシージャですが、対象とするプロパティがオブジェクトかどうかが異なります。

Function と Property Get の違い

プロシージャの種類である、FunctionとProperty Getの違いを解説します。どちらも、任意の数の引数を受け取り、1つの値を返します。Propertyの本来の目的である、同じ名前のProperty Let/Setプロシージャを用意できる点が、最も大きな違いです。

変数の型「Long」と「Integer」の違い

VBAの変数の型である「Long型」と「Integer型」の違いを解説します。両者とも整数を扱いますが、箱の大きさが違います。使うのは常にLong型でOKです。Integerの方がメモリを使わなくて地球にやさしそうですが、気にするレベルではありません。

VALUE関数とVal関数(とCDbl関数)の違い

VBAの関数「Val関数」と、ワークシート関数「VALUE関数」の違いを解説します。とその前に、実はVALUEとValはほとんど違う関数です。ワークシートのVALUE関数と対応するVBAの関数は、Val関数ではなくCDbl関数ですので、それを念頭に解説をどうぞ。

IsNumeric関数とISNUMBER関数の違い

VBAの関数「IsNumeric」と、ワークシート関数「ISNUMBER」の違いを解説します。両方とも数値かどうかを判定しますが、IsNumericの方が条件が緩く「数値に見ることができる⇒True」、ISNUMBERの方が条件が厳しく「完璧に数値⇒True」という違いがあります。