Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


32796 / 76734 ←次へ | 前へ→

【49171】エクセル2000VBAで作ったプログラムが2003で動かない
質問  miyake  - 07/5/25(金) 21:49 -

引用なし
パスワード
   いつもお世話になっております。
困ったことがありますので教えてください。
エクセル2000で簡単なシステムを作りました。
これには、複数の様々なシートがあり、シートにはそれぞれコマンドボタン、テキストボックス、ラベル、コンボボックスなどが付いています。
この複数のシートのうち、保存したいシート(アクティブシート)だけを保存できるようにしていて、シートの保存ボタンを押すと、そのシートだけがシステムの外に保存できるようにしました。
これをエクセル2003で動かすと、バージョンの違いによりプログラムがエラーになりうごきません。
シートのモジュールを削除するコードの部分が原因だと思います。
プログラムは下記のとおりです。
エクセル2003で対応できる方法があればご教示願います。

Sub アクティブシート保存()

Dim SheetName As String
Dim HozonSheetName As String
SheetName = ActiveSheet.Name
HozonSheetName = "コピー" & "_" & SheetName
'アクティブシートを新規ブックにコピー
ActiveSheet.Copy

'コピー先のシートのモジュールを削除
 Dim myVBComp
  For Each myVBComp In ActiveWorkbook.VBProject.VBComponents
   If myVBComp.Type = 100 Then
'Documentモジュール(ThisWorkbokやSheet)なら消去
    With myVBComp.CodeModule
      .DeleteLines 1, .CountOfLines
    End With
   Else
'Documentモジュール以外(標準モージュール、クラスモジュール、Formなど)なら削除
     Application.VBE.ActiveVBProject.VBComponents.Remove myVBComp
  End If
 Next myVBComp

'コピー先シートのコマンドボタン等のオブジェクトを削除
Dim objShape As Shape
'オブジェクトの名前の先頭3文字は、コマンドボタンがcmd、テキストボックスがtxt、ラベルがlbl、コンボボックスがcmbと付いている
For Each objShape In ActiveSheet.Shapes
  'コマンドボタンの場合
  If Left(objShape.Name, 3) = "cmd" Then
    objShape.Select
    Selection.Delete
  'テキストボックスの場合
  ElseIf Left(objShape.Name, 3) = "txt" Then
    objShape.Select
    Selection.Delete
  'ラベルの場合
  ElseIf Left(objShape.Name, 3) = "lbl" Then
    objShape.Select
    Selection.Delete
  'コンボボックスの場合
  ElseIf Left(objShape.Name, 3) = "cmb" Then
    objShape.Select
    Selection.Delete
  End If
Next objShape

'コピーしたシートを保存するかどうかの確認
Dim DlgAnswer As Boolean
DlgAnswer = Application.Dialogs(xlDialogSaveAs).Show(HozonSheetName)
If DlgAnswer = True Then
  ActiveWorkbook.Close
Else
  ActiveWorkbook.Saved = True
  ActiveWorkbook.Close
End If

End Sub
2 hits

【49171】エクセル2000VBAで作ったプログラムが2003で動かない miyake 07/5/25(金) 21:49 質問
【49172】Re:エクセル2000VBAで作ったプログラム... かみちゃん 07/5/25(金) 23:19 発言
【49179】Re:エクセル2000VBAで作ったプログラム... miyake 07/5/26(土) 13:11 質問
【49180】Re:エクセル2000VBAで作ったプログラム... かみちゃん 07/5/26(土) 13:31 発言
【49181】Re:エクセル2000VBAで作ったプログラム... tora 07/5/26(土) 15:04 発言
【49189】Re:エクセル2000VBAで作ったプログラム... miyake 07/5/27(日) 1:29 お礼

32796 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free