• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAの構文)

VBAの構文

このQ&Aのポイント
  • VBAの構文について教えてください!フィルタやソートを使ったデータ処理を自動化する方法を知りたいです。
  • VBAを使って異なるブックのデータをVLOOKUPを使って結合し、フィルタとソートを行う方法を知りたいです。
  • 異なるファイルのデータをVBAを使って処理し、特定のシートに結果を表示する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.3

>要は、これをファイルは何であれ、開いているファイルの「Critical」Sheetに対してにしたいわけです… ファイルを開いた後に、他のファイルをアクティブにしていなければ、開いたファイルがアクティブになっているはずなので、 Worksheets("Critical").Activate これだけで良いと思いますけど、どうでしょうか。

akichi_7
質問者

お礼

Worksheets! そう、これが知りたかったのです! おかげさまで解決しました。 ありがとうございました!!

その他の回答 (2)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

・記録したマクロがどのようなコードになっているのか ・エラーはどのコードの部分で起きているのか ・エラーメッセージの内容はどうなっているか という具体的は内容を提示してください。

akichi_7
質問者

お礼

よくよく見てみたら、自分でもWorksheets をして指定をしていました。 ただ、item.xlsのほうをアクティブにしていたもので、うまく走ってくれてなかったようです。 そして、簡易Test版ではうまくいったのですが、本番のもうちょっと複雑なリストで、マクロを組みなおしてやってみたら、フィルタなどがズレまくってダメでした。。 構文見直してみます…

akichi_7
質問者

補足

遅くなってすみません。。。 マクロは下記のとおりです。 ActiveWindow.SmallScroll Down:=-117 Windows("DATA100310.xls").Activate ActiveWindow.SmallScroll Down:=-6 ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],[Item.xls]Sheet1!C1:C2,2,0)" Selection.AutoFill Destination:=Range("C1:C23"), Type:=xlFillDefault Range("C1:C23").Select Range("D19").Select エラーメッセージ 実行時Error '9' インデックスが有効範囲 にありません。 Windows("DATA100310.xls").Activate これに対してErrorが起こっているのですが、それは当たり前ですよね。 要は、これをファイルは何であれ、開いているファイルの「Critical」Sheetに対してにしたいわけです… その構文がわからないのです。。 よろしくお願いいたします。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

「マクロを走らせたいシート」、という文章が何を意味しているのかちょっと解りにくいですが・・・ 「フォルダ名:Itemのほう」のファイルにマクロを書き、 そのマクロで ・「DATA100310.xlsだったりDATA100315.xlsだったり」のファイルを開き、 ・そのファイルのシート「Critical」に対して、「フォルダ名:Item)にあるデータをもとに」「VLOOKUPをかけ、フィルタでソート」する だけですよ。 何をどう調べたのか解りませんが、「マクロの記録」でたいていのことは解りますよ。

akichi_7
質問者

お礼

えーとですね、説明がわかりづらかったですかね 1.Item.xlsを開きます 2.DATA100310.xlsを開きます 3.新しいマクロの記録をします(マクロの記録先はItem.xlsです4.DATA100310.xlsのCriticalシートに、Item.xlsのデータをひっぱってくるようにVLOOKUPをかけて、フィルタでソートします 5..マクロのI記録を終了します 6.DATA100310.xlsは閉じます 7.DATA100315.xlsを開きます 8.Item,xlsに記録したマクロを実行させます ここで、DATA100315.xlsに「Item.xlsのデータをひっぱってくるようにVLOOKUPをかけて、フィルタでソートする」という作業にはなってくれません。 Errorになり、デバックするか聞かれます DATA~というファイルは日々新しいものになります ファイル名に関係なく、開いているファイルのいつも同じ名前のシートに作業かけるというマクロを組みたいのです。 それを調べたのですが、わかりませんでした。

akichi_7
質問者

補足

わかりづらかったようなので補足します。 1.Item.xlsを開きます 2.DATA100310.xlsを開きます 3.新しいマクロの記録をします(マクロの記録先はItem.xlsです4.DATA100310.xlsのCriticalシートに、Item.xlsのデータをひっぱってくるようにVLOOKUPをかけて、フィルタでソートします 5..マクロのI記録を終了します 6.DATA100310.xlsは閉じます 7.DATA100315.xlsを開きます 8.Item,xlsに記録したマクロを実行させます ここで、DATA100315.xlsに「Item.xlsのデータをひっぱってくるようにVLOOKUPをかけて、フィルタでソートする」という作業にはなってくれません。 Errorになり、デバックするか聞かれます DATA~というファイルは日々新しいものになります ファイル名に関係なく、開いているファイルのいつも同じ名前のシートに作業かけるというマクロを組みたいのです。 それを調べたのですが、わかりませんでした。

関連するQ&A