• 締切済み

Excelファイルをgrep検索したい

よろしくお願いします。 エクセルVBAでタイトル通りの機能を実装しようとしています。 あれこれ試した結果、一時的に単一ウェブページ形式(mht)で出力してそいつから検索する方法でやろうとしています。 が、出力されたファイル内の日本語はコードのようなものになっておりそのままでは読めません。 IEオブジェクトにロードしてInnerTextで拾おうとしても複数シートがあるとうまくいかず途方にくれています。 何卒お知恵をお貸し下さい。

みんなの回答

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

オブジェクトに読み込んだ段階で手を抜いてInnerTextで拾おうとするからじゃないかなぁ 概念的に sheet[x].line[y].cel という形でline辺りをtoStringにかけてgrepの方が妥当じゃないかと思う。 DOM的に childNodes[x] という拾い方したら良いんじゃないかな。 alert(obj.childNodes[x].nodeName); とかで何を拾ってるのか確認しながらやると判りやすいかも。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 他のExcelファイルのVBAコードを検索したい

    他のExcelファイルに書かれたVBAコードに、ある特定のキーワード(パス名など)が使われているかを自動的に調べるためのVBAを書きたいと思っています。 仕事で使っているマクロが書かれたExcelファイルからある特定の処理をしているマクロを含むものを検索したいのですが、検索するExcelファイルが膨大なため、順番にExcelファイルを開いてVBAコードをチェックしていく工程をマクロ化したいのです。ファイルを順に開いていく処理はマクロ化できるのですが、書かれたVBAコードのチェックをどうしたらよいか悩んでいます。 「VBAコードに対して検索する」または「VBAコードを1行ずつ変数に代入する」、「モジュールシートをテキストファイルに出力する」などの処理が自動化できれば対応できそうなのですが、そのような処理をExcelVBAで作成できるでしょうか。 なお環境はWindowsXPのExcel2003です。 よろしくお願いいたします。

  • htmlで保存したものをもとにmhtで保存したい

     WinXP,IE8です。  ネットのページを「名前を付けて保存」する場合、保存形式にはhtml形式とmht形式があります。  ところで、ネットから直にmhtで保存したものと、一旦html形式で保存したものを再度開き、それをmht形式で保存したものとは同じではないようですが、なぜでしょうか。つまり、後者のほうは、スタイルシートが欠けたような見え方をして使い物にならないのです。  過去htmlで保存したものをmhtに変換して保存し直したいのですが、もはや不可能でしょうか。

  • Excel VBA ファイルをまとめる

    Excel2003にてフォルダにある複数ファイル(8個)の各1番左のシートを 指定したファイルにまとめるVBAを組みたいと思います。 まとめる際、ファイル名の一部を取得し、シート名にしたいのですが可能でしょうか? 例: ファイル名:20110927_△△△△株式会社.xls ⇒ シート名:△△△△株式会社 ※ファイルの個数は固定ですが、年月の部分は変わります。 簡単なVBAの経験しかなく、キーワード検索でもしっくりこないものばかりで どのようにコードを記述してよいのか非常に困っています。

  • VBAオブジェクト変数またはWithブロック変数

    Access VBAについてお教えください。 VBAを使用しています。下記のようなコードでDOMの値を取得しようと思っています。 If IsNull(IE.Document.getElementsByTagName("table").Item(1).rows(1).cells(0).innerText) Or _ IE.Document.getElementsByTagName("table").Item(1).rows(1).cells(0).innerText = "" Then stocker = "" Else stocker = IE.Document.getElementsByTagName("table").Item(1).rows(1).cells(0).innerText End If IE.Document.getElementsByTagName("table").Item(1).rows(1).cells(0).innerText)にデータがある場合は、 問題なくstockerに値をセットすることができます。 ただし、IE.Document.getElementsByTagName("table").Item(1).rows(1).cells(0).innerText)にデータ(要素)が なにも無い場合は、エラーが発生します。 「実行時エラー91;オブジェクト変数またはWithブロック変数が設定されていません」 IE.Document.getElementsByTagName("table").Item(1).rows(1).cells(0).innerText)にデータが無い場合は、NULLが 帰ってくるとサイトで見かけたので、IF文を使って回避しようと思いましたが、成功しませんでした。 何が悪いと考えられるでしょうか?

  • excelのシートからVBAを除いて書き出し

    特定のExcelのシート(以後、出力シート)だけを予め指定したファイルへexcel形式で書き出したいです。 そのとき、出力シートにはボタンやボタンに関連付けされたVBAプログラムがあるのですが、それらのボタンやシートに関連付けされたVBAは書き出さずに、純粋に各セルに記載されている内容と罫線情報だけを書き出したいです。 出力シートにはVBAを残したくないのが理由ですが、上記のような書き出しをするにはどのようにすればよいのでしょうか。

  • (VBA)フォルダの中の複数のテキストファイルをエクセルに取り込みたい

    フォルダの中に複数のテキストファイルがあります。 それをVBAで1シートに1テキストファイルづつで取り込んで(区切り文字(#)、列のデータ形式(文字列)を指定して)作成済みのマクロを実行し、出力させたいのですが。。 データが大きいので5シートで1つのファイルにしたいです。フォルダの中にはテキストファイルが100ほどあるので、結果、エクセルファイルが20できればいいのですが。。 できればデスクトップに新しいフォルダが作成されてその中に出力されていくようにしたいです。 お力を貸してください。よろしくお願いします。

  • エクセル、VBA、抽出複数検索について

    エクセル、VBA、VLOOKUP、MATCH関数等について出来る方法があれば教えてください。 インチごとに分けてあるシートがあり、(在庫表です) これを参照して、別ブックへVLOOKUP等を使って、サンプルデータのシート4のように表示させたいのですが、 何か方法を使って出来ることは可能でしょうか? 問題点が複数あります 1、VLOOKUPの範囲について、B列が結合されていて、C列は複数行あるため、商品名が入ってきません。 C列については、何千件とデータがあるため、結合することは不可能です。 一致している条件としては商品コードが必ずあり、商品名には「/」が入っております。 =CONCATENATEとVLOOKUPは一緒に使うことは可能ですか? もしくはINDEX関数やIF、SUMPRODUCT等を使うのでしょうか? シート4のような形に出来る方法があれば、教えてほしいです。 VBAは詳しくはないのですが、VBAで出来るのであれば、教えてほしいです。 在庫表はとても作り方が悪いのですが、これを作り直すと言うことは、不可能です。 グループ会社で使っているため、なんとかこの在庫表を使いたいです。 VBAでA列をA5からA100にコードのみ入れた場合、B列に商品名が入るようにVBAで作ることは可能でしょうか? もしくは、検索条件を2つ使って、一つは商品コード完全一致+あいまい検索で【/】で商品名を入れることは可能でしょうか? 関数は調べたのですが、関数では難しいのかなと思います。 宜しくお願い致します。

  • エクセルVBA ブラウザのコントロールについて

    VBでIEオブジェクトを使用、yahooのとあるページを表示し、 その中の 「ダウンロード」ボタンを押すとcsvファイルをDLするプログラムを作っています。(vista、IE8) For Each objLINK In objIE.Document.Links If objLINK.InnerTEXT = "ダウンロード" Then objLINK2.Click Exit For End If Next ここで、「ファイルのダウンロード」メッセージ   開く(O) 保存(S) キャンセル が表示されるのですが、表示されたとたんにVBAから制御できなくなります。 どうすればボタンを押せるのでしょうか? なお、普通にIEオブジェクトを作ると、ダウンロードのボタンすら押せなかったので、 こちらの三流君様のページを参考にして、ユーザーフォームの中でIEオブジェクトを作っています。http://www.ken3.org/cgi-bin/group/vba_ie7.asp よろしくお願いいたします。

  • 複数のファイルよりシートの検索を行うには

    お世話になっております。 以下のような事をおこないたいのですが、VBAで可能でしょうか? (1)ファイルAのボタンを押す (2)複数のファイルを開く (3)入力した案件コード名のシートが存在するファイルを選択する (4)存在したシートの値をファイルAにコピーする (1)及び(2)、(4)については個々の動きではありますが 実行できる事はわかったのですが、(3)の部分に ついてはどうやったらいいのかが分からない状態です。 背景 現在、会社にて部署別の案件管理をしているのですが、現在は、対象部署が1つしかないので、ファイルAのVBA上に対象ファイルを記述しているのですが、今後対象部署が増えるので今後の事も考慮し、対象ファイルをソース上に記入した場合、組織改正毎に修正するのが大変なので、絶対に重複しない案件コードで対象ファイルを選択して情報をコピーする事ができれば、メンテナンスの面からも楽だと思い、 このような事ができないかと思案しております。 決まった1ファイルのみを選択して、入力したコード名のシートを選択しコピーする事はできるのですが、複数のファイルを開いた場合どのようにVBAを記述すればよいかわからなく、困っております。 お忙しいところ申し訳ありませんが、宜しくお願い致します。

  • エクセルシートのファイルエクスポートについて

    エクセルの住所ファイル(複数行)を編集して、CSVファイル形式で1件単位に出力したいのですが、よいアイデアはありませんか? エクセルシートが下記の形式であります。CSV形式で単純出力すると行単位で改行されて出力されますが、複数行をまとめて1件のCSVファイルに出力し、アクセスに取り込みたいのですが、よいアイデア、サンプルPGMはありませんか?エクセルシートには特に関数、制御文字等は指定しておりませんが、1件データの終了行(6行目、11行名…)に制御項目を事前セットすること必要であれば、マクロ等でセットします。 1行目 ××住所録, 2行目 yyyy/mm/DD,(作成日) (※1行目と2行目は取り込まない) 3行目 氏名,田中,社員番号,1234567,所属コード,1000,所属名,営業部 4行目 郵便番号,123-4567,住所,東京都千代田区内神田1-1-1 5行目 電話番号,03-1234-5678,FAX番号,03-1234-5678 6行目 任意コメント欄,重要キーマン, 8行目 氏名,山田,社員番号,1234568,所属コード,2000,所属名,法務部 9行目 郵便番号, 以降約50件のデータが続く(※1行飛ばして、1件4行で編集されているシート) 出力方法  各行のデータ項目(田中,1234567,1000,営業部,123-4567,(住所),…)を出力 VB若葉マークであり、「FileSystemObject」を活用したらとの助言は頂きましたが、検索しましたが類似機能にヒットしませんでした。よろしくお願いします。

このQ&Aのポイント
  • 「廃インク吸収パッド満杯」と表示された場合のトラブル解決方法とは?
  • お使いの環境や接続方法によっては、廃インク吸収パッドが満杯になる場合があります。
  • パソコンやスマートフォンのOS、接続方法、関連するソフトやアプリによって解決策が異なるので、詳細をご提供ください。
回答を見る