2017-08-08 3 views
0

私はVB6でShellExecuteメソッドを使用してファイルを開こうとしていますが、ファイル名はフォーム内のテキストボックスから取得されます。しかし、ファイルは開かず、エラーもありません。VB6 - ShellExecute not working

しかし、変数から参照するのではなくファイル名を直接渡すと、同じメソッドが円滑に機能します。参照のために以下のコード。どこに問題が存在するのかは分かりませんが、どんな助けでも大歓迎です。

WorkingCode

ShellExecute 0, vbNullString, "F:\Desktop\SBKL\template.xlsx", vbNullString, vbNullString, vbNormalFocus 

非稼働コード

Dim FlNme As String 
FlNme = Trim(Me.T_Doc_Link.Text) 
ShellExecute 0, vbNullString, FlNme, vbNullString, vbNullString, vbNormalFocus 
+1

失敗したときに 'FlNme'変数には*何がありますか? – RBarryYoung

+0

また、 'intReturn = ShellExecute(0、vbNullString、FlNme、vbNullString、vbNullString、vbNormalFocus)'の戻り値を取得する関数として呼び出すべきです。 – RBarryYoung

+1

@RBarryYoungありがとうございました。私はFlNmeの中に正確に何が入っているかを調べてみたところ、改行はほとんどないことがわかりました。どのように改行が来たのか、まったくありません。ただし、次のコードはスムーズに機能します。FlNme = Replace(Replace((Trim(Me.T_Doc_Link.Text))、vbCrLf、 ""、vbNewLine、 ") – Maruthi

答えて

1

ShellExecute()を呼び出すようにする前に、ファイルのパスおよび/またはファイルが間違っているときDir$()を使用して、ユーザーに警告が存在する場合は、チェックする必要があります:

If Dir$(FlNme, vbNormal) = vbNullString Then 
    MsgBox "File not found:" & vbCrLf & FlNme 
    Exit Sub 
End If 
ShellExecute 0, vbNullString, FlNme, vbNullString, vbNullString, vbNormalFocus 
+0

この問題は解決されました。私は 'Mark Answered'オプションを見つけようとしましたが、私はできません。 – Maruthi

+0

私の答えで上矢印をクリックしようとしたことがありますか? –

+0

完了。ありがとうございます。完了したとマーク – Maruthi