選択ファイル(フルパス名)をアクティブセルから表示
ダイアログボックスが自動的に開き選択ファイル(フルパス名)
が表示されるVBEがあるんですが、(下記参照)改良したい点がありますので見て下さい。
Sub Excelファイル()
Dim i As Integer
Dim xFileNames As Variant, xFile As Variant, xDir As String
With Application.FileDialog(msoFileDialogFilePicker)
xFileNames = Application.GetOpenFilename( _
FileFilter:="Excel ファイル (*.xls; *.xlsx; *.xlsm),*.xls; *.xlsx; *.xlsm", MultiSelect:=True)
If IsArray(xFileNames) Then
i = 1
For Each xFile In xFileNames 'Xファイルネーム(フルパス名)すべての要素に同じ処理を繰り返す
xDir = Dir(xFile) '変数xDir=xファイル名(ファイル名)
If i = 1 Then 'i=1の場合(選択ファイル一つ目の場合)
Cells(i, 1).Value = Replace(xFile, xDir, "") 'A列の中にフルパスからファイル名を取り除いた値を表示する
Cells(i, 1).Offset(1).Value = xDir '1行下の値がファイル名である。
i = i + 2 'iに2を加えてループ
Else '違う場合
Cells(i, 1).Value = xDir 'A列に順にファイル名を表示する
i = i + 1 'iに1を加えてループ
End If
Next xFile 'xファイルに戻る
End If
Cells(Rows.Count, 1).End(xlUp).Offset(1).Activate 'データの最終行をA列で検知して一つ下の行がアクティブセル
End With
End Sub
この命令文だとA1セルから縦に順にフルパス名が表示され、データの最終行の一つ下がアクティブセルになるようになっています。
改良したい点は、A列限定ではなくアクティブセルから順に上記と同じようにフルパス名が表示され、データの最終行の一つ下にアクティブセルがくるVBEに改良したいです。
※上記VBEのようにアクティブセルに選択ファイル一つ目のフルパスからファイル名を取り除いたデータを表示し、
Offset(1,0)に選択ファイル一つ目のファイル名のみを表示、Offset2以降は選択ファイル2つ目以降のファイル名だけを表示するようにする。
VBA初心者なので、上記のようにそれほど難しくない構文で仕上げたいのですが、
もしできる方いましたら教えてください。
よろしくお願いいたします。
お礼
ありがとうございます。 Excelの方は解決しました。 Accessの方も同じ要領で探ってみます。