Excel VBA質問箱 IV

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

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


5775 / 13645 ツリー ←次へ | 前へ→

【48925】マクロを実行させない方法 福神漬 07/5/16(水) 11:42 質問[未読]
【48927】Re:マクロを実行させない方法 Jaka 07/5/16(水) 11:52 発言[未読]
【48928】Re:マクロを実行させない方法 福神漬 07/5/16(水) 12:04 質問[未読]
【48929】Re:マクロを実行させない方法 Jaka 07/5/16(水) 12:22 発言[未読]
【48931】Re:マクロを実行させない方法 福神漬 07/5/16(水) 12:58 お礼[未読]

【48925】マクロを実行させない方法
質問  福神漬  - 07/5/16(水) 11:42 -

引用なし
パスワード
   下記のコードでファイルを開くとユーザーフォームに走るファイルがあります。
そのファイルを開き、別ファイルへオートフィルターで抽出した後、コピー・貼り付けのマクロを組みたいのですが、参照元のファイルを開くと、下記のコードがvisualBasicのウィンドウ上に出てきてしまいます。
UserFoam1をアンロード(?)させるにはどうすればよいでしょうか?

参照元のコード
Private Sub Workbook_Open()
  UserForm1.Show 0
End Sub

コピー先のコード
Sub syuukei()
  Dim FileName As String
  Dim MYPATH As String
  Dim r1 As Long
  Dim r2 As Long
  Dim WB As Workbook
  r1 = Worksheets("sheet1").Range("G65536").End(xlUp).Row
  Worksheets("sheet1").Range("G4:G" & r1).ClearContents
  MYPATH = "\\SSSSS\sssss\出荷管理\管理表\"
  strFileName = MYPATH & "製品管理表" & ".xls"
  If Dir(strFileName) <> "" Then
  Set WB = Workbooks.Open(strFileName) '←ステップインしていくとここでウィンドウが切り替わってしまいます。

分かり難い説明ですみません。
ご教授宜しくお願い致します。

【48927】Re:マクロを実行させない方法
発言  Jaka  - 07/5/16(水) 11:52 -

引用なし
パスワード
   >下記のコードがvisualBasicのウィンドウ上に出てきてしまいます
意味がよく解ってないけど、多分。

>  If Dir(strFileName) <> "" Then
   Application.EnableEvents = False
>  Set WB = Workbooks.Open(strFileName) '←ステップインしていくとここでウィンドウが切り替わってしまいます。

【48928】Re:マクロを実行させない方法
質問  福神漬  - 07/5/16(水) 12:04 -

引用なし
パスワード
   ▼Jaka さん:
>>下記のコードがvisualBasicのウィンドウ上に出てきてしまいます
>意味がよく解ってないけど、多分。
>
>>  If Dir(strFileName) <> "" Then
>   Application.EnableEvents = False
>>  Set WB = Workbooks.Open(strFileName) '←ステップインしていくとここでウィンドウが切り替わってしまいます。

ありがとうございました。無事、回避できました。

立て続けの質問で申し訳ないのですが、教えて下さい。。
その後のWBの取得ができません。。
コードの書き方が違っているでしょうか?
"アプリケーション定義またはオブジェクト定義のエラーです"
となってしまいます。

  Application.EnableEvents = False
  Set WB = Workbooks.Open(strFileName)
    r2 = Range("J65536").End(xlUp).Row
    If AutoFilter = False Then
    With WB.Worksheets("EX").Range("B:AC" & r2)"←この行でエラーになってしまいます。
    .AutoFilter field:=1, Criteria1:="ユーザー"
    End With

宜しくお願い致します。

【48929】Re:マクロを実行させない方法
発言  Jaka  - 07/5/16(水) 12:22 -

引用なし
パスワード
   ▼福神漬 さん:
>    With WB.Worksheets("EX").Range("B:AC" & r2)"←この行でエラーになってしまいます。
最後のWクォーテーションが要らない。
Wクォーテーションは、文字の区切りとして使われるので、
区切り位置がつかめない。

もしくは、
Range("B:AC3").Select
と、やっているのと同じになります。
B列のどこから?状態。

追記
r2 = Range("J65536").End(xlUp).Row
変数名に、r2は止めた方が良いと思います。
R1C1形式のr2とコンパイラが誤認する時があるようなので...。
C1,C2も同じく。

【48931】Re:マクロを実行させない方法
お礼  福神漬  - 07/5/16(水) 12:58 -

引用なし
パスワード
   ▼Jaka さん:
>最後のWクォーテーションが要らない。
>Wクォーテーションは、文字の区切りとして使われるので、
>区切り位置がつかめない。
>
シングルクォーテーションと間違えました。。
>もしくは、
>Range("B:AC3").Select
>と、やっているのと同じになります。
>B列のどこから?状態。
>
確かにそうですね。。
他の場所にもありました...

>追記
>r2 = Range("J65536").End(xlUp).Row
>変数名に、r2は止めた方が良いと思います。
>R1C1形式のr2とコンパイラが誤認する時があるようなので...。
>C1,C2も同じく。
ありがとうございます。
違う名前に変えようと思います。

同じパターンしか書けませんが、マクロを少し組めるようになったものの、
エラーになってしまうと、何でエラーなのかが分からず、悩んでしまいます。。。
(今回は見直しが足りなかっただけですが。。。)

Jakaさん、本当にありがとうございました。
望んでいたものができそうです。

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