みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBScript 先頭行の固定

VBScript Script ファイル (.vbs)を書き出して、エクセル表の加工をしようとしています。

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Open("~~~



先頭行を固定したく、下記のようにしましたがエラーになります。
objWorksheet.Range("A2").Select
objWorksheet.ActiveWindow.FreezePanes = True

また、データーのある最下行+2にデーターの合計を入れるように、追加コードを記述したいのですが、どのようにするのでしょうか?

投稿日時 - 2015-10-15 11:01:39

QNo.9064284

困ってます

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

とりあえず、objWorksheetが唐突なので、一応、
Set objWorksheet = objWorkbook.Sheets("Sheet1")
' ' ↑要指定◆シート名。例示はシート名"Sheet1"
のような記述があるものとして、、、。

例えば、こんな感じで。

' ' ↓シートがひとつしかないと保証されるならこの行は不要。
objWorksheet.Select

' ' == 先頭行の固定 ==
With objExcel.ActiveWindow ' With objWorkbook.Windows(1)
.SplitRow = 1
.FreezePanes = True
End With

' ' == 「データーのある最下行+2にデーターの合計」SUM関数で合計を求める例 ==
With objWorksheet
' ' ↓要指定◆最下行基準列。例示"A"はA列を基準に最下行を取得する場合
nRow = .Cells(65536, "A").End(-4162).Row ' 最下行
' ' ↓要指定◆合計を出す列範囲。例示は"A:C"列に合計を出す場合
.Range("A:C").Rows(nRow + 2).FormulaR1C1 = "=sum(r2c:r" & nRow & "c)"
End With

投稿日時 - 2015-10-16 05:55:11

お礼

ありがとうございます!
ありがとうございます!!
途方に暮れていました。解決です。
ありがとうございます!!!!!

投稿日時 - 2015-10-16 09:47:54

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

Rangeではなく、Rows("2:2").Select を使えばうまくいきました。

投稿日時 - 2015-10-15 17:38:06

あなたにオススメの質問