VBAエラー:オブジェクト変数またはWithブロック変数が設定されていません。

このQ&Aのポイント
  • VBAエラーが発生し、オブジェクト変数またはWithブロック変数が設定されていないことを示しています。
  • 特定のエクセルファイルの複数のシートから特定の文字列を検索するVBAコードを実行するとエラーが発生します。
  • マクロの記録で作成したマクロを元にしているため、コードに問題があるわけではありません。
回答を見る
  • ベストアンサー

VBAエラー:オブジェクト変数またはWithブロック変数が設定されていません。

Book1.xlsのSheet1~Sheet8を選択し、それらのシート内から、ABCDEFGという文字検索をさせたいのですが、実行させると「実行時エラー'91':オブジェクト変数またはWithブロック変数が設定されていません。」というエラーとなってしまいます。 マクロの記録で作成したマクロを元にしているので、コードがおかしいとは思えないのですが・・・ どなたか、解決策を、ご教授下さいませ。 よろしくお願い致します。 ------------------ Sub TEST() Workbooks("Book1.xls").Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5", "Sheet6", "Sheet7", "Sheet8")).Select Cells.Find _ (What:="ABCDEFG", _ After:=ActiveCell, _ LookIn:=xlFormulas, _ LookAt:=xlPart, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False, _ MatchByte:=False, _ SearchFormat:=False).Activate End Sub

  • THUBAN
  • お礼率76% (771/1002)

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

  • ベストアンサー
noname#44485
noname#44485
回答No.1

こんにちは。 私も最初のころ混乱したのですが Select=選択する Activate=アクティブにする と違うものみたいです。 たとえば、 複数シートは ”選択”はできるけれども、 ”アクティブ”に出来なかったりします。 とても近い質問がありましたので、こちらをご参考に! http://oshiete1.goo.ne.jp/kotaeru.php3?q=1616728

THUBAN
質問者

お礼

マクロの記録のコードで使っても上手く動作しないこともあるのは知っていたのですが、ん~奥が深いというか恐るべしExcel VBA・・・ 教えていただいた質問ページの回答者ANo.2さんのコードを、自分用に変えて使用してみたところ上手く行きました! さすがに、この回答者ANo.2さんのようなコードは、素でコーディングできるほどの技量がないので、大変助かりました。 これで、そのあとのコーディングに入れそうです。 また、つまづきましたら、ご質問させて下さいませ。 どうもありがとうございました!!

関連するQ&A

  • エクセル2007のマクロ不具合について、

    次のようなマクロを「CTRL+T」のショートカットキーで作成しましたが、2回続けて実行すると2回目が違う結果となってしまいます。 1回目はちゃんと 2010/1/2 のセルがアクティブセルとなるのですが、2回目は 2010/11/2 がアクティブセルとなってしまいます。  原因と対処法があればぜひ教えていただきたいと思います。よろしくお願いします。 Sub 本日() Cells.Find(What:=Date, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate End Sub

  • VBA★findを使って見つけたセルの値を取得

    AA="タナカ" Selection.Find(What:=AA, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate 自動マクロでコレをつくりました。 タナカを見つけてその隣の変数を取得するというものを作りたいと思っています。 関数で言うとVlookupでやるものをマクロ化しようとしています。 検索して見つかったセルの右隣のセルの値を取得するにはどうしたらいいですか?

  • 検索した後の見つかった件数を取得したい

    画像のように手作業で検索した場合、下に検索結果の個数が表示されますが これをVBA内で取得することは可能でしょうか? マクロの記録だと Sub Macro() Cells.Find(What:="a", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , MatchByte:=False, SearchFormat:=False).Activate End Sub となるのですが、最後に全部の個数を取得したいです。

  • EXCEL マクロでの検索をお教えください

     下記のようなマクロを使いたいのですがこの場合×があるときは良いのですが、  無いときエラーが出ます。どの様にすれば良いのかお教えください。  無いときエラーは オブジェクト変数または With ブロック変数が設定されていません。  となります。 Sub 検索()    Range("K12:K70").Select    Cells.Find(What:="×", After:=ActiveCell, LookIn:= _    xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _    xlNext, MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate End Sub

  • [VBA]変数を利用して時間を検索する方法が・・・

    エクセルで表示形式が「hh:mm:ss」に設定されているセルの中から 指定のセルを検索するマクロを作ろうとしているのですが、 上手くいきません。 検索する数字を変数にして変えられるようにしたいです。 Sub Macro1() Dim temp As Double temp = Range("A1").Value 'A1には0:00:01を入れる Cells.Find(What:=temp, After:=ActiveCell, LookIn:=xlValues, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate End Sub 上の記述だと、実行時エラー91「オブジェクト変数またはWithブロック・・・」が出ます。 > temp = "0:00:01" これに書き替えると「型が違います。」になり、「""」をはずすとコンパイルエラーになります。 「What:="0:00:01"」というように、直接入れると上手くいきます。 どなたか、お力をお貸しください。 よろしくお願いします。

  • マクロを使用してBook内を検索する方法

    おはようございます。 質問を読んで頂き、ありがとうございます。 私が質問したいことは【マクロを使用してBook内を検索する方法】になります。 正直、マクロには詳しくないのですが色々なサイトを見ながら作っては見たものの希望道理に検索できないのが現状です。 実際に行いたい作業は、sheet1には○○市内の薬局名を入力、sheet2には△△市内の薬局名を入力、sheet3には□□市内の薬局名を入力・・といったように、1つのsheetにその市内にある薬局を打ち込みました。 そこで、マクロを実行し薬局名を打ち込むと、その薬局名の書いてあるセルに飛ぶような設定にしたいのですが、どうも上手くいきません。 例えば、sheet1内でマクロを実行した場合はsheet1内に薬局名があればセルにうまく飛ぶのですが、sheet1内にない薬局(sheet2などにある場合)は【実行時エラー オブジェクト変数またはwithブロック変数が設定されたいません】という表記が出てしまいます。 希望としては、sheet1でマクロを実行しても、全体を検索できるようにしたいのですが、可能なのでしょうか? マクロには以下のように登録しました。 Sub Macro1() ' ' ' a = InputBox("検索したい文字を入力してください。") Cells.Find(What:=a, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , MatchByte:=False, SearchFormat:=False).Activate End Sub 稚拙な文章で大変申し訳ないのですが、マクロに詳しい方、ご教授していただけませんでしょうか? よろしく御願い致します。

  • 文字検索マクロで質問です。

    文字検索マクロで質問です。 下記のマクロを作成したのですが、A1に検索する文字を入力してA列(A5:11700)のみを検索して該当が有ったらそのセルを色を付けし、又,該当が無ければMSG BOXで”該当なし”と表示するマクロを御教授頂けますか。 Cells.Find(What:=Range("A1").Value, After:=ActiveCell, LookIn:=xlFormulas,   LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , MatchByte:=False, SearchFormat:=False).Activate End Sub 以上、宜しくお願い致します。

  • VBAのFINDのエラーを回避したいです。

    以下のようなものを作成しましたが、1シートでは、問題なく回るものの2シート目のmをFINDしているところでエラーが発生します。原因は、該当するmが存在しないためだと思うのですが、そのような場合にエラーを回避し、次のシートへ飛びエラーが発生したシート番号を最後に表示してほしいです。 そのようなことは可能でしょうか? 読みにくいプログラムかもしれませんが、よろしくお願いします。 Dim top, m, under, bottom, cnt, she Application.ScreenUpdating = False '画面固定 cnt = Sheets.Count 'シートの数 For she = 1 To cnt Sheets(she).Activate Columns("F:F").Select Selection.Find(What:="0", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False, SearchFormat:=False).Activate top = ActiveCell.Row - 1 Rows("1:" & Format(top)).Select Selection.Delete Shift:=xlUp Range("A1").Select m = Range("E1") + 10 If m >= 60 Then m = m - 60 Else m = m End If Columns("E:E").Select Selection.Find(What:=Format(m), After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False, SearchFormat:=False).Activate under = ActiveCell.Row bottom = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row - 1 Rows(Format(under) & ":" & Format(bottom)).Select Selection.Delete Shift:=xlUp Range("A1").Select Next she End Sub

  • エクセルのマクロについていくつか質問があります

    エクセルのマクロについていくつか質問があります 1 例えばA1セルが赤く塗りつぶされている場合隣のB1セルに赤と表示させたいのですが出来ますか 実際には色は何色かあります 2 セルの検索で検索であったセルを選択状態にするにはどうすればいいですか いちおう検索構文まではできてます Selection.Find(What:="6", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False, SearchFormat:=False).Activate 以上ですよろしくお願いします

  • マクロエラ-

    初心者です。win2000,エクセルでマクロが途中で止まってしまいます。時々に、最後までいくことがありますが、8割がたは、同じところでストップします。 マクロ言語は理解できていません。 うまく完了のケ-スは、デ-タの中身次第かなと思います。 記憶では、”0”があれば、何かをするようにしたと思います。 想定外のデ-タで、とまるのなら、回避方法を教えてください。 黄色反転して、ストップする部分は、以下です。 mcr3 Range("A1").Select ActiveCell.SpecialCells(xlLastCell).Select Columns("C:C").Select Selection.Find(What:="0", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False).Activate いつもここで止まります。 ActiveCell.Replace What:="0", Replacement:="", LookAt:=xlWhole, _ SearchOrder:=xlByRows, MatchCase:=False, MatchByte:=False Selection.Find(What:="0", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False).Activate -----------→つずく。