プロが教えるわが家の防犯対策術!

職場のPC
・windowsXP
・excel2003

自宅PC
・windows7
・excel2007

 職場には自分専用端末がないので、自宅でコードを書いてUSBメモリにコピーし、
職場でペーストするという環境で起きた問題です。

 やりたいことは、顧客から送られてくるデータを sheet1 に保存し、
sheet2 に置いてあるマスターデータを参照して不必要な行を削除するマクロです。

 以下、コード
_______________________

Sub 別シート参照デリート()

Dim st1, st2 As Worksheet
Set st1 = ThisWorkbook.Sheets("sheet1") '作業用シート
Set st2 = ThisWorkbook.Sheets("sheet2") 'マスターシート

Dim st1Row, st2Row As Integer
st1Row = st1.Cells(Rows.Count, 1).End(xlUp).Row
st2Row = st2.Cells(Rows.Count, 1).End(xlUp).Row

Dim st1value, st2value As String
Dim i, j As Integer

'マスターシートを参照して必要ないものは削除する
For i = st1Row To 1 Step -1
st1value = st1.Cells(i, 3).Value

For j = st2Row To 1 Step -1
st2value = st2.Cells(j, 1).Value

If st1value = st2value Then
Exit For '該当するなら必要行なので次へ
ElseIf j = 1 Then
st1.Cells(i, 3).EntireRow.Delete 'st2の先頭行は"品番"なので不必要=削除
End If

Next j
Next i

End Sub
_______________________

 自宅環境では問題なく動作するのですが、職場のPCだと
”オブフェクトが必要です”
のエラーが返ってきます。
かといって、どの構文でエラーが出ているのか教えてくれない(反転しない)んです。

 どこにエラーがあるのでしょうか?
 よろしくお願いします。

A 回答 (2件)

なーんか変ですね。


バージョンが微妙に異なりますが
当方(WinXP & Excel2002 とWin7 & Excel2010)ではエラーになりませんでした。
変数宣言の4行は修正するとしても解決には至らないような気がします。

社PCで互換パックを使用して、xlsm 形式を開いているとか。
http://support.microsoft.com/kb/923505/ja

自PC・社PCで、デバッグ→コンパイルが通るかどうか。

ツール → 参照設定 で参照不可になっているものがないか。

を調べてみては?

以上でも解決しないとなると、
社PCで新規XLSファイルにシートをコピペ、コードもコピペで
何とかなるかも?

この回答への補足

 わざわざの試験運用、ありがとうございます。
 そちらでもエラーは出ませんでしたか・・・

 >社PCで互換パックを使用して、xlsm 形式を開いている
 これに関しては調査済みでした。
 残り二つ、及び新規作成については、調査&検証してみたいと思います。

 本日(土曜日)は職場でPCを扱えなかったので、月曜日(というかPCが使えた日w)に試してみます。

 当「補足」欄に追記できないようなので、後日「お礼」欄で報告も兼ねて経過を掲載いたします。

補足日時:2014/03/22 18:04
    • good
    • 0

自信はありませんが


Dim st1Row, st2Row As Integer
ですが
Dim st1Row As Integer, st2Row As Integer

http://denki.nara-edu.ac.jp/~yabu/soft/excel-vba …
を参考に!!

この回答への補足

 このような取り決めがあったのですね!

 ともあれ、本日(土曜日)は職場でPCを扱えなかったので、月曜日(というかPCが使えた日w)に試してみます。

 当「補足」欄に追記できるか分かりませんので、後日「お礼」欄で報告も兼ねて経過を掲載いたします。

補足日時:2014/03/22 17:56
    • good
    • 0
この回答へのお礼

 遅くなってすいません。
 本日実行してみた結果をお伝えします。
 えぇと、こちらの方法では解決には至りませんでした。
 しかしながら、このようなルールを教えて下さったことには感謝しております。これからは、こういった小さなルール?も参考にしていきたいと思います。

 ありがとうございました。

お礼日時:2014/03/27 20:07

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