Excel VBA質問箱 IV

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

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


42 / 12988 ツリー ←次へ | 前へ→

【78884】検索し、各シートを検索したセルを表示したい はる 17/2/20(月) 2:03 質問[未読]

【78894】Re:検索し、各シートを検索したセルを表示... HARU 17/2/21(火) 6:07 質問[未読]
【78895】Re:検索し、各シートを検索したセルを表示... β 17/2/21(火) 7:01 発言[未読]
【78896】Re:検索し、各シートを検索したセルを表示... β 17/2/21(火) 7:03 発言[未読]
【78897】Re:検索し、各シートを検索したセルを表示... はる 17/2/21(火) 8:08 質問[未読]
【78901】Re:検索し、各シートを検索したセルを表示... β 17/2/21(火) 16:09 発言[未読]
【78898】Re:検索し、各シートを検索したセルを表示... ウッシ 17/2/21(火) 8:12 回答[未読]

【78894】Re:検索し、各シートを検索したセルを表...
質問  HARU  - 17/2/21(火) 6:07 -

引用なし
パスワード
   ▼β さん:
色々説明不十分で申し訳ありません。

sheet2はデータの何も入っていないsheetですので、スクロールはしてもしなくても問題ありません。シート数も増減するので全シートを対象にしていました。

ActiveBookは最終的にはマクロブック作成を念頭においております。
まずはThisBOOKで動作させたいと思っています。

>ポイントは以下かな?
>
>    If Not Findcell Is Nothing Then
>      On Error Resume Next
>      '##移動
>    Else
>      ActiveWindow.ScrollRow = Findcell
>    End If
>
>この On Error Resume Next 、これは何を意図して書かれたコードかわかりませんけど
>見つかった場合は On Error Resume Next ??
>見つからなかった場合は Else にいきますよね。
>見つからなかったのにスクロール?
> FindCell は Nothing ですからエラーになるのは当たり前なんですけど?

思い違いをしておりました・・・
IF FindCell が見つからなかったら、
On Error Resume Next
見つかってElseに飛んでサーチのつもりで書いていました


書いていただいたマクロ動かしてみましたが上手く表示されませんでした。
現在、日付の書式がmm"月"dd"日"(aaa)になっております。
書式を変更することも出来ますが、
書いていただいたコードはどの書式で対応しているのでしょうか

【78895】Re:検索し、各シートを検索したセルを表...
発言  β  - 17/2/21(火) 7:01 -

引用なし
パスワード
   ▼HARU さん:

書式を決めつけて LookIn を xlValues で検索することもできますが、
アップしたコードでは書式は何であっても取り出せるはずです。

調べてみますが今から夜まで外出しますので、レスは明日になるかと思います。
それまでにウッシさんや、他の回答者さんが対応していただけるかもしれませんね。

【78896】Re:検索し、各シートを検索したセルを表...
発言  β  - 17/2/21(火) 7:03 -

引用なし
パスワード
   ▼HARU さん:

ところで、ほかのシートのセルの日付ですが、値で入っていますか?
それとも、数式で入っているのでしょうか?

【78897】Re:検索し、各シートを検索したセルを表...
質問  はる  - 17/2/21(火) 8:08 -

引用なし
パスワード
   ▼β さん:
>▼HARU さん:
>
>ところで、ほかのシートのセルの日付ですが、値で入っていますか?
>それとも、数式で入っているのでしょうか?

お手数おかけしております。
日付は値で入っております。

【78898】Re:検索し、各シートを検索したセルを表...
回答  ウッシ  - 17/2/21(火) 8:12 -

引用なし
パスワード
   こんにちは

こんな感じですか?

Sub サーチ()
  Dim i As Integer
  Dim DD As Date
  '##日付設定
  Sheets("Sheet2").Range("A1").FormulaR1C1 = "=TODAY()-1"
  Sheets("Sheet2").Range("A1").Value = Sheets("Sheet2").Range("A1").Value
  DD = Sheets("Sheet2").Range("A1").Value
  
  '##シートループ
  If ActiveWorkbook.Worksheets.Count < 1 Then Exit Sub
  For i = 1 To ActiveWorkbook.Worksheets.Count
    '###日付検索
    Dim Findcell As Range
    Set Findcell = Worksheets(i).Cells.Find(What:=DD, LookAt:=xlWhole, LookIn:=xlFormulas)
    '##無かったら
    If Not Findcell Is Nothing Then
      '##移動
      Application.Goto Findcell, True
      MsgBox "OK"
    End If
    
  Next i
End Sub

他の部分、出来てなかったんですね。
▼β さん:
>▼HARU さん:
>
>ところで、ほかのシートのセルの日付ですが、値で入っていますか?
>それとも、数式で入っているのでしょうか?

【78901】Re:検索し、各シートを検索したセルを表...
発言  β  - 17/2/21(火) 16:09 -

引用なし
パスワード
   ▼はる さん:

ウッシさんからコードが出ています。
これで、要件満足ということなら解決ですね。

>いていただいたマクロ動かしてみましたが上手く表示されませんでした。

この『表示』というのが、何のことだかわかりませんでした。
私がアップしたコードでは、目に見える表示変更はしていませんので。
ただ、(裏側で)各シートの該当行をトップ行にスクロールさせているだけですから。
実行後、各シートを見ると、そぷなっていると思うんですが?

で、ウッシさんのコードでは各シートスクロール処理のたびにメッセージボックスを出し
スクロールの状態を、各シート毎に確認できるようになっています。

そういうことが要件だったのでしょうか?
であれば、解決ということですね。

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