• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL2003から2010への互換エラー)

EXCEL2003から2010への互換エラー

このQ&Aのポイント
  • EXCEL2003で使っていたファイルを2010で開いたらコードが反応しなくなりました。直す方法を教えてください。
  • 具体的にはあるセルに入力すると別シートの「申請書」を印刷するというコードを入れています。
  • Private Sub worksheet_change(ByVal Target As Excel.Range) Dim h As Range Set h = Application.Intersect(Target, Range("AA15:AA45")) If h Is Nothing Then Exit Sub If h.Cells(1) = "" Then Exit Sub If MsgBox("申請書印刷しますか?", vbOKCancel) <> vbOK Then Exit Sub Worksheets("申請書").PrintOut End Sub

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.4

有効に変更してその該当Bookを開き直しても変わりませんか? 変わらないようでしたら、一度Excel再起動して確認してください。 (Event無効になっているのかもしれません) それでも解消しないようなら、Eventコードが走っているかどうか確認してください。 Set h =..の行を選択して[F9]キーを押すとブレイクポイントが設定できます。 または、下記例のように Stopステートメントを記述する事で、 Event発生時にその箇所で止まるようになります。 http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_030.html Private Sub Worksheet_Change(ByVal Target As Excel.Range)   Dim h As Range   Stop '■   Set h = Application.Intersect(Target, Range("AA15:AA45"))   If h Is Nothing Then Exit Sub   If h.Cells(1).Value = "" Then Exit Sub   If MsgBox("申請書印刷しますか?", vbOKCancel) <> vbOK Then Exit Sub   Worksheets("申請書").PrintOut End Sub 止まるようでしたら、[F8]キーで1ステップずつ進みますから 処理を確認してください。 #回答3は気にしないでください。ちょっと手がすべりました。:D >つまり、EXCELのバージョンに影響しないということでよろしいでしょうか? 少なくとも、win版xl97-2010では普通に動くコードです。

その他の回答 (3)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.3

#まとめてClearとか複数セル範囲でのWorksheet_Changeイベント時のごく普通の一般的なコーディング。

taxolinjection
質問者

補足

つまり、EXCELのバージョンに影響しないということでよろしいでしょうか?

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

質問に書いているゴチャゴチャしたコードを一旦省いて Worksheets("申請書").PrintOut  だけにして実行して印刷しないかテストしてみたら。印刷するようだったら、VBAコード以外の原因(バージョンに係わる)かも。 >Set h = Application.Intersect(Target, Range("AA15:AA45")) If h Is Nothing Then Exit Sub If h.Cells(1) = "" Then Exit Sub の部分は何をしたいのか。なぜこうする必要があるのか。選択セルは空白だったら?そんな判断必要か。 持って回らなくても、判別する必要があれば、If Target=""Thenで良いのでは? 私の知らないテクニック?

taxolinjection
質問者

補足

Worksheets("申請書").PrintOut だけなり印刷しました。ご指摘の複雑な部分は入力セルが複数(31)あって、どこに入れても印刷されるような形にしてシートにコードをいれてるんです。でも、もっとシンプルにできるれば直したいと思います。

  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

コードには互換性に問題がある要素は特にありません。 コードが反応しないのはそのBookだけですか? すべてのExcelBookに対してマクロが無効になっていませんか? [ファイル]タブ[オプション]-[セキュリティセンター]-[セキュリティセンターの設定]-[マクロの設定]を確認してみてください。 http://office.microsoft.com/ja-jp/excel-help/HA010354326.aspx

taxolinjection
質問者

補足

マクロが無効になっておりました。ありがとうございます。ですが、有効に変更しても変わりませんでした。

関連するQ&A

専門家に質問してみよう