- ベストアンサー
EXCEL2003から2010への互換エラー
- 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
- みんなの回答 (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)
#まとめてClearとか複数セル範囲でのWorksheet_Changeイベント時のごく普通の一般的なコーディング。
- imogasi
- ベストアンサー率27% (4737/17069)
質問に書いているゴチャゴチャしたコードを一旦省いて 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で良いのでは? 私の知らないテクニック?
補足
Worksheets("申請書").PrintOut だけなり印刷しました。ご指摘の複雑な部分は入力セルが複数(31)あって、どこに入れても印刷されるような形にしてシートにコードをいれてるんです。でも、もっとシンプルにできるれば直したいと思います。
- end-u
- ベストアンサー率79% (496/625)
コードには互換性に問題がある要素は特にありません。 コードが反応しないのはそのBookだけですか? すべてのExcelBookに対してマクロが無効になっていませんか? [ファイル]タブ[オプション]-[セキュリティセンター]-[セキュリティセンターの設定]-[マクロの設定]を確認してみてください。 http://office.microsoft.com/ja-jp/excel-help/HA010354326.aspx
補足
マクロが無効になっておりました。ありがとうございます。ですが、有効に変更しても変わりませんでした。
補足
つまり、EXCELのバージョンに影響しないということでよろしいでしょうか?