重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

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

フォルダーの中に特定ファイルを開くの続きですが
次の命令を書きましたが実行できないです。間違った所を教えてほしいです
見積番号とはフォームの中のテキストボックスです。それをクリックする関連するエクセルファイルが開くようにしたいですのでよろしくお願いします。

Private Sub 見積番号_Click()

Dim LngRet As Long
Dim stLinkCriteria As String
Dim Ipath As String

Ipath = "\\C:\全社員共通\[見積書]\見積\"
stLinkCriteria = Ipath & "\" & 見積番号 & "*.xls"

LngRet = ShellExecute(0, vbNullString, Ipath & stLinkCriteria, _
vbNullString, vbNullString, 1)

End Sub

A 回答 (9件)

何か回りくどい事をされている様な気も?


ファイルの『検索』と『開くこと』は、全く別次元のお話です。

>今まで保存したファイル名は"見積番号-月 工事名所"
の具体例を数個挙げてもらえますか?
差し障りが有るなら工事名は適当に変えてください。
また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

この回答への補足

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

補足日時:2010/11/01 12:07
    • good
    • 0

もうひとつ質問を立ち上げられていますね。


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

ありゃっ御免なさい。


msgbox "見つかりません"
exit sub
end if
↑ここ
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/11/01 13:28

なぜ唐突に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ファイルはどこに置いてあるのだろう???
ファイルサーバならそのサーバ名が分からんとね。

この回答への補足

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

補足日時:2010/11/01 09:49
    • good
    • 0

ほかの質問と重なりますが、


EXCELを開くこと

テキストボックスの値でファイル名を構成すること

まずは、ファイルはBOOK1.XLS固定にするとか、分けて考えた方がよいのでは?。


ファイルを開く記載はSUB関数にして、ファイル名を与えるとか、です。

参考になりそうなもの、キーワードで探してみると良い。回答全部書くと長いかも、です。
    • good
    • 0

なぜShellExecuteを。

。。?
Excelオブジェクトを使ったほうが簡単かも

--
Dim obj As Object
Set obj = CreateObject("Excel.Application")
obj.Visible = True
stLinkCriteria = "C:\全社員共通\見積書\見積\見積番号.xls"
'ファイルを開く
obj.Workbooks.Open FileName:=stLinkCriteria
    • good
    • 0

msdnより


HINSTANCE ShellExecute(
HWND hwnd, // 親ウィンドウのハンドル
LPCTSTR lpVerb, // 操作
LPCTSTR lpFile, // 操作対象のファイル
LPCTSTR lpParameters, // 操作のパラメータ
LPCTSTR lpDirectory, // 既定のディレクトリ
INT nShowCmd // 表示状態
);

ShellExecute(hwnd , vbNullString, "見積番号.xls", _
vbNullString, "C:\全社員共通\見積書\見積\", 1)

この回答への補足

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

補足日時:2010/10/29 16:21
    • good
    • 0

Ipath & stLinkCriteria



これじゃないですか?

ちなみにstLinkCriteriaも違っています。

\\C:\全社員共通\[見積書]\見積\\見積番号*.xls
               

この回答への補足

回答ありがとうございます。ですがまだわからくて、とりあえず下のように変わったんですがまだうまくいってないです

Private Sub 見積番号_Click()
Dim LngRet As Long
Dim stLinkCriteria As String

stLinkCriteria = "\\C:\全社員共通\[見積書]\見積\\見積番号*.xls"

LngRet = ShellExecute(0, vbNullString, "見積番号"& stLinkCriteria, _
vbNullString, vbNullString, 1)

End Sub

補足日時:2010/10/29 15:44
    • good
    • 0

落ち着いて。



ファイル名構成でIPATHを連結しているのに、パラメータでまた連結している。

「\」が1つ多い。


見たらまずこれが怪しい。

この回答への補足

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

補足日時:2010/10/29 15:57
    • good
    • 0

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

関連するカテゴリからQ&Aを探す