ワード2000のVBAでダイアログボックスを開いてフルパスを取得する方法

このQ&Aのポイント
  • ワード2000のVBAでダイアログボックスを開いて指定したファイルのフルパスを取得する方法について教えてください。
  • ワード2000を使用してVBAでダイアログボックスを開き、ファイル名ではなくフルパスを取得する方法を教えてください。
  • ワード2000のVBAでダイアログボックスを使って指定したファイルのフルパスを取得する方法についてお知らせください。
回答を見る
  • ベストアンサー

ワード2000のVBAについて

ワード2000を使っています。 VBAで、ダイアログボックスを開き、指定したファイルのファイル名をフルパスで取得したいのですが、下記のコードでは、ファイル名しか取得できません。 どのようにしたら、フルパスを取得できるのでしょうか? たびたびすみませんが、誰か教えてください。 Dim Name With Dialogs(wdDialogFileOpen) If .Display = -1 Then Name = .Name End If End With MsgBox ("ファイル名は" & Name & "です。")

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

  • ベストアンサー
  • kojitti
  • ベストアンサー率32% (449/1386)
回答No.1

以下の行を修正してみてください。 Name = .Name ↓ Name = CurDir & .Name

patman2
質問者

お礼

できました! ありがとうございます。

関連するQ&A

  • VBAでの疑問

    以下のようなコードを見ました。 Private Sub Workbook_BeforeClose(Cancel As Boolean) With ThisWorkbook Application.DisplayAlerts = False If .Name <> .FullName Then SaveAs Else Me.Saved = True End If Application.DisplayAlerts = True End With End Sub これは何のためのコードでしょうか? If .Name <> .FullName Then って、パスなしのBOOK名とパス付BOOK名が同じじゃないのは当然で、同じになるのは新規に作成したばかりで保存する前のファイルくらいしか思いつきません。これでは必ず上書きされてしまうと思いますが、どういう意図が考えられるのかお分かりの方教えていただけないでしょうか?

  • Word VBA: 任意の html ファイルをファイルを開くダイアログから開くには?

    こんにちは、 Word VBA のことで質問があります。 今任意の html ファイルを[ファイルを開く]ダイアログから開くというマクロを作りたいので下記のプログラムを書きましたがこれではあらかじめファイル名やパスが指定されたものになってしまうので目的を満たせないと気づきました。。 Documents.Open メソッドではファイル名の指定が必須だそうですし、、そうするとほかに考えられる手段はどんなものか、 変数を使えばできそうですが、具体的にはどんなプログラムを組めばよいかなど悩んでいます。 ちなみにマクロを作成する環境は word 2003 です。 ***以下、現状のプログラム内容です。*** Private Sub OpenButton_Click() '任意の html ファイルを開き、[File Path] テキストフィールドへファイルのフルパスを表示します Dim dlgOpen As FileDialog Set dlgOpen = Application.FileDialog( _ FileDialogType:=msoFileDialogOpen) With dlgOpen .AllowMultiSelect = False If .Show = -1 Then MainWindow.TextBox1 = .SelectedItems(1) Documents.Open FileName:="C:\test.html", Format:=wdOpenFormatEncodedText End If End With End Sub ************************************************************ 目的を満たすためにはどのようなプログラムをかけばよろしいのか どなたかご指導いただけませんでしょうか よろしくお願いいたします。

  • Access VBAについて教えて下さい。

    Access VBAについて教えて下さい。 <内容> 選択ボタンを押下するとファイル選択のダイアログ画面が表示されます。 そこから複数ファイルを選択してテキストボックスに選択したファイルを取得します。 実行ボタンを押下するとテキストボックスで取得したファイルを同じテーブルにインポートします。 ※テキストボックスの名前 = FileList <VBA> Private Sub 選択_Click() With Application.FileDialog(msoFileDialogFilePicker) .Filters.Clear .Title = "ファイル選択" .Filters.Add "すべてのファイル", "*.*" .Filters.Add "テキストファイル", "*.txt" .Filters.Add "TSVファイル", "*.tsv" .Filters.Add "EXCELファイル", "*.xls" .AllowMultiSelect = True .InitialFileName = CurrentProject.Path If .Show = -1 Then Me.FileList = .SelectedItems(1) 'ユーザーが [キャンセル] をクリックした場合 Else End If End With End Sub Private Sub 実行_Click() 'テーブル削除 On Error GoTo エラー Dim mySQL As String Dim strName As String Dim strmsg As String Set Db = CurrentDb strName = "テスト" strmsg = "" & strName & "テーブルを削除します。" mySQL = "DROP TABLE " & strName '「はい」ボタンを押下した場合 If MsgBox(strmsg, vbYesNo) = vbYes Then Db.Execute mySQL MsgBox strName & "テーブルを削除しました。", vbCritical MsgBox "インポートします。", vbInformation 'インポート開始 DoCmd.TransferSpreadsheet aclmport, acSpreadsheetTypeExcel8, "テスト", FileList, True MsgBox "インポート完了", vbInformation '「いいえ」ボタンを押下した場合 End If Db.Close: Set Db = Nothing Exit Sub 'テーブルが存在しなかった場合 エラー: MsgBox strName & "テーブルが存在しません。", vbExclamation MsgBox "インポートします。", vbInformation 'インポート開始 DoCmd.TransferSpreadsheet aclmport, acSpreadsheetTypeExcel8, "テスト", FileList, True MsgBox "インポート完了", vbInformation End Sub <困っていること> ファイルを複数選択することは、出来ますがテキストボックスには1ファイルしか取得出来ません。 そのため、インポートも1ファイルのみになってしまいます。 どのようにしたらテキストボックスに複数ファイル名を取得し、インポート出来るのでしょうか?

  • エクセルVBAで一番左の可視シート名を取得

    エクセルVBAで一番左側にあるシート名を取得する場合、通常は Sub test01()   MsgBox Sheets(1).Name End Sub で簡単にできますが、このSheets(1)が非表示になっている場合でもその名前が取得されるため、見た目での一番左側にあるシート名ではなくなってしまいます。 もちろん、非表示になっているシートを除外して Sub test02()   Dim n As Integer   For n = 1 To Sheets.Count     If Sheets(n).Visible Then       MsgBox Sheets(n).Name       Exit For     End If   Next End Sub とすれば取得できるのはわかりますが、こんなまだるっこい方法以外に簡単に一番左の可視シート名を取得する方法はないでしょうか? (^∇^)? ご教示くださいませ。

  • エクセルVBA:取得したファイル情報を別シートに貼るには・・・

    いつもお世話になっています。 今エクセルVBAで指定したフォルダ内のファイル情報を取得し、sheet2に貼り付けるものを作っています。 指定したフォルダ内のファイル情報を取得するまでは分かったのですが、作ったVBAを実行するとsheet1のA2セルから自動的に貼り付けられてしまいます。 sheet2のA1セルから貼り付けるにはどうすれば良いのでしょうか?? 作ったVBAはこんな感じです。 まず、フォルダのパスを取得しA2セルへ表示します。 Sub test2()  With Application.FileDialog(msoFileDialogFolderPicker) If .Show = 0 Then Exit Sub Range("A2").Value = .SelectedItems(1) End With End Sub 次に、A2セルの値を使ってファイル名を取得しました。 Sub Test() Dim i As Long Dim pass As String pass = Range("A2").Value With Application.FileSearch .NewSearch .LookIn = pass .FileType = msoFileTypeAllFiles .SearchSubFolders = True If .Execute() > 0 Then For i = 1 To .FoundFiles.Count Cells(i + 1, 1) = .FoundFiles(i) Cells(i + 1, 3) = FileDateTime(.FoundFiles(i)) Next i End If End With End Sub です。 長くて申し訳ありません。よろしくお願いします。

  • エクセルVBA シート名の部分一致検索について エクセル2007

    VBAでエクセルの全シート名を部分一致で検索したいと考えています。 そこで以下のコードを書いたのですが、 インプットボックスにどんな文字列を入力しても全てのシート名を 取得してしまって途方にくれています。 どなたかお助けください。 Sub test01() Dim name As String Dim ws As Worksheet shn = InputBox("検索文字列を入力") For Each ws In ThisWorkbook.Worksheets If ws.Name Like " * " & name & " * " Then ws.Activate MsgBox ws.Name End If Next ws End Sub

  • VBAを始めたばかりです。

    VBAを始めたばかりです。 下記でエラー「オブジェクトが必要です」が出ます。 何故ですか。 Sub A_Sample048() Dim mySht1 As Object Dim mySht2 As Worksheet '準備ここまで Set mySht1 = ActiveSheet If mySht1.Type = xlWorksheet Then Set mySht2 = mySht1 MsgBox mySht2.Name Else MsgBox "最前面のシートはワークシートではありません" End If Set mySht1 = Nothing 'オブジェクトの解放 Set mySht2 = Nothing End Sub よろしくお願いします。

  • WORD2007 VBA

    オープンしているWORDファイルで使用されているフォント名とサイズを全て一覧表示するVBAを希望しています。 次のような表示が欲しいのですが、よろしくお願いします。 MSP ゴシック 10 MSP ゴシック 12 Arial 14 Times New Roman 10 ---------------------------- この質問に対してn-jun さんより以下のご回答を頂きました。サンプルを作りテストしたところWOOD2007で希望通りの結果が得られましたのでベストアンサーとさせてもらいました。 しかし、その後大きなWORDファイルに適用したところ、結果が表示されません。 エラーがでれば問題解決につながるのでしょうが、何らエラーメッセージが出ません。 ご指導いただければありがたいです。 -------------------------------- Word2002で検証しました。。。 Sub try() Dim myDic As Object Dim v, vv Dim i As Integer Set myDic = CreateObject("Scripting.Dictionary") i = 0 ReDim vv(i) For Each v In ActiveDocument.Range.Characters If Len(v) > 0 Then If Not myDic.Exists(v.Font.Name & " " & v.Font.Size) Then myDic(v.Font.Name & " " & v.Font.Size) = "" vv(i) = v.Font.Name & " " & v.Font.Size i = i + 1: ReDim Preserve vv(i) End If End If Next MsgBox Join(vv, vbCrLf) Set myDic = Nothing End Sub

  • ExcelのVBAでブックを保存

    住所録Aと住所録Bがあります。 AとBを比較して、差異をを別ファイルに出力しようとしています。 比較元となるファイルは、AでもBでもかまいません。 比較、判定、ファイルへの出力部分は、省略していますが、保存 する場合は、どこに行うのがよいのですか bookですか。sheetですか。 両方で、SaveAsができまが、使い分けがあるのでしょうか。 どのように使い分けするのでしょうか。 書き方、使い方のおかしいところを指摘して頂くとありがたい です。 --------------------------------------------------------------------------------------------------- Option Explicit Sub test() Dim ret As Integer Dim row1 As Long Dim col1 As Long Dim row2 As Long Dim col2 As Long Dim myRtn As Boolean Dim fno1 As String Dim fno2 As String Dim OutBook As New Workbook Dim OutSheet As New Worksheet Dim OutFileName As String Dim cnt As Integer Dim I As Integer ret = MsgBox("処理を開始します。" + Chr(13) + Chr(10) + "よろしいですか。?", _ vbYesNo + vbQuestion) If ret = vbNo Then End End If myRtn = Application.Dialogs(xlDialogOpen).Show If myRtn = False Then MsgBox "[キャンセル]が選択されました" & vbCr & _ "処理を終了します" Exit Sub End If fno1 = Application.ActiveWorkbook.Name myRtn = Application.Dialogs(xlDialogOpen).Show If myRtn = False Then MsgBox "[キャンセル]が選択されました" & vbCr & _ "処理を終了します" Exit Sub End If fno2 = Application.ActiveWorkbook.Name Set OutBook = Workbooks.Add Set OutSheet = ActiveSheet OutBook.Worksheets(1).Name = "テスト" OutFileName = "テスト.xls" With Application.Workbooks(fno1).Worksheets(1) row1 = 1 col1 = 1 cnt = 1 Do While .Cells(row1, 1) <> "" 処理 (省略) Loop End With MsgBox "処理が終了しました。", vbOKOnly + vbInformation, "確認" Application.Workbooks(fno1).Close Application.Workbooks(fno2).Close OutSheet.SaveAs Filename:=OutFileName OutBook.SaveAs Filename:=OutFileName OutBook.Close End Sub --------------------------------------------------------------------------------------------------- OutSheet.SaveAs Filename:=OutFileName or OutBook.SaveAs Filename:=OutFileName のどちらでも保存ができます。 また、書き方、使い方のおかしいところを指摘して頂くとありがたいです。

  • VBAで書き込みパスワードを解除して開く

    VBAでの作成経験が浅くわからないので、教えてください。 Excel2010のVBAを作成しております。 VBAで”ファイルを開く”ダイアログを表示し、ユーザが指定したファイルのパスワードの保護をマクロの中で解除してファイルを開きたいと思い作成しました。 myMB = Application.Dialogs(xlDialogOpen).Show(arg6:=myPassword) If myMB = False Then Exit Sub End If   ※myPasswordはユーザが開くファイルに使用するパスワード この方法ですと、パスワードを入れるダイアログが表示されてしまいます。 どうしたら、パスワードをユーザが入力することなく、マクロを実行することが できるのでしょうか?

専門家に質問してみよう