Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6637 / 13646 ツリー ←次へ | 前へ→

【44105】ファイル選択のためのディレクトリの指定について hiroyui 06/11/4(土) 12:22 質問[未読]
【44106】Re:ファイル選択のためのディレクトリの指... ぱっせんじゃー 06/11/4(土) 12:30 発言[未読]
【44107】Re:ファイル選択のためのディレクトリの指... Hirofumi 06/11/4(土) 13:26 回答[未読]
【44108】Re:ファイル選択のためのディレクトリの指... hiroyui 06/11/4(土) 13:37 お礼[未読]

【44105】ファイル選択のためのディレクトリの指定...
質問  hiroyui  - 06/11/4(土) 12:22 -

引用なし
パスワード
   ファイルを開くためのダイアログボックスを表示した際、選択ディレクトリを指定するにはマクロコードをどうするのでしょうか。
初歩的な質問のような気がしますがよろしくお願いいたします。

【44106】Re:ファイル選択のためのディレクトリの...
発言  ぱっせんじゃー  - 06/11/4(土) 12:30 -

引用なし
パスワード
   ダイアログ表示のコードの前に
↓を入れてみてはいかがでしょう?

 ChDrive "D:\test"
 ChDir "D:\test"

【44107】Re:ファイル選択のためのディレクトリの...
回答  Hirofumi  - 06/11/4(土) 13:26 -

引用なし
パスワード
   私は、こんなやり方をしています

Option Explicit

Public Sub Sample()

  Dim strPath As String
  Dim vntFileName As Variant
  Dim strProm As String

  'パスを設定
  strPath = ThisWorkbook.Path
  
  '読み込むファイルを取得
  If GetReadFile(vntFileName, strPath, False) Then
    strProm = "選択されたFileは " & vntFileName
  Else
    strProm = "マクロがキャンセルされました"
  End If

  MsgBox strProm, vbInformation
  
End Sub

Private Function GetReadFile(vntFileNames As Variant, _
            Optional strFilePath As String, _
            Optional blnMultiSel As Boolean _
                    = False) As Boolean

  Dim strFilter As String

  'フィルタ文字列を作成
  strFilter = "CSV File (*.csv),*.csv," _
        & "Text File (*.txt),*.txt," _
        & "CSV and Text (*.csv; *.txt),*.csv;*.txt," _
        & "全て (*.*),*.*"
  '読み込むファイルの有るフォルダを指定
  If strFilePath <> "" Then
    'ファイルを開くダイアログ表示ホルダに移動
    ChDrive Left(strFilePath, 1)
    ChDir strFilePath
  End If
  'もし、ディフォルトのファイル名が有る場合
  If vntFileNames <> "" Then
    SendKeys vntFileNames & "{TAB}", False
  End If
  '「ファイルを開く」ダイアログを表示
  vntFileNames _
      = Application.GetOpenFilename(strFilter, 1, , , blnMultiSel)
  If VarType(vntFileNames) = vbBoolean Then
    Exit Function
  End If

  GetReadFile = True

End Function

【44108】Re:ファイル選択のためのディレクトリの...
お礼  hiroyui  - 06/11/4(土) 13:37 -

引用なし
パスワード
   皆様ありがとうございました


▼Hirofumi さん:
>私は、こんなやり方をしています
>
>Option Explicit
>
>Public Sub Sample()
>
>  Dim strPath As String
>  Dim vntFileName As Variant
>  Dim strProm As String
>
>  'パスを設定
>  strPath = ThisWorkbook.Path
>  
>  '読み込むファイルを取得
>  If GetReadFile(vntFileName, strPath, False) Then
>    strProm = "選択されたFileは " & vntFileName
>  Else
>    strProm = "マクロがキャンセルされました"
>  End If
>
>  MsgBox strProm, vbInformation
>  
>End Sub
>
>Private Function GetReadFile(vntFileNames As Variant, _
>            Optional strFilePath As String, _
>            Optional blnMultiSel As Boolean _
>                    = False) As Boolean
>
>  Dim strFilter As String
>
>  'フィルタ文字列を作成
>  strFilter = "CSV File (*.csv),*.csv," _
>        & "Text File (*.txt),*.txt," _
>        & "CSV and Text (*.csv; *.txt),*.csv;*.txt," _
>        & "全て (*.*),*.*"
>  '読み込むファイルの有るフォルダを指定
>  If strFilePath <> "" Then
>    'ファイルを開くダイアログ表示ホルダに移動
>    ChDrive Left(strFilePath, 1)
>    ChDir strFilePath
>  End If
>  'もし、ディフォルトのファイル名が有る場合
>  If vntFileNames <> "" Then
>    SendKeys vntFileNames & "{TAB}", False
>  End If
>  '「ファイルを開く」ダイアログを表示
>  vntFileNames _
>      = Application.GetOpenFilename(strFilter, 1, , , blnMultiSel)
>  If VarType(vntFileNames) = vbBoolean Then
>    Exit Function
>  End If
>
>  GetReadFile = True
>
>End Function

6637 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free