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

このQ&Aのポイント
  • vbsの以下の記述でexcelを開いています。
  • 開くところまでは行くのですが、その後のsheet1のデータのクリアとUserForm1の表示がどうしてもできません。
  • 申し訳ありませんが、どなたかおわかりの方、教えていただけないでしょうか。
回答を見る
  • ベストアンサー

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"

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

  • ベストアンサー
  • x-1919
  • ベストアンサー率52% (91/173)
回答No.1

共同資料.xlsm に UserForm1 という名前のユーザーフォームが存在する。 共同資料.xlsm に標準モジュールを作成し、以下のコードを書いておく。 Public Sub ShowUserForm() UserForm1.Show End Sub 以下、VBScript のコード Dim scriptPath Dim bookPath Dim fso ' パス文字列を操作するために FileSystemObject オブジェクトを使用 Set fso = WScript.CreateObject("Scripting.FileSystemObject") scriptPath = WScript.ScriptFullName bookPath = fso.BuildPath(fso.GetParentFolderName(scriptPath), "共同資料.xlsm") Dim oApp ' Excel Application オブジェクト Dim targetBook ' 開いたブックの Workbook オブジェクト Dim targetSheet ' sheet1 または 左から 1番目のシート Set oApp = WScript.CreateObject("Excel.Application") oApp.Visible = True oApp.UserControl = True Set targetBook = oApp.Workbooks.Open(bookPath) Set targetSheet = targetBook.Worksheets("sheet1") 'Set targetSheet = targetBook.Worksheets(1) ' 左から 1番目ならこのコードでも可能 ' どこの値/数式をクリアするのかは適宜変更 targetSheet.Range("A5").ClearContents ' 共同資料.xlsm の標準モジュールに書いた ShowUserForm プロシージャを実行 oApp.Run "共同資料.xlsm!ShowUserForm"

kandori2014
質問者

お礼

大変助かりました。 どうもありがとうございました。

関連するQ&A

  • VBSファイルをスタートアップフォルダに入れておいて、

    エクセル2007の特定ファイルをそのVBSファイルにより自動起動させる方法を教えてください。ちなみに、次のようなVBSファイルを作成しましたがエラーとなってしまいます。 Option Explicit 'オブジェクト変数の宣言とWshShellオブジェクトの作成。 Dim objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 1000 '1秒待機 objWshShell.Run "C:¥Program Files¥Microsoft Office¥Office12¥EXCEL.exe" です。

  • スタートアップフォルダにエクセルファイルを入れてPC起動時の自動が実行可能ですか?

    現在 [メモ帳.vbs]ファイルとして、次のような記述のファイルをスタートアップフォルダに入れてあります。 Option Explicit 'オブジェクト変数の宣言とWshShellオブジェクトの作成。 Dim objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 10000 '10秒待機 '例としてメモ帳起動 objWshShell.Run "C:\Windows\System32\notepad.exe" これですと、notepad.exeファイルは自動実行されます。  しかし[エクセル.xlsm]というエクセルファイルを同様に単純にパスを通して[エクセル.vbs]ファイルを作成し、 スタートアップフォルダに入れてもエラーが出て実行されません。記述がわかる方いらっしゃったら、ぜひ教えててください。 お願いします

  • 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ファイルだけは動きません。どのようにすれば動くかアドバイスをお願いします。 宜しくお願いします。

  • 何とかFireFox用のVBSを作ってみたのですが、

    何とかFireFox用のVBSを作ってみたのですが、 下のような記述ですとサイトの種類分ブラウザも 起動してきてしまいます。 タブで開きたいのですが、 どのように記述すればいいのでしょうか。 よろしくお願いいたします。 =================== Option Explicit Dim objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe"" -new-tab http://www.google.co.jp" objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe"" -new-tab http://www.msn.co.jp" objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe"" -new-tab http://www.yahoo.co.jp" Set objWshShell = Nothing

  • VBSでレジストリキー名に円マークをつける

    「SQL\INSTANCE」という名前のキーをレジストリに作成したいのですが、円マークを入れると階層化されてしまうので、困っています。 カンタンな質問かもしれませんがどなたか教えてください。 以下、VBSで作成 Option Explicit On Error Resume Next Dim objWshShell ' WshShell オブジェクト Set objWshShell = WScript.CreateObject("WScript.Shell") If Err.Number = 0 Then objWshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\SQL\INSTANCE", "SQL", "REG_SZ" WScript.Echo "ODBC設定変更:完了" Else WScript.Echo "エラー: " & Err.Description End If Set objWshShell = Nothing

  • VBSで2バイト文字の送り方の質問です。

    VBSで質問です。環境はXP Proです。 InputBoxで入力した日本語を他のアプリケーションに入力をしたいのですが、Sendkeysが2バイト文字は不可とわかり頓挫しました。sendkeys以外で使える技を教えてくださいませ。下記のコードを考えてましたが挫折しました。 -------------------------------------------------- Option Explicit Dim Name Name = InputBox("名前を入力してください") 'シェルを用意 Dim objWshShell Set objWshShell = Wscript.CreateObject("Wscript.Shell") 'notepad起動 objWshShell.Exec "notepad.exe" 'notepadアクティブにする objWshShell.AppActivate "objWshShell.Exec.ProcessID" wscript.sleep 1000 'notepadに名前を入力する objWshShell.Sendkeys Name ***sendkeys以外で文字を送る技を期待しています。

  •  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"

  • ASPからVBScriptの実行

    ASPから下のVBScriptを実行使用とすると "500"Internal Server Error が出力されて困ってます。 へるぷみー Dim objWSHShell Set objWSHShell=WScript.CreateObject("WScript.Shell") objWSHShell.Run "cscript.exe d:\test.bat" objWSHShell=Nothing

  • VBSを使用して、ブラウザにて表示されたメッセージボックスを消す方法

    VBSでブラウザを立ち上げ、IDとPWを入力しボタンをクリックするまではスクリプトを使って出来たのですが、ボタンを押した後にメッセージボックスが出てきてしまい、どうしてもそこで止まってしまいます。 ---- Set objWshShell = Wscript.CreateObject("Wscript.Shell") objWshShell.Sleep(1000) objWshShell.SendKeys("{ENTER}") ---- なども使ってみたのですが、うんともすんとも言わない・・・ Web上を探し回ったのですが全く見つからず、回答はほとんどが無理というものばかりで、本当に解決する方法は無いのでしょうか? 基本同じと思いますがVBAで解決ができるのであれば、そちらでもOKなのですが・・・

  • Vistaなら1回で行くのにXPだと2回

    エクセルVBAで新たなエクセルアプリケーションを立ち上げるコードが知りたく ネットで検索したら見つけました。 ---------------------------------------- Sub test() Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.Visible = True oApp.UserControl = True Set oApp = Nothing End Sub ---------------------------------------- 上記のコードなのですが XPは2回このコードを実行しないと、新たなアプリケーションは立ち上がりません。 vistaなら1回で立ち上がります。 どちらもエクセルのバージョンは2003です。 XPがおかしいのか、2回やらないといけないコードなのかわかりません。 よろしくお願いします。

専門家に質問してみよう