0

Google とここの両方でこの質問に対する回答を検索しましたが、成功しませんでした。以前に質問されていた場合は、申し訳ありません。

VBScript を使用していくつかの管理タスクを自動化しようとしています。この特定のスクリプトの目的は、テキスト ファイル (テキストと数値の列を含む) からいくつかの使用統計を取得し、データから折れ線グラフを作成することです。Excel ファイルの作成とデータの読み込みは正常に機能しますが、グラフの作成に問題があります。ソース データの選択方法がわかりません。また、構文エラーが何度も発生します。VBA でこれを行う方法については、インターネット上にたくさんの情報があり、記録されたマクロからも明らかです。しかし、私は VBScript ではそれを行うことができません。これが私のコードです(プライバシー上の理由から、一部のファイル名などは変更されています):

Set objFSO = CreateObject("Scripting.FileSystemObject")

' Create an instance of Excel (keep program hidden) and open text data file
Set objExcel = CreateObject("Excel.Application")

With objExcel
.Visible = False
.WorkBooks.OpenText("Datafile.txt")
End With

' Name the current worksheet
Set objWorksheet = objExcel.Worksheets(1)


' Name constants for use in chart creation
xlLine = 4
xlPrimary = 1
xlCategory = 1
xlValue = 2
xlColumns = 3


' Define chart properties
Set objChart = objExcel.Charts.Add()
With objExcel.ActiveChart
    .ChartType = 1
    .HasTitle = True
    .ChartTitle.Characters.Text = "usage"
    .Axes(xlCategory, xlPrimary).HasTitle = True
    .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Time"
    .Axes(xlValue, xlPrimary).HasTitle = True
    .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "units"
    .ChartType = xlLine
    .HasLegend = False
    .SetSourceData Source:="objWorksheet".Range("B2:B10"), Plotby:=xlColumns

End With

このコードを使用して、データが列に適切に配置されたExcelファイルと、空のチャートが含まれる別のシート(上記のプロパティを持つ)を作成することができました。

しかし、「.SetSourceData」行でエラーが発生しています。VBScript での使用方法がわかりません。私は VBScript を初めて使用するので、構文やコードの理解に誤りがある場合はご容赦ください。多分私は根本的に間違ったことをしていますか?

編集

エクセル2003を使用しています。

乾杯。

4

1 に答える 1

2

情報セクションに記載されているように、VBScript では名前付きパラメーターを使用できません。また、変数名を二重引用符で囲みます。これにより、ワークシート オブジェクトを保持する変数ではなく、リテラル文字列 "objWorksheet" になります。行を変更するobjWorksheet

.SetSourceData Source:="objWorksheet".Range("B2:B10"), Plotby:=xlColumns

これに:

.SetSourceData objWorksheet.Range("B2:B10"), xlColumns

より一般的な注意として、Const定数を定義するにはキーワードを使用する必要があります。

Const xlLine     = 4
Const xlPrimary  = 1
Const xlCategory = 1
Const xlValue    = 2
Const xlColumns  = 3

それ以外の場合は、通常の (変更可能な) 変数になります。

于 2013-07-15T09:13:39.323 に答える