教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA プログラミング】(関数53)CurDir関数のプログラミング例を教えて!

f:id:m_kbou:20220128095820p:plain

CurDir関数を使用したプログラミング例を紹介します。

 

 

例題

カレントフォルダ選択欄(A2セル)はプルダウンにてフォルダが選択ができる様に設定されています。この選択欄から任意のフォルダを選択し、<実行>ボタンをクリックします。ボタンをクリックすると選択したフォルダにカレントフォルダを変更した後、現在のカレントフォルダを表示します。(※プルダウンの中には「このファイルの保管場所」の項目が含まれています。この項目を選択した場合、現在開いているExcelファイルのパスがカレントフォルダとなります。)

[実行前]:

カレントフォルダ選択欄(A2セル)はプルダウンにてフォルダが選択できます。任意のフォルダを選択して<実行>ボタンをクリックします。

f:id:m_kbou:20220128100057p:plain

[実行後]:

①「C:¥temp」を選択し<実行>ボタンをクリックした場合、カレントフォルダがC:¥tempに変更され「C:¥temp」が表示されます。

f:id:m_kbou:20220128100108p:plain

②「このファイルの保管場所」を選択し<実行>ボタンをクリックした場合、現在Excelを開いているフォルダをカレントフォルダに変更します。今回の例ではC:¥物置に保管されているExcelファイルを開いたため「C:¥物置」が表示されました。

f:id:m_kbou:20220128100123p:plain

 

プログラミング

プログラミングは以下の通りとなります。

[記述例]:

Sub サンプル()

  '↓処理①
  If (Range("A2") = "このファイルの保管場所") Then
    ChDir ThisWorkbook.Path
  Else
    ChDir Range("A2")
  End If

  '↓処理②
  MsgBox CurDir
   
End Sub

処理①:カレントフォルダの変更
ChDirステートメントを使用してカレントフォルダ選択欄(A2セル)で選択したフォルダをカレントフォルダに変更します。(※カレントフォルダ選択欄で「このファイルの保管場所」を選択した場合は、現在開いているExcelファイルのフォルダをカレントフォルダに変更します。)

処理②:現在のカレントフォルダの表示
CurDirステートメントを使用して処理①で変更したカレントフォルダをMsgBoxで表示します。

との内容になります。

f:id:m_kbou:20220128100339p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。また、ボタンにプログラムを割り当てるにはこちらを参考にして下さい。

 

ダウンロード

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com