• ベストアンサー

GetOpenFilenameメソッド アクセス

エクセルには GetOpenFilenameメソッドが用意されてるから Debug.Print Application.GetOpenFilename("Microsoft Excelブック,*.xls") のようにしてファイル名を取得できますが アクセスで同じような事がしたい場合、どのメソッドを使えば良いでしょうか? アクセスにGetOpenFilenameメソッドはないようです。

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

  • ベストアンサー
  • oka_me
  • ベストアンサー率86% (26/30)
回答No.1

Excelと比べると少々面倒な方法になるようですが、以下のURLに方法が記載されていました。 http://www.accessclub.jp/samplefile/samplefile_159.htm 但しそのままですとページの記載通り「2002、2003でのみ」しか動作しませんので If Returnvalue = "10.0" Or Returnvalue = "11.0" Then の部分に、使用したいAccessのバージョンに対応した数値を追加してやる必要があります。 (例えば2007の場合は12.0のようです。この数字は参照設定から確認できます) 2007で試しましたが問題無く動作しました。

OHSPOKNCPWQMO
質問者

お礼

ご回答ありがとうございます。

関連するQ&A

  • エラー「メソッドまたはデータメンバが見つかりません」

    「メソッドまたはデータメンバが見つかりません」というエラーが出ています。 windowsVISTAでACCESS2007を使っています。 windowsXPでACCESS2003でも同じエラーが出ます。 ソースは下記になります。 Dim OpenFileName As String  OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")  MsgBox "ファイル名は" & OpenFileName & "です" End Sub 「.GetOpenFilename」が反転して、エラーになります。 かれこれ2時間格闘してますが、全く原因がわかりません(T-T) どうかよろしくお願いいたします。

  • GetOpenFilename メソッドについて

    ACCESSのVBAで、GetOpenFilename メソッドを使いたいのですが、VBAで記述を行うとエラーになってしまいます。EXCELのVBAでは、記述できます。ACCESSのVBAでは、使用できないのでしょうか? どなたか、教えて下さい。 (ACCESSは、Office XPです)

  • ◆ GetOpenFilename()で複数ファイル選択ができない、I

    ◆ GetOpenFilename()で複数ファイル選択ができない、IsArray()でNG。。。   複数選択のやり方をOKWaveで見つけ便利に活用させて頂いていたのですが、  今年になって、機能しなくなり困っています。手が出ない状況です。  ご教示、よろしくお願いします。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 概要:Debugでみると、IsArray()の結果がfalse(GetOpenFilename不成功)  使用環境:  Microsoft EXCEL 2002 (10.6856.6853)SP3  Microsoft Visual Basic 6.0  Microsoft Windows XP Professional version 2002 Service Pack 3 不具合の発生箇所: 取込元ファイル = Application.GetOpenFilename(FileFilter:="Excelブック(*.xls),E*.xls", _ Title:="取込元の4ファイルを選択。Ctrlキーを押しながら複数選択。", MultiSelect:=True) If IsArray(取込元ファイル) Then ' 読む込み成功の確認、IsArray関数 <問題のマクロ> Sub メイン() ' ------------------------------------------------------------------- ' -  取込元のファイルを選択してオープン  ' ------------------------------------------------------------------- Dim 取込元ファイル, Work1, Work3 As Variant Dim i As Integer 取込元ファイル = Application.GetOpenFilename(FileFilter:="Excelブック(*.xls),E*.xls", _ Title:="取込元の4ファイルを選択。Ctrlキーを押しながら複数選択。", MultiSelect:=True) If IsArray(取込元ファイル) Then ' 読む込み成功の確認、IsArray関数 For i = 1 To UBound(取込元ファイル) '配列の上限UBound(データの件数 4件) Workbooks.Open 取込元ファイル(i)   'ファイルオープン Work1 = Dir(取込元ファイル(i)) WORK3 = WORK3 & Work1 & vbCrLf 'MSG表示用(取込んだファイル名一覧)   MsgBox "選択したファイルは " & vbCrLf & WORK3 & " ", vbInformation Next i Else MsgBox "取込元ファイルのオープンを" & vbCrLf & "中止しました", vbExclamation End If End Sub ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

  • アクセスでは、一つのアプリケーションに対して、一つ

    エクセルは、一つのアプリケーション内で複数のブックを開くことが可能ですが、 アクセスでは、一つのアプリケーションに対して、一つのファイルしか開けないのでしょうか? ここで言う「ひとつのアプリケーション」と言うのは、 スタート→すべてのプログラム→Microsoft Office Excel 2007を押した事です。

  • アクセスでApplication.Caption

    アクセスでApplication.Captionに代わるコードはありますか? エクセルでなら Sub test01() Debug.Print Application.Caption End Sub は動きますが、アクセスだとコンパイルエラーになります。 CaptionがApplicationのメンバにないからだと思います。 いくつかのアプリケーションを跨いでVBAを動かしているのですが、 アクセスで自身のアプリケーション名、もしくはファイル名を取得するコードはありますか? ご回答よろしくお願いします。

  • エクセルVBAのメソッドSaveasについて

    Dell Dimention8300 HDD 80GB (空き領域 17.4GB) Pentium4 2.6GHz 512MB RAM Windows XP Pro/エクセル2002使用です。 エクセルVBAで下記のようファイルを追加するようにしました。 ブックA(.xls) 147KB ブックB(.xls) 18KB ブックC(.xls) 7,955KB ブックAにマクロを記述 ブックBから新しいファイルをつくる個数を取得 略 for i = 1 to (新しく作る個数)  Workbooks("ファイルC").Activate  ActiveWorkbook.SaveAs FileName:="C:\・・・・・・(新ファイル名)" next 略 ファイルCをメソッドSaveAsにて新しいファイルを作っていくのですが、その個数が数十個程度あれば問題ないのですが、100個を越えると非常に遅くなるか、途中でプログラムの応答がなくなります。 メソッドSaveAsが、CPUかメモリを浪費しているのかと思うのですが、関係あるでしょうか? よろしくお願いします。

  • GetOpenFileName()について

    Visual C++(Win32API)でアプリケーションを開発しているのですが,GetOpenFileNameで複数のファイル名を取得できるもののファイルごとの分割が出来ません。ちなみに,複数のファイルを選択できるようにはしてあります。また,環境の関係上文字列の型はLPTSTRを使わずLPWSTRを利用しています。環境は以下の通りです。 OS:Windows 7 SP1 Visual Studio:Visual Studio 2010 Professional 回答よろしくお願いします。

  • Accessのマクロについて教えてください。

    WinXP Access2002です。 現在Accessのあるフォームにコマンドボタンを貼り付けこのボタンをクリック時にマクロでアプリケーションの実行を指定しExcelのファイルを開いています。具体的には c:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE10\EXCEL.EXE D:\EXCEL\AAAY\BBB.XLS です。D:\以下はExcelで作ったファイルの格納場所です。現在これでうまくいっています。 この場合BBB.xlsしか立ちあがりません。これはこれでBBB.xlsだけで用が足りているので何ら問題ないのですがやろうとしていることは¥AAAのホルダーに入っている複数のCCC.xls、DDD.xls・・・・・・等をマクロの途中ダイアログボックス等で仮に今ほしいファイルがXXX.XLSだったとしたら目的のXXX.xlsを指定し開く方法がありますでしょうか。 又これが駄目ならマクロで¥AAAのホルダーまで開く方法はあるのでしょうか。何せAccessのマクロでExcelは立ちあがりますが沢山のホルダーがあるので一歩でも自動で近づきたいのです。方法がありましたらよろしく教えてください。

  • 別枠にアプリケーションを立ち上げてファイルをひらき

    OSはXPで Officeは2003です。 Book1xlsを開いています。 それとは別のエクセルアプリケーションでBook2.xlsを開きたいのですが Book2.xlsをダブルクリックすると、 Book1xlsと同じアプリケーション内に開いてしまいます。 なので今はスタート→すべてのプログラム →Microsoft Office→Microsoft Office Excel 2003で 別枠に先にアプリケーションを立ち上げて 新規に開かれるBook1を×で消して そこにBook2.xlsをドラックして開いています。 Book2.xlsをダブルクリックでも別枠で開く方法があれば教えてください。 VBAは使いたくないです。

  • VBAでのファイルの開き方について

    いつもお世話になっております。(エクセル2010を使用) エクセルVBAを学習中の者です。 ダイアログボックスを表示してファイルを開く・・・というコードを記述しているのですが、分からない点があるためご指導をお願いします。 Sub Sample1() Dim openFileName As String openFileName = Application.GetOpenFilename filefilter:="Microsoft Excelブック,*.xls?" Workbooks.Open Filename:=openFileName End Sub を実行するとコンパイルエラーの構文エラーが表示されます。 Sub Sample2() Dim openFileName As String openFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") Workbooks.Open Filename:=openFileName End Sub を実行すると正常に動作します。 私の現在の知識ではSample1も正常に動作するはずなんですが・・・ (※コードはVBEをコピペしています) 両者の違いはなんでしょうか?(※スペルの間違いは無いとは思いますが・・・) どうぞよろしくお願いいたします。

専門家に質問してみよう