• ベストアンサー

エクセルVBAで複数のファイル名を取得したい

WIN98SEでエクセル2000を使用しています。 ダイアログボックスを使って、選択したファイル(複数)のフルパスを取得したいのですがどうすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

こんな感じかな? 選択したファイル名を一番左のワークシートのA1から下へ書き込みます。 Sub test1()   Dim FName As Variant   Dim I As Integer   FName = Application.GetOpenFilename _     ("Excelファイル (*.xls), *.xls", , , , True)     For I = 1 To UBound(FName)       Worksheets(1).Cells(I, 1).Value = FName(I)     Next I End Sub

huku-huku
質問者

お礼

返事が遅れて申し訳ありません。 教えていただいたマクロを少し編集して作ってみたところ、うまく複数の画像ファイルを読み込むことが出来ました。 本当に有難うございました。 これで光明が見えてきました。

その他の回答 (1)

  • 0shiete
  • ベストアンサー率30% (148/492)
回答No.1

どこまで、できていて、どこができないのか コードを差し支えない範囲で示されたほうが 回答がつきやすいと思いますよ。 補足お願い致します。

huku-huku
質問者

補足

失礼しました。 実はエクセルで写真のサムネイルを作成したくて投稿しました。 現在下記のようなマクロでファイルを一個づつ選択して貼り付けている状態です。 Dim myfile As String myfile = Application.GetOpenFilename("画像ファイル (*.jpg), *.jpg") ActiveSheet.Pictures.Insert(myfile).Select この後、写真のサイズを変更したり、整列させたりするマクロが続くのですが画像ファイルを1個づつ貼り付けるのは面倒なので、複数のファイルを一度に処理できないかと考えています。 ヘルプによるとMultiSelectをTrueにすれば複数ファイルの選択が可能だとありましたが具体的な方法がわかりません。どうすれば良いのでしょうか?

関連するQ&A

  • エクセルVBAで、図の挿入をして図のフルパスを取得したい

    Excel97, Windows98SEを使用しています。 写真パス = Application.GetOpenFilename ActiveSheet.Pictures.Insert(写真パス).Select で、図の入っているフルパスを取得して、挿入しているのですが、 これだと図のファイルを選択する際にプレビューが出てきません。 「図の挿入」ダイアログから図を挿入し、その図のフルパスを 取得できる方法がありましたら教えて下さい。 よろしくお願いいたします。

  • ExcelのVBAでフォルダ名の取得

    お世話になります。 タイトルのままなんですが、 VBAでフォルダのフルパスを取得したいのですが出来るでしょうか? ファイルのフルパスは FN = Application.GetOpenFilename で取得出来たのですが 同じ様に ダイアログから選択する様に出来るでしょうか?

  • VBAにて複数の開いているエクセルファイル名を取得したいです。

    Office2003 ExcelのVBAにて、画面に開き済みのエクセルファイルの名称(複数開いております)を取得する方法はありますでしょうか。

  • 複数ファイルのファイル名を一括取得したい

    Win7 64bitで複数ファイルのファイル名を一括で取得するツール or 簡単な方法を教えてください。 以前は以下のTOOLを使用してました。 http://www.vector.co.jp/soft/win95/util/se193322.html WIn7 32bitではXPのTOOLが使用できるみたいですが、64bitでは無理でした。 よろしくお願いします。

  • VBAでファイル名の取得方法

    FileDialogを使用してユーザーにファイル名を指定してもらい、結果からフルパスを取得する事はできたのですが、パスではなくファイル名を取得するにはどのようにすれば良いのでしょうか? Dim lngCount As Long ' ファイル ダイアログを開きます。 With Application.FileDialog(msoFileDialogOpen) .AllowMultiSelect = True .Show '選択された各ファイルのパスを表示します。 For lngCount = 1 To .SelectedItems.Count lblPath_1.Caption = .SelectedItems(lngCount) Next lngCount End With

  • アクセスでファイル名の獲得

    アクセスのフォームにテキストボックスを作り、このテキストボックス内に、ダイアログボックスで選択したエクセルやテキスト等のファイルのフルパスを取り込みたいのですがどのようにしたらいいでしょうか?

  • ファイル選択ダイアログからファイルのフルパスを取得したい

    Visual Basic 2008について質問があります。 フォームにテキストボックスを配置し、そのテキストボックスに ファイル選択ダイアログで選択したファイルのパスを表示させたいのですが どのようにパスを取得し表示させるのでしょうか? 初歩的な質問で申し訳ありませんがどうぞよろしくお願いします。

  • エクセルのマクロでファイルを開く

    エクセルの「ファイルを開く」ダイアログボックスを使用してファイルを開き、その開いたファイルに対してとあるマクロを実行させたいと思っています。 エクセルの「ファイルを開く」ダイアログボックスでパス取得までは理解出来たのですが、その先の処理が分かりません。 「ファイルを開く」と言うのは、「現在アクティブになっているシートにデータを貼り付けて」の処理でも構いません。 Dim Ret As Variant Ret = Application.GetOpenFilename("Excel ブック (*.xls), *.xls, テキストファイル(*.txt),*.txt") If Ret = False Then MsgBox "キャンセルが選択されました。" Exit Sub Else       'ここにRetで取得しているパスのファイルを開いて、sub_WAITのマクロを実行させたいです。 sub_WAIT.Show End If End Sub

  • フォルダ名だけを取得するVBA

    VBAを使ったエクセルテンプレート適用ツールを作成しているのですが そのVBAのことで教えてください。 現在自作のフォーム上にあるテキストボックスにフルパスが入っているとします(添付図参照)。 *この前提は必須と考えてください。 次に作成ボタンをクリックすると Step1 新しいブックが開かれ行幅や書式などが自動で調整されます。 Step2 ブックの保存ダイアログが自動で開きます。     ただし、保存ダイアログが開いた時点で自作フォーム中の     テキストボックスで指定したフルパスに移動しており、     且つ移動先のフォルダ名(<-注意!!フルパス名ではありません!!)と     同じ文字列をファイル名入力欄に自動で入力されるようにします。    ex) D:\MyProject\Project01\TaskA\にブックを作成し保存する場合、      保存ダイアログのファイル名欄にTaskAとだけ書く。 マクロ自体はここでストップし、これ以降はユーザーがそのファイルメモで 保存してよいかどうかを判断し、問題なければ手動でダイアログ上の「保存」ボタンを押します。 問題はStep2で、保存先のフォルダ名と同じ文字列を保存ダイアログのファイル名に記入するには どのようなコードを書いたらよいでしょうか。 私自身としては下記の二案を考えているのですがそれぞれについて疑問があるので教えてください。 案1 作成ボタンを押した時点でテキストボックスに書かれているフルパスの文字列から   末尾にあるフォルダ名だけを取得して変数に代入し、これを保存ダイアログの   ファイル名欄に反映させる。   疑問:テキストボックスのValue値に書かれているフルパスを示す文字列から      末尾のフォルダ名だけを取得するためのコードは何と書けばよいのでしょうか? 案2 ブックの保存ダイアログが開いて保存先のパスに移動してから今保存ダイアログで    開いているフォルダ名を取得する。    疑問:今アクティブになっているブックが保存されているフォルダ名だけを取得する    方法なら確かあったような気がしています。    しかし今保存ダイアログで表示されているフォルダ名を取得するコードは何と    書けばよいのでしょうか?    そもそもそういったコードや操作自体VBAにあるのでしょうか?

  • Excel VBA:ダイアログを使ってファイル名を取得したい

    ファイルを開く際に、GetOpenFilenameを使用し、以下のように記述しています。 Dim sFName As String Dim sPath As String sPath = ThisWorkbook.Path & "\データフォルダ" ChDir sPath sFName = Application.GetOpenFilename(FileFilter:="CSVファイル(*.csv),*.csv", MultiSelect:=False) このとき、win98ですと、指定したフォルダが表示されますが、 win2000やXPですと、Excelのカレントフォルダが表示されます。 ダイアログ表示したときに、任意のフォルダを表示させるには、どのようにしたらよいですか? ご回答よろしくお願いします。

専門家に質問してみよう