見出し画像

ファイル、フォルダのリネームツールを作ってみる②

前回作成したレイアウトにコーディングしていきます。

まずは開発タブを開いて、デザインモードにしましょう。
次に、対象のオブジェクトをダブルクリックして、コーディング画面を開きます。

デザインモードでオブジェクトを編集

1.”フォルダを開く” ボタン
フォルダピッカーを開いて選択したフォルダのパスをテキストボックスに格納する動作をします。
 コマンドボタンの名前は
  CommandButton_OpenFolder
 テキストボックスの名前は
  TextBox_pathとします。

Private Sub CommandButton_OpenFolder_Click()

Dim SelectFolder As String     '選択したフォルダ名を格納する変数'
    
  'フォルダピッカーのダイアログを開く'
    With Application.FileDialog(msoFileDialogFolderPicker)

  'テキストボックスにパスが記入されていた場合はそのフォルダを開く'
        If Sheet1.TextBox_path.Value <> "" Then
            .InitialFileName = Sheet1.TextBox_path.Value
        End If

        If .Show = True Then     
            'OKボタンが押された場合、フォルダ名を取得する'
            Sheet1.TextBoxpath.Value = .SelectedItems(1)                
        End If
    End With
End Sub

2.”ファイル名取得” ボタン
 テキストボックスで指定したフォルダを走査して、エクセルのセルに書き出す動作をします。
ここでは標準モジュールのコードを呼び出す動作にしました。
 1.セルのデータをクリア
 2.ファイル名を列挙
 3.フォルダ名を列挙
これらの機能は後から標準モジュールに作成します。

Private Sub CommandButton_GetFiles_Click()

Call Cell_cls '最初にExcelのセルをクリアする'
Call make_list 'ファイル名をセルに列挙する'
Call folder_list 'フォルダ名をセルに列挙する'

End Sub

3."書き換え" ボタン
 セルに記載された現在のファイル名(フォルダ名)を新しいファイル名(フォルダ名)に書き換える動作をします。
ここでも標準モジュールのコードを呼び出す動作にしています。
 1.ファイル名を書き換え
 2.フォルダ名を書き換え

Private Sub CommandButton_rename_Click()

Call change_fname  'ファイル名を書き換える'
Call change_folder 'フォルダ名を書き換える'

End Sub

4.”クリア” ボタン
 作業が終わったらテキストボックスの値とセルのファイル名、フォルダ名を削除する動作
 2.で使ったセルをクリアするコードをここでも使います。
 テキストボックスは空の値を代入しているだけです。

Private Sub CommandButton_Clear_Click()

Call Cell_cls      'セルのファイル名、フォルダをクリアする'
TextBox_path.Value = ""  'テキストボックスの値を空にする'

End Sub

5.”フォルダパス” テキストボックス
 テキストボックスには特にコーディングは必要ありません。
 1.のコードをコピペすればテキストボックスをダブルクリックしたらフォルダピッカーを開く動作を記述することも可能です。いらんけど。

Private Sub TextBox_path_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

Dim SelectFolder As String     '選択したフォルダ名を格納する変数'
    With Application.FileDialog(msoFileDialogFolderPicker)
        If Sheet1.TextBox_path.Value <> "" Then
            .InitialFileName = Sheet1.TextBox_path.Value
        End If
        
        'ダイアログボックスを表示'
        If .Show = True Then
            
            'OKボタンが押された場合、フォルダ名を取得する'
            Sheet1.TextBox_path.Value = .SelectedItems(1)
                    
        End If
    End With
End Sub

ここまでのコードはオブジェクトを配置したSheetに記載されます。

次は標準モジュールを作成して、コーディングしていきます。

この記事が気に入ったらサポートをしてみませんか?