電子書籍の厳選無料作品が豊富!

こんにちは。
ACCESSについての質問です。
基本的にマクロを中心に使っています。VBAは現在勉強中ですから、
VBA初心者でも分かりやすく説明していただけると助かります。

会員の情報の一覧表をフォームで表示しております。
ほとんどの情報は、ACCESSで作ってますが、一部会員から送ってもらうEXCELがあります。
会員情報フォームの中にボタンを作り、そのボタンを押せば、その会員の作ったEXCELを
開けるようにしたいのです。

会員ID毎に会員IDの名前のフォルダを作り,そこにEXCELを入れています。
例えば、
会員IDが"1"の人のEXCELが”C”の中の"1"というフォルダの中にある"業務内容.xls"
会員IDは"2"の人のEXCELが”C”の中の"2"というフォルダの中にある"業務内容.xls"
・・・
という感じです。

会員情報の一覧フォームのあるフィールドにEXCELの場所と名前を入れています。
そのフィールドに入った値を使って、EXCELを開くことはできないでしょうか?
会員IDが1の場合、フィールドには、"c:\1\業務内容.XLS"
会員IDが2の場合、フィールドには、"c:\2\業務内容.XLS"
という値が入れています。


EXCELの場所と名前が固定であれば、マクロのアプリケーションの実行のコマンドラインを使って、
簡単に開けることはできますし、会員が少人数であれば、IFを使って作ることが出来ますが、
VBAならEXCELのファイル名にフォームのフィールドの値を使って開けれるのではないかと。
VBAの本で調べたり、ネットで調べましたが、分かりませんでした。

初めて質問させていただくので、説明がうまくできず、申し訳ありません。
どうぞ、よろしくお願いいたします。

質問者からの補足コメント

  • bonaron様

    回答ありがとうございます。
    試してみたのですが、ファイル名の前後に自動的に#と最後に1と入り認識してくれません。
    "#c:\1\業務内容.xls#1"は、認識できませんとなります。
    回避出来る方法がありましたら、教えていただけますでしょうか?
    よろしくお願いいたします。

      補足日時:2015/10/24 12:30

A 回答 (2件)

開くだけならハイパーリンクが簡単かな?



Private Sub コマンドボタン_Click()
  Application.FollowHyperlink Me.あるフィールド
End Sub
    • good
    • 0
この回答へのお礼

回答下さりありがとうございます。
試してみましたが、ファイル名の前後に#と最後に1が勝手に入り、
認識できないとエラーになります。
具体的には
"#c:\1¥業務内容/xls#1"
になります。理由がわかりましたら、教えていただけますでしょうか?
お手数をおかけいたしますが、よろしくお願いいたします。

お礼日時:2015/10/24 12:34

もし、ご興味があったら、次のプログラムコ-ドをご利用下さい。


私が実際に、会社で利用中なので、動くはずです。
Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Workbooks.Open "c:\1\業務内容.XLS"
Set objExcel = Nothing

私は、拡張子のチェックをしたり、ファイル存在チェックをしたり、していますが、必ず存在していて必ずエクセルなら、このまま、ファイル名だけを動的に差し替えるように組み込めば、目的を果たすプログラムを作ることが出来ると思います。
    • good
    • 0
この回答へのお礼

回答下さり、ありがとうございます。
まだ、テストできていませんが、試してみます。

お礼日時:2015/10/27 11:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!