• ベストアンサー

VBからExcelのテキストを指定して開きたい

 VBのアプリケーションから文書名を指定してエクセルを起動したいのですが 出来なくて困っています。ちなみにコードは下記のとおりです。どこに問題があ るのか教えていただけないでしょうか。 Private Sub Command1_Click() Dim lngReturnCode As Long Dim strFileName As String strFileName = "AllTitles.csv"   lngReturnCode = ShellExecute(Me.hwnd, _ "open c:\***\***.xls", _ strFileName, _ vbNullString, _ App.Path, _ SW_SHOWNORMAL) End Sub

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

  • ベストアンサー
  • baka
  • ベストアンサー率83% (15/18)
回答No.2

#1 のご回答の通り、問題は第二引数にあり、これを "open" とすればよいと思います。無論 CSV ファイルに関連付けられたアプリケーションの起動になります。 確実に Excel を起動したいのでしたら、Shell 関数を使ったほうがよいと思います。 Shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE " & strFileName, vbNormalFocus

その他の回答 (1)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

参考URLで検索をしてみて下さい。 キーワードは gShellExecuteSwShowNormalOpen です。

参考URL:
http://www.vbvbvb.com/jp/gtips/index.html

関連するQ&A

  • アクセスでテキストを開く

    アクセスでパスを指定して、特定のテキストファイルを開く方法を教えていただけますか? いかのモジュールを見つけたのですが、どこに、動かないか… フルパスを入れればよいか分かりません。 どうぞ宜しくお願いします。 *********************************************************************************************** Private Declare Function ShellExecute Lib "SHELL32.DLL" Alias "ShellExecuteA" (ByVal hwnd As Long, _ ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Sub コマンド0_Click() Dim strFilePath As String Dim lngRet As Long Const SW_SHOWNORMAL = 1 strFilePath = Me.txt_Path 'WinAPIを使って関連付けられたアプリケーションを起動 lngRet = ShellExecute(Application.hWndAccessApp, "OPEN", _ strFilePath, vbNullString, CurDir(), SW_SHOWNORMAL) If lngRet <= 32 Then '返り値が 32 以下の場合はエラー MsgBox "ファイルを開けません!", vbOKOnly + vbExclamation End If End Sub ***********************************************************************************************

  • Excelで検索、その後

     過去に、Excelファイルから外部ファイルを検索するダイアログの呼出方法をこのサイトで教わった者です。 以下にそのソースを書きます。 Option Explicit Private Declare Function ShellExecute Lib _ "Shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As Long, ByVal lpOperation As String, _ ByVal lpFile As String, ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Const SW_SHOWNORMAL = 1 Private Const SW_SHOWMINIMIZED = 2 Private Const SW_SHOWMAXIMIZED = 3 Private Const SW_SHOW = 5 Private Const SW_MINIMIZE = 6 Private Const SW_SHOWMINNOACTIVE = 7 Private Const SW_SHOWNA = 8 Private Const SW_RESTORE = 9 Private Const SW_SHOWDEFAULT = 10 Sub 検索ダイアログを出す() ShellExecute 0, "find", "C:\", vbNullString, vbNullString, SW_SHOWNORMAL End Sub    このダイアログを呼び出すと同時に、検索結果を表示する事は可能でしょうか?  なんとか自分で解釈してこれを行いたかったのですが、 時間ばかりが進んで上手く行きません。  vbNullStringの部分にstring型のデータを代入すれば動くと信じていたのですが、ダイアログ出現寺に表示もされないので、更に突っ込んだ検索結果表示なんて夢のまた夢(^^;;;)。  宜しくお願いしますm(_ _)m。

  • フォルダーの中に特定ファイルを開くの続きですが

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

  • excelのデータをvbにとりこむ

    excelのあるセルのデータを取り込みたいのですが、 どうすればよいでしょうか? C:\123.xlsというファイルのsheet1の (2,4)というセルにある実数型のデータを 出力するという、意図です。 Private Sub Setting_Click() Dim xls As Object Dim xlsFilename As String Dim xlsSheetname As String xlsFilename = "C:\123.xls" xlsSheetname = "Sheet1" Set xls = CreateObject("Excel.Application") xls.Application.Visible = False xls.Application.Workbooks.Open xlsFilename Dim r1 As Double r1 = xls.Application.Workbooks.cells(2, 4).Value Print r1 end sub

  • メール

    VBから変数Aを本文に自動的に貼り付ける方法を教えてください。 なお下は以前開発したものです。応用して使えるでしょうか? Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hwnd As Long, ByVal ipopperation As String, ByVal lpfile As String, _ ByVal lpparameters As String, ByVal lpdirectory As String, ByVal nshowcmd As Long) As Long --------- Private Sub ??_Click() Dim LngReturn As Long Dim StrCommand As String StrCommand = Trim$(Text_mail_pc) If LCase(Left(StrCommand, 7)) <> "mailto:" Then StrCommand = "mailto:" & StrCommand End If LngReturn = ShellExecute(Me.hwnd, "open", StrCommand, vbNullChar, vbNullChar, Sw_Shownormal) End Sub ---------- ※↓のVBの質問とは全く関係ありません。

  • VBで235-234.3を0.7にする方法

    以下のプログラムを実行するとText1の内容は0.6999969となります 0.7となるプログラミング方法があれば教えて下さい Private Sub Command1_Click() Dim u1 As Single Dim u2 As Single Dim u3 As Single u1 = 234.3 u2 = 235 u3 = u2 - u1 Text1 = u3 End Sub 以上宜しくお願いします

  • VB6のバグか?

    VB6のバグか? 下記のように、 文字列「278754742940.733」を数値に変更し、1000倍にすると、278754742940732になったんですよ。 Private Sub Command1_Click() Dim s As String s = "278754742940.733" Dim d As Double d = Val(s) * 1000 MsgBox Fix(d) 'intも同じ End Sub 結果: 278754742940732 どうすれば、解決できますか?

  • VB6 テキストファイルへの保存方法

    みなさん教えてください。 いまVB6.0で、テキストボックス(textbox1)に入力するデータ(数値)を名前を指定するテキストファイルに内容を保存したいと考えています。 これをやろうと、下記のように構文を作成したのですが、何故かうまくいきません。 みなさんアドバイスを頂けないでしょうか。 宜しくお願いします。 Private Sub Command1_Click() Dim StrFN As String Dim sw As System.Io.StreamWriter 'テキストファイルを上書きで保存する StrFN = Application.GetSaveAsFilename("", "測定データ(*.txt),*.txt,全てのファイル(*.*),*.*", , "測定データファイル名指定") 'ダイアログ表示 If Dir(StrFN) <> "" Then If vbYes <> MsgBox("同名ファイルがあります。" & vbLf & _ "上書きしますか?", vbYesNo) Then Exit Sub End If End If sw = StrFN '書込み sw.Write (textbox1.Text) sw.Close () End Sub

  • VB6 テキストへの書き込み

    VB6 SP6でプログラムを作成中です。 あるテキストボックスに書いた文字列をコマンドを  押すと、#5のテキストへ書き込みたいと思います。コマンドを押すたびに改行させたいのですが、1行目のデータが書き換えられてしまいます。何か良い方法はありませんか? Private Sub Command3_Click() Dim めぐ As String めぐ = Text1.Text Open "C:\Documents and Settings\Owner\デスクトップ\通信データ.txt" For Output As #5 Print #5, めぐ Close #5 End Sub

  • excelファイルをVBで取り込む

    下記のようなプログラムで、excelから表を取り込むのですが、シート名を指定しても、オブジェクトが見つかりませんとエラーが出ます。visualbasicの極意500から抜粋して使用しようとしました。わかる肩よろしくお願いいたします。 Private Sub Command1_Click() Dim DB As Database Dim strConnect As String Dim rst As Recordset strConnect = "Excel 8.0;DATABASE=C:\temp\売上実績.xls" Set DB = OpenDatabase("C:\temp\売上実績.xls", False, False, strConnect) 'テーブル名を指定 Set rst = DB.OpenRecordset("売上$", dbOpenTable) Do While Not rst.EOF Debug.Print rst!売上高 rst.MoveNext Loop rst.Close DB.Close Set DB = Nothing Set rst = Nothing End Sub

専門家に質問してみよう