dポイントプレゼントキャンペーン実施中!

下記のプログラムで
自分のパソコンでは正常に動くのですが
違うパソコンでは
エラー1004、アプリケーション定義またはオブジェクト定義のエラーと出てしまいます。
セルの書式設定 → 表示形式 
を変更するとエラーがでてしまいます。
自分のパソコンでは何をしてもエラーは出ません。
エラーの対処の仕方を調べたのですがわかりませんでした。
教えていただけるとありがたいです。

以下作ったプログラムです。


Private Sub CommandButton2_Click()
Dim myShp As Shape
Dim myR As Range, SR As Range
On Error Resume Next
Set myR = Range("G87:K96")
If Err.Number <> 0 Then Exit Sub
On Error GoTo 0
For Each myShp In ActiveSheet.Shapes
Set SR = Range(myShp.TopLeftCell, myShp.BottomRightCell)
If Not Intersect(SR, myR) Is Nothing Then
myShp.Delete
End If
Set SR = Nothing
Next
Set myR = Nothing
End Sub

A 回答 (2件)

『作成したマクロの動作の確認方法』


http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub0 …


#補足要求です。

元の質問文では
>セルの書式設定 → 表示形式 
>を変更するとエラーがでてしまいます。
>:
>Private Sub CommandButton2_Click()
#1の補足では
>プログラム内の Cells(83, 6)には数式が入っています。
>この数式のセルにカーソルを合わせてEnterを押すと
>1004のエラーが出てきます。
どちらが正しいのですか?

>また、正常に動くパソコンと、エラーが出るパソコンとでは、Excelのバージョンが違ってたりしませんか?
応答なしですか?

>まずはエラーの原因となっているShapeを調べてみる事です。
...ってやってないんですよねー?


って事はさておき、最初に訊いておくべきなのは以下の内容でした。
『実行時エラー'1004':
 アプリケーション定義またはオブジェクト定義のエラーです。』
というエラーメッセージが出た時、メッセージボックス内の[デバッグ]ボタンをクリックすると、
VisualBasicEditorのコードウィンドウで、エラー箇所が黄色く反転していませんか?

そのエラーが発生しているコードとエラー箇所を提示してみてください。
『この数式のセルにカーソルを合わせてEnterを押すと1004のエラーが出てきます。』
この文章通りなら、シートモジュールかブックモジュールのSelectionChange関連イベントがありそうですけど
その辺りはどうなんでしょうか?
ChangeイベントやCalculateイベントコードは無いのでしょうか?

Cells(83, 6)にはどのうような数式が入っていますか?
    • good
    • 0

まずはエラーの原因となっているShapeを調べてみる事です。


Drop Down...あたりじゃないですかね?

Private Sub CommandButton2_Click()
  Dim myShp As Shape
  Dim myR As Range, SR As Range

  On Error Resume Next
  Set myR = Range("G87:K96")
  If Err.Number <> 0 Then Exit Sub
  On Error GoTo 0
  For Each myShp In ActiveSheet.Shapes

    Debug.Print myShp.Name  '■
    
    Set SR = Range(myShp.TopLeftCell, myShp.BottomRightCell)
    If Not Intersect(SR, myR) Is Nothing Then
      myShp.Delete
    End If
    Set SR = Nothing
  Next
  Set myR = Nothing
End Sub

また、正常に動くパソコンと、エラーが出るパソコンとでは、Excelのバージョンが違ってたりしませんか?

この回答への補足

早速の返信ありがとうございます。
マクロについては初心者なもので・・・。
下記のプログラムで作成したQRコードのオートシェイプを消したいのですが
1004というエラーが出てしまいます。
プログラム内の Cells(83, 6)には数式が入っています。
この数式のセルにカーソルを合わせてEnterを押すと
1004のエラーが出てきます。
何が原因なのかわかりません、
申し訳ありませんが教えてください。

Private Sub CommandButton1_Click()
Dim MiBar As Mibarcd.Auto
Dim Code, Work As String
Work = Trim(Cells(83, 6).Text)
Code = Code + StrConv(Work, vbNarrow)
Code = Code + asu

'マクロを実行しているファイル名を取得
Work = ActiveWorkbook.Name
Code = Code + StrConv(Work, vbNarrow)
Range("B99") = Code

'***** MiBarcodeを起動してバーコードを作成する *****
'Mibarcodeのオートメーションサーバオブジェクトを作成
Set MiBar = New Mibarcd.Auto
'基本オプションを設定
MiBar.Show (0) 'ウィンドウを隠す
MiBar.CodeType = 12 'QR2コード
MiBar.QRversion = 10 'QR2コードのバージョン
MiBar.QRErrLevel = 1 'QR2コードの誤り訂正レベル0:L,1:M,2:Q,3:H
MiBar.HMargin = 2 'QR2コードの左右マージン
MiBar.VMargin = 2 'QR2コードの上下マージン
MiBar.BarScale = 10 'QR2コードのバーコードサイズ
MiBar.CopyType = 1 '拡張メタファイル形式画像
'コードをセット
MiBar.Code = Code
'バーコードを成
MiBar.Execute
'カーソルをセットする処理
Cells(87, 8).Activate
'カーソル位置に貼り付け
ActiveCell.PasteSpecial
Selection.ShapeRange.Left = Range("H88").Left
Selection.ShapeRange.Top = Range("H88").Top
'縮小
Selection.ShapeRange.ScaleWidth 1, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 1, msoFalse, msoScaleFromTopLeft
'オブジェクトを破棄
Set MiBar = Nothing
End Sub

補足日時:2010/04/20 19:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!