• 締切済み

 VBSの作り方がわかりません

下記のようなVBSを使いたいのですが   テキストでなくエクセルをアクティブにしたいのですがうまくいきません   どのように直せばよいのかお教えください。  お願いいたします。 Dim excel With CreateObject("Wscript.Shell") .Run "D:\DATA\T.txt" End With On Error Resume Next Set excel = GetObject(, "Excel.Application") If Err.Number <> 0 Then Set excel = CreateObject("Excel.Application") End If excel.Visible = True excel.Workbooks.Open "D:\DATA\Sin1.xls"

みんなの回答

  • kteds
  • ベストアンサー率42% (1876/4424)
回答No.1

つぎのように書き換えてみてはどうですか。 Dim Excel Set Excel = CreateObject("Excel.Application") Excel.Visible = True Excel.Workbooks.Open "D:\DATA\Sin1.xls" Set Excel = Nothing

yama0192
質問者

お礼

早速の回答ありがとうございました。 回答を基にいろいろ思考錯誤しながらやってみたいと 思いますこれに懲りずご指導くださいませ。

yama0192
質問者

補足

質問の仕方が悪くてすみません  テキストとエクセルの両方をたちあげて  この時エクセルの方をアクティブにしたいのです。

関連するQ&A

  • vbsでexcelファイルを印刷したいのですが、印刷部数の設定がどうし

    vbsでexcelファイルを印刷したいのですが、印刷部数の設定がどうしてもわかりません。 他で見つけたスクリプトですが…。 Set obj = CreateObject("Excel.Application") Set WSHShell = CreateObject("Wscript.Shell") Set objWkBk = obj.Workbooks.Open("D:\TEST.xlsx") obj.ActiveWindow.SelectedSheets.PrintOut() obj.quit() Set obj = Nothing ご教授お願いいたします。

  • CreateObjectとGetObjectの違い

    当方エクセル2003です。 Sub test_CreateObject() Dim App As Excel.Application Dim MyFileName As String Set App = CreateObject("Excel.Application") MyFileName = ActiveWorkbook.Path & "\新規Microsoft Excel ワークシート.xls" With App .Workbooks.Open FileName:=MyFileName .Visible = True End With Set App = Nothing End Sub --------------------------------------------------------- Sub test_GetObject() Dim App As Excel.Application Dim MyFileName As String Set App = GetObject(, "Excel.Application") MyFileName = ActiveWorkbook.Path & "\新規Microsoft Excel ワークシート.xls" With App .Workbooks.Open FileName:=MyFileName .Visible = True End With Set App = Nothing End Sub この二つは何が違うのでしょうか? どちらも既存のエクセルファイルがが開きます。

  • VBS

    VBSであるファイルを1行ずつ読み込み、その読み込んだ値を ある別のファイルにリダイレクトしたいのですが、 どのように書けばよいか教えてください。 下記のように、echoでは出すことができるのですが、 ファイルにリダイレクトというのができません。 よろしくお願いします。 ==== sample shell ========================= Option Explicit On Error Resume Next Dim objFSO ' FileSystemObject Dim objFile ' ファイル読み込み用 Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") If Err.Number = 0 Then Set objFile = objFSO.OpenTextFile("d:\dr1.txt") If Err.Number = 0 Then Do While objFile.AtEndOfStream <> True WScript.Echo objFile.ReadLine Loop objFile.Close Else WScript.Echo "ファイルオープンエラー: " & Err.Description End If Else WScript.Echo "エラー: " & Err.Description End If Set objFile = Nothing Set objFSO = Nothing ============================================================

  • vbsでexcelのクリアとフォームの表示をしたい

    お世話になっております。 vbsの以下の記述でexcelを開いています。 開くところまでは行くのですが、その後のsheet1のデータのクリアとUserForm1の表示がどうしてもできません。 申し訳ありませんが、どなたかおわかりの方、教えていただけないでしょうか。 宜しくお願いいたします。 Dim oApp Dim objWshShell Dim scriptPath 'Excelオブジェト作成 Set oApp = CreateObject("Excel.Application") 'WScript.Shellオブジェクト作成 Set objWshShell = CreateObject("WScript.Shell") oApp.Visible = True '不可視にする oApp.UserControl = True 'Excelファイルを開く scriptPath = WScript.ScriptFullName scriptPath = left(scriptPath,len(scriptPath)-len(WScript.ScriptName)) oApp.Workbooks.Open scriptPath & "共同資料.xlsm"

  • ExcelVBA内のVBSで別ブックを開いたとき

    ブック1で、誰のPCからでもセキュリティの警告を出さないようにブック2を開くVBSを実行し、ブック1で使用した変数xの値をブック2に渡すということをやりたいのですが、上手くいきません...。 ブック2を開く所まではできたのですが、ブック2のセルに変数xの値を入れようとすると、エラー「インデックスが有効範囲にありません。」が発生し、そもそもブック2をアクティブにできません。 ファイル名・パス等は絶対に間違えていないと思います。 原因とどう修正すれば良いか、教えて頂けないでしょうか。 下記が簡略化したプログラムになります。 Book1のプログラム Sub Book1() Dim x As String x = "aaa" CreateObject ("Shell.Application") CreateObject("Shell.Application").ShellExecute "○○.vbs" Workbooks("Book2.xlsx").Sheets("Sheet1").Range("A1") = x End Sub ---------------------------------------------------------------------------------------------------------- VBSのプログラム Dim strExcFileName Dim objExcApp strExcFileName ="○○¥Book2.xlsx" Set objExcApp = WScript.CreateObject("Excel.Application") objExcApp.Visible = True Call objExcApp.Workbooks.Open(strExcFileName,,True) objExcApp.DisplayAlerts = False WScript.Quit 以上、宜しくお願い致します。

  • VBSからのエクセル操作

    エクセルでテキストファイルを開く作業をVBSで自動化したいのですが、下のスクリプトが上手く動作しません。どうすれば上手いこと動くように出来るでしょう? OpenTextのVBS上での使用法がポイントだと思うんですが。 Dim objXL Set objXL = WScript.CreateObject("Excel.Application") objXL.Workbooks.OpenText "hoge.txt", ,1, xlDelimited, xlDoubleQuote, False, False, False, False, False, True, ":", Array(1, 1) objXL.Visible = True

  • VBS★Excel★スクリプト★引数の取得

    VBSは初心者というか、やったことがありません。ど素人になります。 説明がとてもぎこちないのもその辺からだと思いますが、宜しくお願いします。 VBのシステムからVBSファイル <内容> Dim wbname Dim mypara Dim file_path Dim oApp file_path = "C:\share\Excel\1234.xls" Set oApp = CreateObject("Excel.Application") oApp.Visible = True On Error Resume Next oApp.UserControl = True oApp.Workbooks.Open "C:\share\Excel\1234.xls" Set oApp = Nothing WScript.Quit を指定して起動すると(1)Excelで作成したシステムが稼動するように作りたいのですが、(1)を起動する環境設定があり、C:\Documents and Settings\MBS\デスクトップ\1111.vbs #CODE #CODEが引数になります。 その#CODEをVBSで取得したいのですが、単体で1111.vbsを動かすとExcelファイルは動きます。 元のシステムではexeファイルしかみないようなのですが、例えば電卓とかメモ帳とかは動きます。vbsファイルだけは動きません。どのようにすれば動くかアドバイスをお願いします。 宜しくお願いします。

  • ExcelからAutoCADへの連携ができない

    ExcelのVBAでAutoCADの操作をしようと勉強中なのですが 参考資料を真似て -------------------------------------------------------- Function acad_int()   On Error Resume Next   Set AcadApp = GetObject(, "AutoCAD.Application") (上の行でERR'429'Activexコンポーネントはオブジェクトを作成できません。のエラー)     If Err Then      Set AcadApp = CreateObject("AutoCAD.Application")       AcadApp.Visible = True     End If   AcadApp.Visible = True End Function ----------------------------------------------------------- コピーしてExcelで実行すると、GetObjectで上記( )内のエラ-メッセージがでます。 参照でAutoCAD 2004 タイプライブラリ にはチェック入れています。 また、AutoCADを起動していても、していなくても同じみたいです。 使用しているのは ・AutoCAD LT2004 ・オフィス2003Excel ですが、何せ初心者で始めたばかりでここから進む事ができません。 どうかお力をお貸しください。

  • IE9のアドレスバー非表示について

    IE9のアドレスバーを非表示にしようと思い、次のようにvbsを作ったのですが、ie7などでは非表示になるのですが、IE9ではなりません。 どうすればよいのでしょうか? test.vbs -------------------- Option Explicit On Error Resume Next Dim objIEApp Set objIEApp = CreateObject("InternetExplorer.Application") With objIEApp .Navigate "http://xxx/xxx.html" .AddressBar = False .Visible = True End With

  • OFFCEアプリをVBSで全て保存して閉じたい

    VBSで、開いた状態の複数・複シートのEXCELを全て保存して閉じるスクリプトは、http://okwave.jp/qa/q5932062.html記載の物が動いたのですが、 Set Excel0 = GetObject(, "Excel.Application") Excel0.DisplayAlerts = vbfalse For Each Book0 in Excel0.workbooks   If Book0.saved = vbfalse Then Book0.save   Book0.close Next Excel0.quit 同様に、複数開いた状態のWORDやPOWERPOINT、ACCSESSをVBSで上書き保存して閉じる場合の応用のスクリプトを教えて下さいませ。 (流石に、見本のスクリプトの「EXCEL」の文字列を、「WORD」や「POWERPOINT」に変更してみただけでは上手く動かない様です。) ↓1文章開いた状態だけなら保存して閉じてくれるが、2つ以上開くと保存して閉じてくれません。 <うまく動かなかったスクリプト> Set Word0 = GetObject(, "Word.Application") Word0.DisplayAlerts = vbfalse For Each Book0 in Word0.Documents If Book0.saved = vbfalse Then Book0.save Book0.close Next Word0.quit Set Powerpoint0 = GetObject(, "Powerpoint.Application") Powerpoint0.DisplayAlerts = vbfalse For Each Book0 in Powerpoint0.Presentations If Book0.saved = vbfalse Then Book0.save Book0.close Next Powerpoint0.quit