職場の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だと
”オブフェクトが必要です”
のエラーが返ってきます。
かといって、どの構文でエラーが出ているのか教えてくれない(反転しない)んです。
どこにエラーがあるのでしょうか?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
なーんか変ですね。
バージョンが微妙に異なりますが
当方(WinXP & Excel2002 とWin7 & Excel2010)ではエラーになりませんでした。
変数宣言の4行は修正するとしても解決には至らないような気がします。
社PCで互換パックを使用して、xlsm 形式を開いているとか。
http://support.microsoft.com/kb/923505/ja
自PC・社PCで、デバッグ→コンパイルが通るかどうか。
ツール → 参照設定 で参照不可になっているものがないか。
を調べてみては?
以上でも解決しないとなると、
社PCで新規XLSファイルにシートをコピペ、コードもコピペで
何とかなるかも?
この回答への補足
わざわざの試験運用、ありがとうございます。
そちらでもエラーは出ませんでしたか・・・
>社PCで互換パックを使用して、xlsm 形式を開いている
これに関しては調査済みでした。
残り二つ、及び新規作成については、調査&検証してみたいと思います。
本日(土曜日)は職場でPCを扱えなかったので、月曜日(というかPCが使えた日w)に試してみます。
当「補足」欄に追記できないようなので、後日「お礼」欄で報告も兼ねて経過を掲載いたします。
No.1
- 回答日時:
自信はありませんが
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)に試してみます。
当「補足」欄に追記できるか分かりませんので、後日「お礼」欄で報告も兼ねて経過を掲載いたします。
遅くなってすいません。
本日実行してみた結果をお伝えします。
えぇと、こちらの方法では解決には至りませんでした。
しかしながら、このようなルールを教えて下さったことには感謝しております。これからは、こういった小さなルール?も参考にしていきたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) countifsについての質問 3 2023/03/08 13:45
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) ワークブック内すべて検索 2 2022/12/20 20:13
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Visual Basic(VBA) VBA 行削除した連番 4 2023/06/27 16:00
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
VBAの天才来てください
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
エクセルのマクロでアクティブ...
-
VBA 存在しないシートを選...
-
同じ作業を複数のシートに実行...
-
ExcelのVBAのマクロで他のシー...
-
エクセルのシート名変更で重複...
-
【VBA】シート名に特定文字が入...
-
【VBA】色のついたシート名を取得
-
ExcelVBA:複数の特定のグラフ...
-
ExcelVBA シート名を複数セルか...
-
XL:BeforeDoubleClickが動かない
-
VBAを用いて繰り返し自動的...
-
excelのマクロで該当処理できな...
-
VBA ユーザーフォーム上のチェ...
-
Excel マクロについての相談
-
特定の文字を含むシートだけマ...
-
エクセル・マクロ シートの非...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
同じ作業を複数のシートに実行...
-
ExcelVBA シート名を複数セルか...
-
【ExcelVBA】全シートのセルの...
-
Excel マクロについての相談
-
VBA 存在しないシートを選...
-
実行時エラー'1004': WorkSheet...
-
特定の文字を含むシートだけマ...
-
ExcelのVBAのマクロで他のシー...
-
ブック名、シート名を他のモジ...
-
XL:BeforeDoubleClickが動かない
-
VBA 複数の各シートに行を追加...
-
エクセルのシート名変更で重複...
-
【Excel VBA】Worksheets().Act...
-
シートが保護されている状態で...
-
Excel VBA 複数行を数の分だけ...
-
for 文の 繰り返し処理に使える...
おすすめ情報