【Excel VBA】Dir 関数
Dir 関数によって指定したパス名と属性が一致するとを戻り値を返します。
主に所定のフォルダーまたは、ファイルが存在するかの判定で使われることが多いと思います。
【構文】
Dir(引数(パス名).引数(属性))
パラメータ | 省 | 内容 |
---|---|---|
引数(パス名) | 〇 | ファイルやフォルダのパスを指定します。 |
引数(属性) | 〇 | ファイルの属性を組み合わせて指定します。 |
戻り値のタイプ | ー | 文字列型 (String) |
引数(パス名)は、"C:\Dir\Sampie.pdf"のようにパス名+指定するフォルダー名、ファイル名となります。(指定するフォルダー名、ファイル名には * や ? のワイルドカードとすることも可能です)
※「ThisWorkbook.Path」とした場合は、Excelブックのあるフォルダーのパス名となります。
引数(属性)は、省略すると vbNormal として扱われます。
引数(属性) | 値 | 内容 |
---|---|---|
vbNormal | 0 | 標準ファイル(既定値) |
vbReadOnly | 1 | 読み取り専用ファイル |
vbHidden | 2 | 隠しファイル |
vbSystem | 4 | システムファイル |
vbVolume | 8 | ボリュームラベル |
vbDirectory | 16 | フォルダ |
【Excel VBA】「WorksheetFinction.Replase」メソッド
文字列操作には欠かせない文字の置き換えを行うコードを紹介します。
文字の置き換えは、Excelの機能にも備えられているので「WorksheetFinction」オブジェクトに「Replase」メソッドを指定します。
文字列の置き換えを行う
【構文】
WorksheetFinction.Replase(①,②,③,④)
- 置き換えを行う文字列を指定します。変数の指定も可能ですがデータ型は Steing である必要があります。
- 置き換える文字の位置を指定します。先頭の文字は、1と数えます。
- 置き換える文字の数を指定します。2 で指定した文字列の位置を1として置き換える文字の数になります。
- 置き換え後の文字列を指定します。変数の指定も可能ですがデータ型は Steing である必要があります。
①~④のパラメータは、省略は不可です。すべて指定する必要があります。
【Excel VBA】「NumberFormatLocal」 プロパティ
「NumberFormatLocal」 プロパティによってExcelシート上のセルにおける表示形式を設定することができます。
表示形式を変えることでセルに入力されている情報の見た目を様々な形にすることができます。
例えば、「2020/3/6」でも「2020年3月6日」、「令和2年3月6日」とセルの設定しだいで見かけ上の表示を変えることができます。
セルの表示形式を設定する
【構文】
Rangeオブジェクト.NumberFormatLocal=”表示形式”
上記のように指定する表示形式は、セルの書式設定におけるユーザー定義のものと同じです。
【コードの例1】
A1のセルについて入力値を小数点第2位まで表示します。
セル A1 の値が 10 の場合は、10.00 と表示されます。
【コードの例2】
変数の宣言で変数 conStr を Range オブジェクト として宣言し、その後に変数 conStr に B1 を代入します。
「NumberFormatLocal」 プロパティにその変数を Range オブジェクト として指定し、表示形式を yyyy/m/d に設定しています。
セル B1 の値が「2020/3/6」の場合は、「2020年3月6日」と表示されます。
【文字列操作】数字を漢数字に変換する
文字列操作として数字を漢数字に変換するコードを紹介します。
使う機会は少ないかと思いますがこのコードは、セルの書式を設定することで変換をおこなっています。
「NumberFormatLocal」プロパティは、セルの書式を操作します。
例をあげるなら
Range("A1").NumberFormatLocal = "yyyy/m/d"
ならば「A1のセルを年月日の書式に設定する」というコードになります。
漢数字に変換の場合は、以下のようなコードを指定します。
- [DBNum1] 123 → 百二十三
- [DBNum1]# 123 → 一ニ三
- [DBNum2] 123 → 壱百弐拾参
- [DBNum2]# 123 → 壱弐参
- G/標準 数字に戻します。
「NumberFormatLocal」プロパティの詳細は、以下のリンクにて解説しています。
【文字列操作】英数字→半角、カタカナ→全角に変換する
英数字→半角、カタカナ→全角に変換する
文字列の操作として英数字を半角にカタカナを全角にするコードを紹介します。
Excelの表に入力された情報を整理する処理が必要になることがあるかと思います。
それに半角のカタカナは、環境によって文字化けする可能性があるし、インターネット上でのやり取りで問題があるので全角に変換したいところです。
「WorksheetFunction.Replace」メソッド の詳細は、以下のリンクにて解説しています。