忙しい現代人の腰&肩のお悩み対策!

複数のブックに対して文字列を検索する方法についてご教授いただけないでしょうか?
http://www.keep-on.com/excelyou/2001lng4/200111/ …
にそれらしき方法が記載されたいたのですが、その中で、
Windowsの<red>検索</red>が手っ取り早いという記載があったのですが、これはどのように使えばよいかもご教授頂けると助かります。どうぞよろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

Windowsの機能を使っての検索について(OS:XP)



1:検索ボタンを押して検索窓を表示させます。
2:何を検索するか聞かれたら「ドキュメント(ワープロ~~)」を選択
3:最終更新日時を聞いてくると思うので、そこは無視して、下の「詳細検索オプションを使う」を選択
4:すると【ドキュメントに含まれる単語または句】という設定項目がでてきます。
5:そこに検索したい語句を入力

の手順でメモ帳やエクセルファイルなどの中身まで見てくれますよ。
中を探したいファイルを全部同じフォルダにでも突っ込んで検索かければ楽かと思います。
    • good
    • 3
この回答へのお礼

ありがとうございました。
おかげでできました。

お礼日時:2009/04/09 21:47

プログラムの質問ではありませんよね?



Excelの機能で
「ファイル」→「開く」
ダイアログが表示されたらその中のどこかに
「ツール」というものがあると思います。

その中から「検索」を選べば望みの動作になると思います。
indowsの<red>検索</red>に関しては知りません。
    • good
    • 0
この回答へのお礼

ありがとうございました。
おかげでできました。

お礼日時:2009/04/09 21:46

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む

QExcel VBAで複数のExcelブックからある文字列を検索→抽出したものをまとめたい

Excel VBAで以下の操作は可能でしょうか。
私はAccessVBAを少しさわる程度でExcel VBAはまったくわかりませんし、
まだ現物データを見ていないので説明不足ですが、
ご存知の方がいらっしゃいましたらどうぞご回答をお願いします。
コード等もあわせて教えて下さるととても助かります。

複数のExcelブックからある文字列を検索→抽出したものをまとめたい。
・検索抽出したい文字列の入っているセル位置は固定。
・抽出したデータを新たなファイルにするか、どうするかはまだ未定。
・Excelブックは100個ほどある。

Aベストアンサー

いくつもの課題があるようですね。

検索については、[VBA .Find] 等で探すと幾つかの例が見つかります。
http://excelvba.pc-users.net/fol7/7_2.html
ヒットした情報はセルのオブジェクトなので、.Value で値を取出して、作業シートや配列に格納する事も可能です。

100個のブックをどのように指定するのかは解りませんが、同一フォルダなら Dir()関数でファイルを複数のファイルを連続して取出す事が可能です。

まずは、ネットで探したサンプルを元に簡単なコードを書いて実験して見てください。
解らない部分は、大抵はヘルプやネットで探せます。

Q複数のエクセルファイルからデータ抽出とまとめる方法について。

500のエクセルファイルがあり、それぞれのエクセルデータのA2からF2までのデータのをまとめた一覧表(1行目は、1枚目のエクセルファイルのA2-F2、2行目は2枚目のエクセルファイルの・・・、という感じでです)のを、新しいエクセルファイルもしくはテキストなどにでも手早く作れる方法をご存知の方、ご教授ください。コピペでやっていますが嫌になってしまいました。。マクロも触っては見たのですが、2枚目のエクセルファイルを2行目に、3枚目のエクセルファイルを3行目になどの方法の解決は思いつかず、挫折しました。よろしくお願いいたします

Aベストアンサー

対象のフォルダをcドライブの「sample」とした場合で回答します。
新規エクセルブックのシート名タブを右クリックし「コードの表示」
右側のエディタエリアに下記コードを貼り付け、実行して下さい。
G列にファイル名が入るようになっています。不要であれば
Cells(rIdx, 7).Value = fName
を削除して下さい。


Sub getA_F()
Const myPath As String = "c:\sample\"
Dim rIdx As Long
Dim fName As String
fName = Dir(myPath & "*.xls")
Do Until fName = ""
Workbooks.Open Filename:=myPath & fName
rIdx = rIdx + 1
Me.Range(Cells(rIdx, 1), Cells(rIdx, 6)).Value = ActiveSheet.Range("A2:F2").Value
Cells(rIdx, 7).Value = fName
Windows(fName).Close
fName = Dir
Loop
End Sub

対象のフォルダをcドライブの「sample」とした場合で回答します。
新規エクセルブックのシート名タブを右クリックし「コードの表示」
右側のエディタエリアに下記コードを貼り付け、実行して下さい。
G列にファイル名が入るようになっています。不要であれば
Cells(rIdx, 7).Value = fName
を削除して下さい。


Sub getA_F()
Const myPath As String = "c:\sample\"
Dim rIdx As Long
Dim fName As String
fName = Dir(myPath & "*.xls")
Do Until fName = ""
Workbooks.Open ...続きを読む

QEXCELマクロで全シート対象の検索マクロを教えて

EXCELマクロで全シート対象の検索マクロを教えてください。
アプリケーションダウンロードタイプでも自作マクロの
どちらでもよいです。

Aベストアンサー

無力のため、いつもFind、FindNextには苦労するのですが、思い切ってあげてみます。VBAの経験がおありなら、欠点は修正してもらえるかもと思って。
標準モジュールに
Sub test01()
s = InputBox("検索文字列=")
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
Set x = sh.Cells.Find(what:=s)
If x Is Nothing Then GoTo p1
MsgBox sh.Name & x.Address
b = sh.Name & x.Address
sh.Activate
x.Activate
'---
Do
Set y = sh.Cells.FindNext(after:=ActiveCell)
If y Is Nothing Then GoTo p1
If sh.Name & y.Address = b Then GoTo p1
MsgBox sh.Name & y.Address
y.Activate
Loop
p1:
Next
End Sub
シート名タブの左側のシートから探していきます。
上記はMggBoxで表示にしてますが、特別セルにセルアドレス値を出すなど適当に修正してください。
少数例でテストしてますが、十分テストしてください。

無力のため、いつもFind、FindNextには苦労するのですが、思い切ってあげてみます。VBAの経験がおありなら、欠点は修正してもらえるかもと思って。
標準モジュールに
Sub test01()
s = InputBox("検索文字列=")
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
Set x = sh.Cells.Find(what:=s)
If x Is Nothing Then GoTo p1
MsgBox sh.Name & x.Address
b = sh.Name & x.Address
sh.Activate
x.Activate
'---
Do
Set y = sh.Cells.FindNext(after:=ActiveCell)
If y Is Nothing T...続きを読む

Qフォルダ内の複数ファイルの一括検索 マクロ

⑴ 同一フォルダ内にある20ぐらいのエクセルファイルの住所の一部や、電話番号の一部を文字列検索して、エクセルの機能にある「ブック・全て検索」の結果と同じような
「ブック」「シート」「名前」「セル」「値」
を全て表示させ、「セル」にはリンク設定をして、ジャンプするようにしたいのです。
⑵ エクセルファイルは、
列データは統一されておらず、18列程度
それぞれ別のファイル名、シート名が付いている
1ファイルに5万行程度のデータ
データは電話番号、氏名、住所、顧客情報、備考など
です。
会社のPCでは、ネットやアプリが使えず、エクセルのマクロでしたいと思っています。
ただ、このためにマクロをやりだしたため、殆ど分からず、ネットで調べて近い物を参考にいくつか書かれていたマクロの記述を見ながら作りましたが、うまく動きません
勉強しても全く追いつかないので、どなたか親切な方、作って頂けませんでしょうか
エクセルは2010です。
どうぞ、よろしくお願いします。

Aベストアンサー

#6です

> 何分、マクロに関しては素人ですので、

回答した、回答いただいてるので、色々聞かれたら良いと思いますよ
質問者さんが補足等で聞かれる分には、遠慮はいらないと思います

ご質問内で、リンク設定して・・・とあったので、
ハイパーリンクでの記述を提示してみましたが、
ハイパーリンクを使わない理由に(私は)興味ありますけど

ハイパーリンクを使わないから、
シートモジュールへの記述が発生していると思われるので

素人ゆえに、機能を増やす/削る等の判断は重要かと
機会があれば、色々な事を知っておいた方が良いかも
それによって、VBA での記述量/難易度が変わってくると思います



> 同一フォルダ内にある20ぐらいのエクセルファイル

これらのファイルの性質はどのようなものだったでしょうか
随時更新され続けるものだったでしょうか?

言葉で記述してませんでしたが
・AddFile してから Search するまでの間に
・Search してから Search するまでの間に
ファイルサイズが変わったら、読み込みしなおすようにしてました
不要であれば、Size 比較部分等削除ください
ファイルサイズが変わらない場合でも、現状で動くと思います
サイズで判別していましたが、更新日時を使うとか・・・

履歴の様なもので今後変更ないのであれば、
Access にでも1枚テーブルに読み込んでおけば
And 検索等も楽にできるような気がします


※ そのまま 使えるもの を提示しているつもりは無いので、
検証を重ねて、できるもの から、使えるもの にしてください

例えば、Samp0 でのファイルの指定方法とか

CPATH のフォルダにある Excel ファイルを AddFile に指定しますが、
ファイル名先頭が "~" なら除外してました
これは、自分が(誰かが)そのファイルを開いた時に出来上がる
バックアップファイル(?)の ~$ファイル名 を対象外とするだけです

なので、普通に "~" で始っているとか
> マクロを設定したエクセルをデータがあるフォルダと同じフォルダに保存
には対応できてません

ファイル名を得るために FileSystemObject のメソッド を使ってました

FileSystemObject のメソッド
https://msdn.microsoft.com/ja-jp/library/cc428078.aspx

Dir を使っても良いと思います
どのような指定をしたら、どのようなものが得られるのか等
また、それによって、どのような判別すれば良いのか・・・
色々試してみてください

#6です

> 何分、マクロに関しては素人ですので、

回答した、回答いただいてるので、色々聞かれたら良いと思いますよ
質問者さんが補足等で聞かれる分には、遠慮はいらないと思います

ご質問内で、リンク設定して・・・とあったので、
ハイパーリンクでの記述を提示してみましたが、
ハイパーリンクを使わない理由に(私は)興味ありますけど

ハイパーリンクを使わないから、
シートモジュールへの記述が発生していると思われるので

素人ゆえに、機能を増やす/削る等の判断は重要かと
機会があれば、色々な事を...続きを読む

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QWindows7のファイル検索で、「ファイル中に含まれる文字列」を指定

Windows7のファイル検索で、「ファイル中に含まれる文字列」を指定するには?

掲題の通りです。
WindowsXPではCtrl+Fでそういった詳細検索ができたのですが、Windows7ではどうすればいいのでしょうか。

Aベストアンサー

インデックスが作成されているドライブに対しては、その検索がもともとできる仕様になっています。
ただし、ちゃんとヒットするかどうかという点についてはなんとも言えません。
動作が非常に遅いことと、ファイル作成後にすぐに反映されるはずなのに、まともに反映されることの方が少ないことや
http://support.microsoft.com/kb/309173/ja
(Vistaでの解説ですが、WindowsXPでも7でも同じようです)
等の制限があることなどから、「Googleデスクトップ検索」などの外部のツールをご利用になったほうがいいと思います。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルでファイルを開かずに文字を検索し、行を抽出したい

ひとつのフォルダの中にファイルが複数あります。これらのファイルを開かずに文字列を検索し、検索対象の文字がある行をまどめてひとつのファイルに抽出したいです。

例:Aフォルダ内にファイル1、ファイル2、ファイル3、、、と複数のファイルがある。ファイルのフォーマットはすべて同じでデータのみが異なる。ファイルにはシートは一つのみ。

ファイルのイメージは
     A    B    C     D 
1行目 名称   価格   味    評価 ←全ファイル共通
2行目 いちご  100円  おいしい   A
3行目 りんご  200円  まずい    C



これらのファイルから、例えば「いちご」という文字が含まれているセルがある行を抽出して一覧を作りたいです。

もし可能であれば、検索条件として、
一行に 「いちご」かつ「A」を含む や「いちご」または「おいしい」を含む など の絞込みができる機能があれば助かります。

マクロは初心者のため、自分でこのようなものを作ることができません。どうぞお知恵をおかしください。よろしくお願いいたします。

ひとつのフォルダの中にファイルが複数あります。これらのファイルを開かずに文字列を検索し、検索対象の文字がある行をまどめてひとつのファイルに抽出したいです。

例:Aフォルダ内にファイル1、ファイル2、ファイル3、、、と複数のファイルがある。ファイルのフォーマットはすべて同じでデータのみが異なる。ファイルにはシートは一つのみ。

ファイルのイメージは
     A    B    C     D 
1行目 名称   価格   味    評価 ←全ファイル共通
2行目 いちご  100円...続きを読む

Aベストアンサー

No.2のyorisinです。
バッチはExcelではなく、超お手軽なプログラムと思ってください。

たとえば今回の例では、アスタリスク(*)の中をメモ帳にコピーして、
拡張子を[bat]で保存すればこれでプログラムの完成です。
********************

@echo off
echo 検索結果>result.csv
type %2 | find "%1">>result.csv

echo 検索終了
@pause

********************

このプログラムを動かす場合には、コマンドプロンプトを開き、
(スタートメニュー→プログラム→アクセサリ→コマンドプロンプト)

黒い画面に保存したバッチファイル(拡張子=bat)をドラッグアンドドロップ
→半角スペースを入れて検索したい文字を入力
→半角スペースを入れて検索対象のCSVファイルをドラッグアンドドロップ
→エンターキー
で、自動的に検索したい文字列を含む行を出力します。

Qエクセル内で複数の文字(50個ぐらい)を一括で検索したい

タイトル通りなのですが、エクセル内の文字列で
特定の複数(50個ぐらい)の文字を一括検索したいのですが、
どうすれば 検索できますか?
決して検索後に、別の文字に置き換えや、
複数のエクセルを一括検索したいとまでは言いません。
一つのエクセル内で複数(50個ぐらい)の文字を検索し、
ヒットしてくれれば 後はヒットした文字列を手動で
削除していくので、検索できるだけで構わないです。

もちろん 贅沢を言えば、ヒットした文字列の
文字色or文字列の枠内か枠が色付きになってくれると
ひと目でヒットしている場所が分かり、助かるのは
事実ですが、簡単に できる方法ってありますか?
複雑なマクロを使うことになるのでしょうか?

どなたかご存知のかたがいらっしゃれば
教えていただけないでしょうか?

なにぶん無知なほうなので、面倒かと思いますが、
具体的に教えていただけると幸いに思います。
どうぞよろしくお願い致します。

Aベストアンサー

No2 merlionXXです。

> 検索したい複数の文字は どこに設定すれば よろしいでしょうか?

「A1セルからA50セルまでの各セルにそれぞれ検索したい文字があるとします。」と書いておいたのですが、意味が伝わらなかったのでしょうか?
A1からA50まのの各セルに設定してください。
なお、検索範囲はマクロ実行前に選択(セレクト)しておいてくださいね。

> 後、例:16F~70Fなど、範囲を決めての英数字の検索等も可能ですか?

では、16F~70Fを検索するマクロです。

Sub 連続検索02()
For n = 16 To 70 '16~70まで
Set c = Selection.Find(What:=n & "F", LookAt:=xlPart) '選択範囲を検索(16F~70F)
If Not c Is Nothing Then 'あったら
fAd = c.Address 'セル番地を控える
Do '繰り返す
i = i + 1 'カウント
c.Interior.ColorIndex = 8 'セル着色
Set c = Selection.FindNext(c) '連続検索
Loop Until c.Address = fAd '一巡するまで'繰り返し
End If
Next n '次の検索文字で繰り返す
Set c = Nothing
MsgBox i & "件を発見しました。", vbInformation, " ( ̄ー ̄)v"
End Sub

No2 merlionXXです。

> 検索したい複数の文字は どこに設定すれば よろしいでしょうか?

「A1セルからA50セルまでの各セルにそれぞれ検索したい文字があるとします。」と書いておいたのですが、意味が伝わらなかったのでしょうか?
A1からA50まのの各セルに設定してください。
なお、検索範囲はマクロ実行前に選択(セレクト)しておいてくださいね。

> 後、例:16F~70Fなど、範囲を決めての英数字の検索等も可能ですか?

では、16F~70Fを検索するマクロです。

Sub 連続検索02()
For n =...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング