• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBSからのエクセル操作)

VBSからのエクセル操作

nishi6の回答

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

VBSは余り使ったことはありませんが、VBAのつもりで考えてみました。 以下のようにしたら動きましたが、フルパスにして拡張子をCSV(xlDelimitedなので)にしています。TXTのままではセルに分割されませんでした。 『True, ":", Array(1, 1) 』では、   『:』も区切り記号として使いたい?(どうするか不明)   最初の項目を一般の形式に指定?他は指定していないのでやはり一般の形式? ということで、消去して動かしてみました。 やはり詳しくないため不明な点が多いです。(windows98、Excel2000です) ご参考に。 Dim objXL xlDelimited=1 xlDoubleQuote=1 Set objXL = WScript.CreateObject("Excel.Application") objXL.Workbooks.OpenText "D:\・・・\・・・\hoge.csv", ,1, xlDelimited, xlDoubleQuote, False, False, False, False, False objXL.Visible = True

関連するQ&A

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

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

  • ExcelのOpenTextで作ったシートのコピー

    Excel2010のVBAでテキストファイルを読み込むと新しいブックに読み込まれるので、新しいブックのシートをVBAのコードがあるブックにコピーしたいのですが CSVファイル読み込み時に使う Workbooks.Open の場合には  Dim wb As Workbook  Set wb = Workbooks.Open(Filename:="C:\test\test1.csv")  wb.Worksheets(1).Cells.Copy ThisWorkbook.Worksheets("Sheet1").Range("A1")  wb.Close False のような感じでコピーすることができたのですが テキストファイル読み込み時に使う Workbooks.OpenText の場合には  Dim wb As Workbook  Set wb = Workbooks.OpenText Filename:= _    "C:\test\test1.txt", _    Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _    xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _    , Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), _    Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2), _    Array(9, 2)), TrailingMinusNumbers:=True  wb.Worksheets(1).Cells.Copy ThisWorkbook.Worksheets("Sheet1").Range("A1")  wb.Close False とすると、OpenTextの箇所で「Workbooks.OpenText Functionまたは変数が必要です」というコンパイルエラーが発生します。Set wb = Workbooks.OpenText (Filename:=・・・・True)のように括弧でくくっても同様のエラーがでてしまいます。 Microsoft Office 14.0 Object Libratyの参照設定はチェックされています。 Workbooks.OpenText Filename:= _・・・=Trueの部分はマクロの記録の機能で生成したコードです。 このような場合、どのように記述すればよいのでしょうか。 よろしくお願いします。

  • 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 以上、宜しくお願い致します。

  • Excel VBAでテキストを開く際の表示形式

    恐れ入りますが、ご存知の方、ご教授願います。 Excel VBAにてテキストファイルを開く際に、表示形式を"標準"ではなく"文字列"で取り込もうと思います。 "文字列"にするにはVBAで下記のように記述します。 ------------------------------------------------------------------ Workbooks.OpenText Filename:= _ sFileName _ , Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _ xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _ Comma:=False, Space:=False, Other:=False, FieldInfo:=Array( Array(1, 2), Array(2, 2), Array(3, 2)) , TrailingMinusNumbers:=True ------------------------------------------------------------------ FieldInfo:=部分に列数だけArray(x, 2)を指定しますが、一括で"文字列"指定することは可能でしょうか。 恐れ入ります。ご教授願います。

  • VBS でのソート処理Excel2003

    VBSでソート処理を行っています。 Excel2007以上の環境では、正常に動作したのですがExcel2003環境では どうもうまく動きません。 とても困っています。 ご教示いただけないでしょうか。 'ソート処理 '// エクセルオブジェクトを使用して実行 Set objXL = WScript.CreateObject("Excel.Application") objXL.Workbooks.Open "C:\test.csv" objXL.ActiveSheet.Sort.SortFields.Clear objXL.ActiveSheet.Range("A1:M" & iLine).Sort objXL.ActiveSheet.Range("K1"), , , , , , , 0, 1, False, 1, 1, 0 objXL.ActiveSheet.Sort.SetRange objXL.ActiveSheet.Range("A1:O5000") objXL.ActiveSheet.Sort.Header = 1 objXL.ActiveSheet.Sort.MatchCase = 0 objXL.ActiveSheet.Sort.Orientation = 1 objXL.ActiveSheet.Sort.Apply Excel2003では、「Clear」がサポートされていないようで、 その処理を抜いて実行してみましたが、「438のエラー」が表示されてしまいます。 根本から理解できておらず申し訳ありません どうぞよろしくお願いいたします。

  • VBSからのエクセル操作での初期ダイアログへの対応

    VBSからのエクセル操作での初期ダイアログへの対応 VBSでのエクセルの初期ダイアログへの対応について教えてください。 ここでいう「初期ダイアログ」とは以下のことを指しています。 (A)読み取り推奨設定時にでるダイアログ  「…を変更し、保存する必要がなければ、読み取り専用で…」 (B)マクロを含むファイルを開くときに出るセキュリティ警告ダイアログ  「マクロにはウイルスが含まれている場合があります。…」 (C)読み取り・書き込みパスワード設定時のパスワード入力ダイアログ ソースとしては、下記に示す簡易な内容です。 このとき、ファイルに何も属性がなければファイルを開いていることを 意識させずにエクセルの内容を取得することが出来ます。 しかし、読み取り推奨にされているときや、マクロが含まれるときには、 ダイアログが表示されてしまい、スマートに値を取得することが出来ません。 これを何か引数を与えるなどして、ダイアログを表示させないもしくは 一瞬ダイアログが表示されても、スクリプトに閉じさせるように したいと思っています。 もし方法があるならそれを教えてください。 「方法がない」ということが分かっている場合は、 その旨を教えていただきたいです。 よろしくお願いします。 ■α Set excel = WScript.GetObject(filePath) MsgBox excel.Sheets(sheetName).Cells(2, 2) ■β Set excel = WScript.CreateObject("Excel.Application") excel.Workbooks.Open filePath, , true excel.Visible = false Set sheet = excel.Sheets(sheetName) MsgBox sheet.Cells(2, 2).value excel.Workbooks.Close excel.Quit

  • エクセル VBA

    エクセルで指定したフォルダから シート1のA1セルに記入された名前のテキストファイルを 開くマクロを作りました 変数filepassがセルA1に記入されたファイルのパスのとして Workbooks.OpenText filename:=filepass, StartRow:=1 _ , DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _ , Space:=False, Other:=False, FieldInfo:=Array(1, 1) しかし このままだと指定したフォルダ(filepass)にファイルがなかったとき エラーになります もしファイルがなかったときに 何かメッセージを表示させたいのですが どのようにすればよいのでしょうか どなたか 教えてください VBAは素人です よろしくお願いします

  • エクセル マクロ 教えてください

    お世話になります エクセルのマクロ記録を使った結果が下記のようになりました。 そこで、ファイルは自分で選択して開きたいと思い 色々調べた結果 Application.GetOpenFilenameを使用すればよい事がわかりましたが、どの部分を変更すればよいのかわかりません やりたいことは、txtファイルの中身の不要な部分を削除して必要な部分だけを取り出したいのです。 どうぞ、よろしくお願いします。 Sub Macro1() ' ChDir "C:\Documents and Settings\My Documents\next\aaa" Workbooks.OpenText Filename:= _ "C:\Documents and Settings\My Documents\next\aaa\aaa.txt" _ , Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _ xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _ Comma:=False, Space:=True, Other:=True, OtherChar:="(", FieldInfo:= _ Array(Array(1, 9), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 9), Array(7 _ , 9)), TrailingMinusNumbers:=True Cells.Select Cells.EntireColumn.AutoFit End Sub

  • オブジェクト変数の取得について

    以下のようにOpenTextでファイルを開いてそれをオブジェクト変数に取得したいのですが 「Functionまたは変数が必要です」というエラーになります。 どなたかご教示ねがえませんでしょうか? よろしくお願いいたします。 Set WorkBookObject =Workbooks.OpenText FileName:=strPath & strTxt, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, _ Comma:=True, Space:=False, Other:=False, FieldInfo:=aryCell