• 締切済み

エクセル2010VBA

エクセル2003VBAを使用して、エクセルブックのOPEN処理を作成していました。 先日、会社パソコンのOFFICEを2003→2010に更新し、動作させてみると、 「ファイルが見つかりません」 と、エラーウィンドウが表示されてしまいました。 ※2003では問題なく動作していました。 ソースは下記のようになっています。 ※エラー部抜粋です。 ------------------------------------------------------------ Private Function GetExcelData(ByVal sFile As String) As Integer On Error GoTo Err Dim xlApp As New Application Dim xlBook As String xlBook = sFile ' 日報ファイル名 xlApp.Workbooks.Open Me.txtNippoPath.Text & sFile '日報Bookを開く ------------------------------------------------------------ sFile:ファイル名が入っています。 Me.txtNippoPath.Text:パス名が入っています。 別途、エクセルで、Workbooks.Open "パス+ファイル名" をコマンドボタンで動作させると、普通に開くのですが・・・。 解決方法が分かる方が入れば、よろしくお願いします。

noname#149392
noname#149392

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

> 先日、会社パソコンのOFFICEを2003→2010に更新し、 そのとき、ファイルも2003→2010に更新してませんか? 2003のファイル拡張子はxls、2010でマクロ付きのファイル拡張子はxlsmです。

noname#149392
質問者

補足

回答ありがとうございます。 2003から2010に更新したのですが、ファイルは2003のまま使用しています。 エクセル2003の人がまだ多いため、形式は変更していません。

  • utun01
  • ベストアンサー率40% (110/270)
回答No.1

Dim xlApp As New Application を以下に変えてみてはいかがでしょうか? Dim xlApp As Excel.Application set xlApp = Application 基本的に、ExcelのApplicationインスタンスをVBAから新規に作ることはありません。

noname#149392
質問者

補足

早急な、ご回答ありがとうございました。 早速、変更していみましたが、 「ファイルが見つかりません」 と、表示されてしまいました。 エクセルの下側のプログレスバーは、読込みをしているようで、 100%まで進んで、エラーウィンドウが表示されました。 また、何か分かりましたら、教えて頂けたらと思います。

関連するQ&A

  • エクセルvba

    エクセルvbaなのですが Sub test() Dim xlApp As Object Dim xlBook As Object Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(ActiveWorkbook.FullName) 'コード・・・ Set xlApp = Nothing Set xlBook = Nothing End Sub これだと Set xlBook = xlApp.Workbooks.Open(ActiveWorkbook.FullName) の部分で、エラーになります。 実行時エラー1004です。 自身ファイルをオブジェクトに格納して操作したいのですがどうすればいいでしょうか?

  • 既に開いているエクセルを閉じるには?

    既に該当のファイルが開いているのなら閉じたいのですが xlBook.Quitだとエラーになります。 Sub test1() Dim xlApp As Excel.Application Dim xlBook As Workbook Dim FileName As String FileName = "C:\test.xlsm" Set xlApp = GetObject("", "Excel.Application") 'GetObjectで合ってるか不安 Set xlBook = xlApp.Workbooks.Open(FileName) If xlBook.ReadOnly = True Then 'ファイルが開いてるのなら MsgBox "既にファイルが開いているので閉じます。" xlBook.Quit 'エラー 438 End If xlApp.Quit 'これって何のために必要? Set xlBook = Nothing 'ココを通り過ぎるのにすごく時間がかかる。 Set xlApp = Nothing End Sub と言うコードを作りました。 xlBook.Quitがダメならどのコードを使えばいいでしょう? また、 GetObject("", "Excel.Application") と言う開き方でいいのでしょうか? あと、 xlApp.Quit は何のために必要なのでしょう? タスクマネージーのプロセスを見ると、 Set xlApp = GetObject("", "Excel.Application") を通る時に新しいEXCEL.EXEが作成され、 Set xlApp = Nothing を通り過ぎる時に、そのEXCEL.EXEが消えます。 だから xlApp.Quit は不要ですか?

  • 確実にエクセルをアクティブにする方法

    アクセスからエクセルを開いた時に エクセルがアクティブになったりならなかったり、 その時によって違うのですが 確実にエクセルをアクティブにする方法はありますか? AppActivateステートメントを使うという事がわかったのですが AppActivateをどうやって使えばいいでしょうか? ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Sub test() Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim MyFileName Dim MyFileFullName Dim プロシージャー名 MyFileName = "book.xlsm" MyFileFullName = CurrentProject.Path & "\" & MyFileName プロシージャー名 = "開く" Set xlApp = New Excel.Application Set xlBook = xlApp.Workbooks.Open(MyFileFullName) xlApp.Visible = True xlApp.Run "'" & MyFileFullName & "'!" & プロシージャー名 Set xlBook = Nothing Set xlApp = Nothing End Sub ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ で問題なくエクセルファイルを立ち上げられますが ここで確実にエクセルをアクティブ(手前に表示)にする方法を教えてください。

  • エクセルを表示できない

    プログラム初心者です。 Private Sub Command3_Click() On Error Resume Next Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet With xlApp.Application Set xlApp = GetObject("F:\vb6.0\book1.xls") Set xlBook = xlApp.Workbooks.Open("Book1") Set xlSheet = xlBook.Worksheets(1) xlApp.Application.Visible = True End Sub と入力したのですが、実行してボタンをクリックしてもエクセルの表が表示されません。なぜでしょうか?

  • 【VB】【エクセル操作】 SaveAsでエラーが出てしまいます。

    VB6.0で作成したソフトの一部でエクセルを操作する箇所があります。 『新しいブックを作成して名前を付けて保存する』ところでエラーが出てしまいます。 Excel2007,2003では正常に動作するのですが、2000ではエラーが発生し強制終了されてしまいます。 '//////////////////////////////////////////////////////////// Private Sub EditExcelFile(FileName As String) Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add xlApp.Visible = True With xlBook .Application.DisplayAlerts = False .SaveAs (FileName) .Application.DisplayAlerts = True End With Set xlBook = Nothing Set xlApp = Nothing End Function '//////////////////////////////////////////////////////////// 上記コードの .SaveAs (FileName)の箇所でエラーがでます。 .SaveAs (FileName)をコメント文にすると2000でも正常に動作します。 FileNameは新しいブック名のパスが入ります。 2000でも正常に動作させるにはどのような処理を加えれば良いでしょうか? 宜しくお願い致します。

  • SETを使ったほうがよい?

    accwessからエクセルファイルを開きたいのですが、 App.Workbooks.Open と、 Set xlBook = xlApp.Workbooks.Open とどちらを使った方がいいのでしょうか? ////////////////////////////////////////////////////////// Private Sub ファイル1_Click() Dim App As Object Dim MyFileName As String MyFileName = "D:\My Documents\test.xls" Set App = CreateObject("Excel.Application") App.Workbooks.Open FileName:=MyFileName App.Visible = True End Sub でも Private Sub ファイル2_Click() Dim xlApp As Object Dim xlBook As Object Dim FileName As String Const FolderName = "D:\My Documents\test.xls" Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(FolderName & FileName) xlApp.Visible = True Set xlApp = Nothing Set xlBook = Nothing End Sub ////////////////////////////////////////////////////////// でも開けました。 多分、SETを使うかどうかの違いだと思うのですが VBAでコードを作る際、どちらのコードを使った方がいいか教えてください。

  • VB2005でExcelのシートをコピー

    VB2005Expressで開発をしています。 Excelのシートをコピーして同じbookに追加をしたいと思っています。 下記でまずExcelを使用できるようにして  Dim xlApp As New Excel.Application  Dim xlBooks As Excel.Workbooks = xlApp.Workbooks  Dim xlBook As Excel.Workbook = xlBooks.Add '新規のファイルを開く  Dim xlSheets As Excel.Sheets = xlBook.Worksheets  Dim xlSheet As Excel.Worksheet = xlSheets.Item(1)  xlApp.Visible = True 下記で追加できると思うのですが、()内にセットするパラメータが わかりません・・・  xlBook.Worksheets.Copy() どなたかご存知の方がいらっしゃいましたら教えて下さい。 よろしくお願いします。

  • シートを選択したい vba

    自身のファイルを読み取り専用で新たに立ち上げて、シートを選択したいのですが Private Sub cmd_読み取り専用で開く_Click() Dim xlApp As Object Dim xlBook As Object Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(ActiveWorkbook.FullName) xlApp.Visible = True xlApp.xlBook.Sheets("メイン").Select Set xlApp = Nothing Set xlBook = Nothing End Sub だと xlApp.xlBook.Sheets("メイン").Selectでエラーになります。 文法が間違ってると思うのですが、修正案をご教授ください。

  • CreateObject関数 引数にパスワード

    CreateObject関数を使ってエクセルを開く際に、 引数にパスワードを設定することは可能ですか? 新規Microsoft Excel ワークシート.xlsと言うファイルには、 読み足りパスワードとして0000と言うパスワードが設定されているのですが Sub Sample() Dim MyPath As String Dim MyFile As String Dim xlApp As Object Dim xlBook As Object MyPath = "C:\" MyFile = "新規Microsoft Excel ワークシート.xls" Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(MyPath & MyFile) xlApp.Visible = True Set xlApp = Nothing Set xlBook = Nothing End Sub このようなvbaコードで開く時に、 どうやってパスワードを設定すればいいでしょうか? Set xlBook = xlApp.Workbooks.Open(MyPath & MyFile),"0000" こうすると構文エラーになります。 Sub Sample02() Dim MyPath As String Dim MyFile As String MyPath = "C:\" MyFile = "新規Microsoft Excel ワークシート.xls" Workbooks.Open Filename:=MyPath & MyFile, Password:="0000" End Sub これのCreateObjectバージョンが知りたいです。

  • Excelブックの保護パスワード判定方法

    VB6.0で、Excelブックが保護パスワードされているかどうかの 判定を行いたいです。 以下のようにHasPasswordプロパティを使用してみたのですが、 保護パスワード付きのExcelブックでテストしてみると Workbooks.Openの部分で処理が止まってしまい、先にすすみません。 基本的にやり方が間違えているんでしょうか? お分かりになる方がいらっしゃいましたら、教えてください。 よろしくお願いします。   Dim xlApp  As Excel.Application   Dim xlBook  As Excel.Workbook   Set xlApp = CreateObject("Excel.Application")   Set xlBook = xlApp.Workbooks.Open("C\:TEST.xls") If xlBook.HasPassword Then Msgbox("保護パスワードあり") Else Msgbox("保護パスワードなし") End If   Set xlSheet = Nothing   xlBook.Close   Set xlBook = Nothing   xlApp.Quit   Set xlApp = Nothing

専門家に質問してみよう