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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
PageBreak プロパティを設定できません。
Visual Basic(VBA)
-
Excel 改ページのVBAうまくいかないです
Excel(エクセル)
-
ExcelVBA 改ページの横破線を消す方法
Excel(エクセル)
-
-
4
VBAの改ページ設定について
Visual Basic(VBA)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
8
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
9
PageBreaks.Countと印刷範囲の設定について
Visual Basic(VBA)
-
10
DoEventsがやはり分からない
Visual Basic(VBA)
-
11
VBA PDFで保存するマクロで実行時エラー 1004
Visual Basic(VBA)
-
12
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
13
VBAでワークシートを引数としてサンプル関数に渡したい
Visual Basic(VBA)
-
14
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
15
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
16
On ErrorでエラーNoが0
Visual Basic(VBA)
-
17
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
18
【Excel】マクロでページを追加することはできますか?
Excel(エクセル)
-
19
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
20
エクセルvbaでdocuworksprinterの出力先を設定
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
実行時エラー3001「引数が間違...
-
ExcelVBA Range クラスの Page...
-
なぜこんな初歩的なVBAのIf文で...
-
ACCESSのエラーで困っています
-
VBAがブレークモードになっ...
-
Application.ActiveInspectorで...
-
職場から目的地までの距離集計
-
VBS実行時エラー オブジェクト...
-
DataGridView からの値取得に関...
-
Excel2019 ワークシートのコピ...
-
VB6+SQL サーバー 2000 で 実行...
-
Outlook.ApplicationをCreateOb...
-
VBAでのエラー
-
ASP.NET OleDbConnectionが定義...
-
Access マクロでのテーブル削除
-
一般ODBCエラーについて
-
日本語環境下で作成したマクロ...
-
【Excel VBA】マクロをボタンに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
エクセルエラー13型が一致しま...
-
【Excel VBA】マクロをボタンに...
-
VBAでのエラー
-
マクロについて教えてください...
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
実行時エラー3001「引数が間違...
-
ExcelVBA Range クラスの Page...
-
VBS実行時エラー オブジェクト...
-
EXCEL VBAマクロ中断でデバッグ...
-
Outlook.ApplicationをCreateOb...
-
VBSで変数の宣言はできないので...
-
VBAのコードがエラーになっ...
-
実行時エラー -'-2147417848
-
ADODB.Streamを使用してUTF-8を...
-
EXCEL/VBAで、自分のPCだけエラ...
-
OLEDB.NETで接続できない
-
プロシージャ名の取得
-
VB6+SQL サーバー 2000 で 実行...
おすすめ情報