オーロラさんの勉強帳

IT企業勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。少しでもお役に立てたら幸いです。

【Excel VBA エキスパート ベーシック】Val関数 (数値へ変換) (VBA入門33)

Val関数とは

Val関数は文字列形式の数値を、数値型に変換します。引数の文字列の左側から数値と認識できる部分のみを数値に変換し、それ以外は除去します。左端が文字の場合は、0を返します。

構文
Val(文字列)

サンプルコード

引数"AB124"を指定した場合、Val関数は左端から数値と認識できる部分のみを変換、左端が数値以外の場合は0を返すので0が返されます。
引数"124AB"の場合は、左端の124までが数値と認識できるので、数値に変換します。

Sub sampleVal()
    Range("A1") = Val("AB124")
    Range("A2") = Val("124AB")
End Subd

f:id:auroralights:20210118223354p:plain

サンプルコード2

以下のコードでは、A列に入っている単位が付いた数値から数値のみを取り出して、B1セルに合計値を返しています。

Sub sampleVal2()
    
    Dim i As Long, tmp As Long
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        tmp = tmp + Val(Cells(i, 1))
    Next
    Range("B1") = tmp
    
End Sub

f:id:auroralights:20210118224131p:plain

【Excel VBA エキスパート ベーシック】Dir関数 (ファイルの存在を確認する) (VBA入門32)

 

Dir関数とは

Dir関数は引数にファイルやフォルダのパスを指定し、指定したファイルやフォルダが存在するときにはファイル名もしくはフォルダ名を返し、存在しないときは「""」を返します。

ファイルやフォルダの存在確認をするときに使うことが多いです。

 

書式:Dir(パターン,[属性])

引数

f:id:auroralights:20210111205753p:plain

属性

f:id:auroralights:20210111205948p:plain※規定値はvbNormal。フォルダの存在確認をしたい場合は、vbDierctoryを指定する必要があります。

サンプルコード

以下のコードでは、ファイルとフォルダの存在確認をして、Dir関数の結果をMsgboxで表示しています。フォルダの存在確認の場合は、引数に「vbDirectory」を指定しています。

f:id:auroralights:20210112235931p:plain

f:id:auroralights:20210112235845p:plain

f:id:auroralights:20210112235856p:plain

 

サンプルコード2

以下のコードでは、ファイルの存在確認でファイルが存在する場合、Magboxを表示後、そのファイルを開く処理をしています。ファイルが存在しない場合は、Exit Subで処理を抜けます。

f:id:auroralights:20210113000224p:plain

f:id:auroralights:20210113000209p:plain

 

【Excel VBA エキスパート ベーシック】InputBox関数 (データを入力するダイアログボックスの表示) (VBA入門31)

 

InputBox関数とは

InputBox関数は、ダイアログボックスにメッセージとユーザが入力できるテキストボックスを表示する関数になります。ユーザが入力した文字列を返します。

 

構文
InputBox(メッセージ,タイトル,デフォルト文字列)
※xpos,yposという表示位置を指定する引数、ヘルプファイル、コンテキストを指定する引数もありますが、紹介を省きます。

f:id:auroralights:20210111142121p:plain

 

InputBox関数のサンプルコード

変数「i」にInputBoxでユーザが入力した値を代入して、Msgboxで変数「i」と文字列を結合してメッセージダイアログを表示するコードです。

f:id:auroralights:20210111142424p:plain

 

InputBox関数のサンプルコード2

変数「i」にInputBoxでユーザが入力した値を代入。IF文で「i」が初期値のままであれば、「初期値のままです」とメッセージを表示して処理を抜ける。初期値以外の値が代入されていれば、セル「A1」にその値を入力するコードです。

f:id:auroralights:20210111142723p:plain