Excel VBA質問箱 IV

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

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


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

【70587】別ファイルの検索範囲指定の仕方 まろにー 11/12/5(月) 10:30 質問[未読]
【70588】Re:別ファイルの検索範囲指定の仕方 UO3 11/12/5(月) 11:30 発言[未読]
【70592】Re:別ファイルの検索範囲指定の仕方 まろにー 11/12/5(月) 13:26 お礼[未読]
【70664】Re:別ファイルの検索範囲指定の仕方 まろにー 11/12/14(水) 20:10 お礼[未読]
【70589】Re:別ファイルの検索範囲指定の仕方 UO3 11/12/5(月) 11:34 発言[未読]

【70587】別ファイルの検索範囲指定の仕方
質問  まろにー  - 11/12/5(月) 10:30 -

引用なし
パスワード
   初めて質問します。よろしくお願いします。

Book1.xls Book2.xlsがあり、どちらも開いています。
Book2.xlsはネットワーク上のファイルで、フルパスをkensakuという変数名で指定されています。また、Book2.xlsの部分だけはadoresuという変数名で指定されています。
検索範囲はkensakuファイルの「データ」シートのRange(Cells(2,5),Cells(i,5))です。
(iは変数で、データの最終行です。)


Book1.xlsにmatch関数をいれて計算させたいのですが、別ファイルの検索範囲の指定の仕方がよくわからないので、わかる方、ご伝授願います。

Activecell.value=Application.worksheetfunction.match(cells(2,2),ここの指定の仕方を教えてください,0)

このパソコンにエクセルが入っていないんで、細かい記述が間違っているかもしれませんが、ご容赦くださいm(_ _)m


よろしくお願いします。

【70588】Re:別ファイルの検索範囲指定の仕方
発言  UO3  - 11/12/5(月) 11:30 -

引用なし
パスワード
   ▼まろにー さん:

こんにちは

私個人としては、対象のセルを「ActiveCell」と指定するのは好きじゃないんですが。
その前提である、「そのセルのあるブックが最前面、いわゆるアクティブブックで、かつ」
そのセルがあるシートが最前面(いわゆるアクティブシート)という前提のコードもあぶなっかしくて
好きじゃないんですけど、そこはそのまま使うとして。
Range("A1:A20") は、たとえばの、サンプルです。

Sub Sample()
  Dim sh2 As Worksheet
  Set sh2 = workbokks("Book2.xls").Sheets("Sheet1") 'シート名は実際のものに
  ActiveCell.Value = _
    Application.WorksheetFunction.Match(Cells(2, 2), sh2.Range("A1:A20"), 0)
End Sub

メモ

Application.WorksheetFunction.Match
WorksheetFunctionを使うなら、これは、長ったらしいので
WorksheetFunction.Match と記述したほうがすっきりします。

もう1つ、
照合型 0 のWorksheetFunction.Match だと、見つからなかった場合、実行時エラーでVBA処理が中断します。
これを避けるためには
Application.Match と、Applicationクラスの関数を使います。
(見つからなかった場合、エラー値がかえってきます)

【70589】Re:別ファイルの検索範囲指定の仕方
発言  UO3  - 11/12/5(月) 11:34 -

引用なし
パスワード
   ▼まろにー さん:

こめんなさい

>検索範囲はkensakuファイルの「データ」シートのRange(Cells(2,5),Cells(i,5))です。

ここを読み飛ばしていました。

ActiveCell.Value = _
  Application.WorksheetFunction.Match(Cells(2, 2), sh2.Range(sh2.Cells(2, 5), sh2.Cells(i, 5)), 0)

ですね。

【70592】Re:別ファイルの検索範囲指定の仕方
お礼  まろにー  - 11/12/5(月) 13:26 -

引用なし
パスワード
   UO3さん
すばやい回答ありがとうございますm(_ _)m

それに、activecell.value・・・個人的などとはとんでもない!本当ですね。
どこか、意図しないところへかかれる危険性大ですね。
そういうところにも気をつけて書くようにしようと思います。

明日、質問のプログラムを作ろうと思うので助かりました。


>照合型 0 のWorksheetFunction.Match だと、見つからなかった場合、実行時エラーでVBA処理が中断します。
>これを避けるためには
>Application.Match と、Applicationクラスの関数を使います。
>(見つからなかった場合、エラー値がかえってきます)

これかもしれません!構文エラーは発生しなかったものの、実行時とまってしまいました。

勉強した本にはapplication.worksheetfunctionと書いてあったので、これしかないと思っていました^^;無知ですね><
この質問箱をみて、たくさん勉強したいと思います。
また、よろしくお願いします。

【70664】Re:別ファイルの検索範囲指定の仕方
お礼  まろにー  - 11/12/14(水) 20:10 -

引用なし
パスワード
   確認しようと思いきや、他のトラブルで、ずっと時間が取れず確認できずにいました(T_T)
今日、確認したらうまく動きました。
本当にありがとうございました。

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