Excel VBA質問箱 IV

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

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


76644 / 76738 ←次へ | 前へ→

【4512】ファイルを複数選択して開く時の対処
質問  ntomo  - 03/3/25(火) 11:39 -

引用なし
パスワード
   こんにちは
GetOpenFilenameを用いて複数のファイル(CSVファイル)を開いてその開いたファイルに
対して処理を行っているのですが、

GetOpenFilename実行時にファイル選択ウインドウにて、
開くファイルを選択したときに、右クリックにて開くをした際に
1つのファイルのみ選択しているときは正常に処理を終えるのですが、
2つ以上のファイルを選択していると処理がとまってしまいます。
右クリックをできないようにするという手もあるかとは思いますが、
右クリックでも処理が正常にすすむようにしたいなぁと思っています。
どうかいい知恵があったら教えてください。

Sub test()
  Dim vFileName As Variant
  Dim sDefaultPath As String, iFileName As String
  'デフォルトパスの設定(必要に応じて)
  sDefaultPath = "C:\"
  ChDrive sDefaultPath
  ChDir sDefaultPath
  'Excelファイル名の入力(複数選択)
  vFileName = Application.GetOpenFilename( _
  fileFilter:=StrConv("CSV ファイル (*.CSV),*.x*," & _
  "すべてのファイル (*.*),*.*", vbNarrow), filterIndex:=1, _
    MultiSelect:=True)
  'キャンセルされたかチェック(キャンセル時MSG出力)
  If VarType(vFileName) = 11 Then
    MsgBox "キャンセルされました。"
    Exit Sub
  End If
'複数ファイル選択
  Dim i As Integer
  Dim MSG As String
  For i = 1 To UBound(vFileName)
    Workbooks.Open FileName:=vFileName(i) '←ここで処理が完了しているよう
                          'です。
    iFileName = ActiveSheet.Name

'データ処理
    Windows("test.xls").Activate
    Sheets("ワーク").Select
    ActiveCell.FormulaR1C1 = iFileName 'ファイル名をA列に記述
    ActiveCell.Offset(1, 0).Range("A1").Select

'(データ量が多すぎ、'データ処理以前で処理が中止されるので以後の処理を割愛)

  Windows(iFileName & ".csv").Activate
  ActiveWindow.Close
  Next i
  MsgBox "ファイル数:" & UBound(vFileName) & "個 が選択されました。"
End Sub
6 hits

【4512】ファイルを複数選択して開く時の対処 ntomo 03/3/25(火) 11:39 質問
【4516】Re:ファイルを複数選択して開く時の対処 Jaka 03/3/25(火) 15:20 回答
【4517】消し忘れ Jaka 03/3/25(火) 15:29 発言
【4518】Re:ファイルを複数選択して開く時の対処 ntomo 03/3/25(火) 15:48 お礼
【4520】Re:ファイルを複数選択して開く時の対処 Jaka 03/3/25(火) 16:25 回答
【4526】Re:ファイルを複数選択して開く時の対処 ntomo 03/3/25(火) 17:03 お礼
【5244】今ごろ見つかったバグ? Jaka 03/4/30(水) 13:10 発言
【5312】Re:今ごろ見つかったバグ? ntomo 03/5/6(火) 15:20 お礼

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