• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォルダーの中に特定ファイルを開くの続きですが)

フォルダー内の特定ファイルを開く方法

このQ&Aのポイント
  • フォルダー内の特定ファイルを開く方法について質問です。
  • 見積番号をクリックした際に関連するエクセルファイルが開かれるようにしたいと思っていますが、実行できません。
  • 間違った箇所を教えてください。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.7

何か回りくどい事をされている様な気も? ファイルの『検索』と『開くこと』は、全く別次元のお話です。 >今まで保存したファイル名は"見積番号-月 工事名所" の具体例を数個挙げてもらえますか? 差し障りが有るなら工事名は適当に変えてください。 またExcelファイルの見積番号の部分で重複するファイルがあるのでしょうか? もし一個だけならこんな風かと Private Sub 見積番号_Click() Dim Ipath As String Ipath = "C:\全社員共通\[見積書]\見積\" if dir(Ipath & me!見積番号 & "*.xls") = "" then msgbox "見つかりません" exit sub Ipath = Ipath & dir(Inpath & me!見積番号 & "*.xls") 'debug.print Ipath createobject("shell.application").shellexecute Ipath End Sub

nuocngoai
質問者

補足

ファイル名は下のようにつけます。 "21000-10 据付工事"。 見積番号部分は一つしかないです。月と名称が変わるのです。 それとIf関数はEND IFが必要ですよね。どこに書けばいいですか? VBAがまったく分かりませんのでよろしくお願いします。

その他の回答 (8)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.9

もうひとつ質問を立ち上げられていますね。 そちらで続きを行いたいと思います。(こっちは閉じてね) なお、あちらでも述べましたが、OS と Access のバージョンを明記のこと。 さて、どうしたら一番使いやすいかなと思案中。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.8

ありゃっ御免なさい。 msgbox "見つかりません" exit sub end if ↑ここ

nuocngoai
質問者

お礼

大変助かりました。これでうまくいきました。 ちょっと欲張りですみません見積番号が複数である場合はどうすばいいでかか? 例えば同じ見積書を取るんですが改正版がある場合です。 "2100-10 据付工事" "2100-10 改1_据付工事"

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.6

なぜ唐突にWindows API のShellExecuteが出てくるのだろう? どこかから拾ってきたものの訳も分からず・・だろうと推測しますが・・。 API は強力ですが、薬にも毒(突然のシャットダウン等)にもなりますよ。 こんな風ではいかが Private Sub 見積番号_Click() Dim LngRet As Long Dim stLinkCriteria As String Dim Ipath As String Ipath = "C:\全社員共通\[見積書]\見積\" stLinkCriteria = Ipath & me!見積番号 & ".xls" debug.print stLinkCriteria createobject("shell.application").shellexecute stLinkCriteria End Sub 見積もりのXLSファイルはどこに置いてあるのだろう??? ファイルサーバならそのサーバ名が分からんとね。

nuocngoai
質問者

補足

ご回答ありがとうございます。 これでXLSファイルを開けましたが今まで保存したファイル名は"見積番号-月 工事名所"という風にしましたので見積番号でそのファイルを曖昧検索でしたいですがうまく行けなくて教えて頂きたいです。 下のようにしましたが検索できないかったです。 stLinkCriteria = Ipath & me!見積番号 & " " & ".xls"

  • layy
  • ベストアンサー率23% (292/1222)
回答No.5

ほかの質問と重なりますが、 EXCELを開くこと と テキストボックスの値でファイル名を構成すること と まずは、ファイルはBOOK1.XLS固定にするとか、分けて考えた方がよいのでは?。 ファイルを開く記載はSUB関数にして、ファイル名を与えるとか、です。 参考になりそうなもの、キーワードで探してみると良い。回答全部書くと長いかも、です。

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.4

なぜShellExecuteを。。。? Excelオブジェクトを使ったほうが簡単かも -- Dim obj As Object Set obj = CreateObject("Excel.Application") obj.Visible = True stLinkCriteria = "C:\全社員共通\見積書\見積\見積番号.xls" 'ファイルを開く obj.Workbooks.Open FileName:=stLinkCriteria

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.3

msdnより HINSTANCE ShellExecute( HWND hwnd, // 親ウィンドウのハンドル LPCTSTR lpVerb, // 操作 LPCTSTR lpFile, // 操作対象のファイル LPCTSTR lpParameters, // 操作のパラメータ LPCTSTR lpDirectory, // 既定のディレクトリ INT nShowCmd // 表示状態 ); ShellExecute(hwnd , vbNullString, "見積番号.xls", _ vbNullString, "C:\全社員共通\見積書\見積\", 1)

nuocngoai
質問者

補足

ACCESSの初心者ですのでできるだけ全部の命令を書いていただけますか? せっかく回答していただきましたが全く分かりません。 よろしくお願いします。

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.2

Ipath & stLinkCriteria これじゃないですか? ちなみにstLinkCriteriaも違っています。 \\C:\全社員共通\[見積書]\見積\\見積番号*.xls                

nuocngoai
質問者

補足

回答ありがとうございます。ですがまだわからくて、とりあえず下のように変わったんですがまだうまくいってないです Private Sub 見積番号_Click() Dim LngRet As Long Dim stLinkCriteria As String stLinkCriteria = "\\C:\全社員共通\[見積書]\見積\\見積番号*.xls" LngRet = ShellExecute(0, vbNullString, "見積番号"& stLinkCriteria, _ vbNullString, vbNullString, 1) End Sub

  • layy
  • ベストアンサー率23% (292/1222)
回答No.1

落ち着いて。 ファイル名構成でIPATHを連結しているのに、パラメータでまた連結している。 「\」が1つ多い。 見たらまずこれが怪しい。

nuocngoai
質問者

補足

「¥」を消したことでも実行できないです(ーー!)

関連するQ&A