
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- オープンソース Excelファイルをデバッグしたい 4 2022/09/15 10:16
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
この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
EXCEL、マクロ-改ページ行番号の取得方法を教えてください
Visual Basic(VBA)
-
8
Excelで・・・1ページあたりの行数を指定できますか?
Excel(エクセル)
-
9
エクセルのページ区切り(点線)の位置をマクロで取得 ※印刷範囲クリア
Excel(エクセル)
-
10
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
11
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
12
【Excel】マクロでページを追加することはできますか?
Excel(エクセル)
-
13
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
14
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
15
VBAでの結合セルのコピー&ペースト
Excel(エクセル)
-
16
Excelのマクロで実行時エラー”1004”を解決するには?
その他(データベース)
-
17
Excelについて。特定の範囲内で自動的に改ページされることを禁止する
その他(Microsoft Office)
-
18
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
19
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
20
マクロを実行中に、msgbox を表示させたまま、ワークシートを上下左右に移動表示させたい。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー -'-2147417848
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
Excel VBA で End Subのところ...
-
実行時エラー 438になった時の...
-
Excelで=IFで始まるStringがセ...
-
Outlook.ApplicationをCreateOb...
-
マクロについて教えてください...
-
excel エラー値を非表示にした...
-
VBAで、定数式が必要ですのエラ...
-
ExcelVBA Range クラスの Page...
-
AccessのクエリーでDate関数の...
-
なぜエラーになるのでしょうか...
-
日本語環境下で作成したマクロ...
-
テキストボックスに記述した数...
-
「Active Directoryプロパティ...
-
マクロでオートシェイプ内の文...
-
VB6 エラー「プロシージャの呼...
-
VBS実行時エラー オブジェクト...
-
excel2016では問題ないのがexce...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
なぜこんな初歩的なVBAのIf文で...
-
ExcelVBA Range クラスの Page...
-
EXCEL VBAマクロ中断でデバッグ...
-
実行時エラー -'-2147417848
-
【Excel VBA】マクロをボタンに...
-
Outlook.ApplicationをCreateOb...
-
VBAでのエラー
-
マクロについて教えてください...
-
実行時エラー3001「引数が間違...
-
実行時エラー48発生時のDLL特定...
-
VB6+SQL サーバー 2000 で 実行...
-
エクセルエラー13型が一致しま...
-
VBS実行時エラー オブジェクト...
-
ADODB.Streamを使用してUTF-8を...
-
INSERT INTOステートメント構文...
-
VBAで、定数式が必要ですのエラ...
-
OLEDB.NETで接続できない
-
VBSで変数の宣言はできないので...
おすすめ情報