
VBScriptのファイルから、Excelファイル内に作成したFunctionを呼び出し、データの表示や改ページなどを行わせようとしています。
しかし、この改ページの処理である、
ActiveSheet.Rows(row).PageBreak = xlPageBreakManual
と記述した部分で以下のようなエラーが発生してしまいます。
実行時エラー '1004':
Range クラスの PageBreak プロパティを設定できません。
row は Long の変数で、108や205といった改行したい行の値が入ります。
不思議なことに、VBScriptファイルから呼び出した場合はエラーとなるのですが、エラーメッセージ内のデバッグボタンを押してデバッグウィンドウを表示し、『何も手を加えず』にステップインなどで処理を継続させると、エラーにならずに進んでしまいます。
何が原因であり、どのように対処すべきなのか見当もつきません。
どなたかご存じないでしょうか?
No.1ベストアンサー
- 回答日時:
こんにちは。
コードの一部だけ見せられても手掛りが少なすぎて、何とも言い難いのですが^^;
んーー。。
> 実行時エラー '1004':Range クラスの PageBreak プロパティを...
実行時エラーですよね...変数 row に適切な値が代入されてないのでは?
> ActiveSheet.Rows(row).PageBreak = xlPageBreakManual
の前に Debug.Print 等を使ってエラー時の内容をチェックしてみては?
# row は予約語なので変数名に使うのは止めといた方が良いですよ。
または、この箇所が実行されるとき、ActiveSheet が何なのかは一応確認
して下さい。例えば、グラフシートが ActiveSheet の場合は当然失敗
しますよね。
とりあえず、テスト用の Excel VBA と VBS を用意して、実験してみました
が特に問題なく動いているように見えます。再現しませんね...何だろ?
' // Excel 標準モジュール Function +++++++++++++++++++++++++++
' // ファイル名 C:\test.xls
Public Function SampleFunc(ByVal DummyArg As Long) As Long
On Error GoTo Err_Handler
' // add pagebreaks
Dim i As Long
For i = 2 To 10
Worksheets(1).Rows(i).PageBreak = xlPageBreakManual
Next
SampleFunc = 1
Exit Function
Err_Handler:
SampleFunc = 0
End Function
' // VBS 側+++++++++++++++++++++++++++++++++++++++++++++++++++
Dim xlApp, xlWb, lRet
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlWb = xlApp.Workbooks.Open("C:\test.xls")
' // 1は関数とあったのでダミー引数を設けただけで特に意味はなし
lRet = xlApp.Run("SampleFunc",1)
MsgBox "戻り値:=" & Cstr(lRet)
回答ありがとうございます。
>コードの一部だけ見せられても手掛りが少なすぎて、何とも言い難いのですが^^;
申し訳ないです。
それなりに量のあるソースになってまして、一部だけ切り出そうにもどこまで必要かがわからない状態なのです。
私が作ったのものならば、それもできたのですが……。
># row は予約語なので変数名に使うのは止めといた方が良いですよ。
ご指摘ありがとうございます。気をつけます。
変数rowの値やActiveSheetが何なのかもチェックしましたが、意図した値が入っていました。グラフシートでもありません。
なにより、質問時にも書きましたが、デバッグウィンドウ上ではエラーとならずに、問題の記述も通ってしまうのが理解できません。
出来上がったExcelファイルは意図したとおりの結果となるので、基本的に間違っていないのではと思い、ならばなぜエラーになるのか……。
書いていただいたコードは正しく動きました。
やはり、そこに至るまでのコードに問題があるのでしょうね。
どうしたものか……。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
PageBreak プロパティを設定できません。
Visual Basic(VBA)
-
ExcelVBA 改ページの横破線を消す方法
Excel(エクセル)
-
Excel 改ページのVBAうまくいかないです
Excel(エクセル)
-
-
4
VBAの改ページ設定について
Visual Basic(VBA)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
7
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
8
エクセル VBA 水平改ページ位置の変更方法について教えてください。
Excel(エクセル)
-
9
【Excel】マクロでページを追加することはできますか?
Excel(エクセル)
-
10
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
11
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
12
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
13
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
14
Excelで・・・1ページあたりの行数を指定できますか?
Excel(エクセル)
-
15
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
16
VBA Shapes コピーと名前
Excel(エクセル)
-
17
エクセルのページ区切り(点線)の位置をマクロで取得 ※印刷範囲クリア
Excel(エクセル)
-
18
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
19
マクロを実行中に、msgbox を表示させたまま、ワークシートを上下左右に移動表示させたい。
Excel(エクセル)
-
20
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
Excel VBA comboboxへの割り当て
-
実行時エラー3001「引数が間違...
-
実行時エラー48発生時のDLL特定...
-
【マクロ】エラー【#DIV/0!】が...
-
マクロについて教えてください...
-
実行時エラー -'-2147417848
-
なぜエラーになるのでしょうか...
-
VBAでのエラー
-
ExcelVBA Range クラスの Page...
-
VBAのグラフの設定について
-
VBAの実行時エラー91!どうしよ...
-
AccessVBAでExcelを起動し、罫...
-
Invalid procedure call or arg...
-
VBAで入力規則の設定がうまくい...
-
VBS実行時エラー オブジェクト...
-
OLEDB.NETで接続できない
-
Access:結果は出るがエラー
-
EXCEL VBAマクロ中断でデバッグ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
【マクロ】エラー【#DIV/0!】が...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAでのエラー
-
実行時エラー -'-2147417848
-
実行時エラー48発生時のDLL特定...
-
マクロについて教えてください...
-
ExcelVBA Range クラスの Page...
-
EXCEL VBAマクロ中断でデバッグ...
-
実行時エラー3001「引数が間違...
-
EXCEL/VBAで、自分のPCだけエラ...
-
VB6+SQL サーバー 2000 で 実行...
-
VBAのエラー発生場所をメッセー...
-
ADODB.Streamを使用してUTF-8を...
-
【Excel VBA】マクロをボタンに...
-
OLEDB.NETで接続できない
-
なぜエラーになるのでしょうか...
-
INSERT INTOステートメント構文...
-
Outlook.ApplicationをCreateOb...
おすすめ情報