• ベストアンサー

VBA 検索方法

VBA初心者です。よろしくお願いいたします。 ・VBAを保存するファイル名:aa.xls ・参照したいデータが保存してあるファイル名:bb.xls bb.xlsのファイルに下記のデータが保存されている場合 A列  B列 14:00  A 13:00  14:00   検索したい条件は「A列に時間が入力されているがB列は空欄のセル名」を 「aa.xls」のA2→B2~E2順に反映。 上記データからは、 A2にB3、B2にB4と入力されるようにお願いします。 回答お待ちしています。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

aa.xls と bb.xls は同時に開いてる。 両方とも対象は一番左のシートである。 って条件です。エラー処理はしてません。 Sub Test() Dim tr As Range, r As Range, i As Integer i = 1 With Workbooks("bb.xls").Worksheets(1) Set tr = .Range(.Range("A2"), .Range("A65536").End(xlUp)) For Each r In tr   If r.Value <> "" And r.Offset(0, 1).Value = "" Then    ThisWorkbook.Worksheets(1).Cells(2, i).Value = _    r.Offset(0, 1).Address(0, 0)    i = i + 1   End If Next r End With End Sub

1stella1
質問者

お礼

ありがとうございました。大変助かりました。 お礼遅くなり申し訳ございません。

関連するQ&A

  • エクセルVBAのプログラム

    A.xlsからB.xlsのファイル(最初はA..xlsのみが開いています)へのデータ転送をしたいのですが、プログラムが組めません(>n<)  すみませんが誰か助けてください。 行いたい作業は以下の通りです。 ※デスクトップにあるB.xlsを開く ※A.xlsのセル「A1~A5」をコピーしてB.xlsのAの列の列で空欄の行を見つけて、列と行を入れ替えて貼り付ける(もしB.xlsのA10までデータが入力されていたら、貼り付ける場所はA11~F11になります) ※B.xlsは作業終了後自動保存して閉じる その際に ※A.xlsのセル「A1」にはデータ名が記入されているのでB.xlsのAの列にその名前があれば、そこに上書きする形にしたい。 ※A.xlsのA2のセルには「55,23」のように二つの数字が「,」でつながって入力されているので、B.xlsに貼り付けるときには、二つのセルにわけてそれぞれの数字を貼り付けたい。 お手数おかけしますがよろしくお願いいたします。

  • EXCEL- VBA(CSVファイル→インポート)

    A列~F列になる複数(100個以上)のCSVファイルをエクセルファイルにインポートして更に個別にエクセルファイルとして保存したいのですが VBAでできるのでしょうか? 記憶マクロでやったらどうにもうまくいきません。 エクセルのVBAについては ほとんど知識ゼロなので困っております。 大変厚かましくありますが どなた様かご教授お願いできたらと思います!! 【元のファイルの状態】   ◆ファイル名「*.CSV」*は文字数それぞれ違います。   <例:tanaka.xls だったり 09福島.xls>  ◆入っているドライブ   TEXT;C:\Documents and Settings\AA_B\デスクトップ\練習  ◆A~F列にデータが入っている 【やりたいこと】    (1)A~F列はカンマ区切りで全て文字列としたい  (2)元のファイル名でエクセルとして保存したい「*.XLS」

  • エクセル2003のVBAを教えて

    エクセル2003のVBAを教えてください。 次の対象データで、(1)(2)(3)の作業が出来るエクセルVBAを教えて下さい。 (1)(2)(3)個々のVBAでお願いします。 ●対象データ:種類(A列)、文字(B列)、    データの行数:不特定なので、データのある最終行までとします。 ●教えていただきたい項目  (1):種類だけを(C列)に取り出す。  (2):種類の先頭に空白の行を3行入れて、追加の2行目の種類(A列)に文字(B列)を入れる。  (3):種類が5行以上あるときは、5行ごとに空白行を追加する。 ●対象データ 種類(A列)   文字(B列) AA       あああ BB       いいい BB       いい BB       いいい CC       うう CC       うう DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ DD       ええええ ●(1)のVBAの結果(このようになるVBAを教えてください。) (C列) AA BB CC DD ●(2)、(3)のVBAの結果(このようになるVBAを教えてください。) 種類(A列)    文字(B列) あああ AA        あああ いいい BB        いいい BB        いいい BB        いいい うう CC        うう CC        うう ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ DD        ええええ

  • エクセルVBAでテキストファイルにして保存する方法

    エクセル「Sheet2」のA列、C列、D列にそれぞれ100個の文字列が入力されています。 B列は空欄になっています。 (作業内容) C列とD列のデータを結合して、B列に入力 A1~B100のデータを1つのテキストファイルとして保存する。 ファイル名はその都度指定する。 よろしくお願い申し上げます。

  • エクセル VBAでこれは難しいですか?

    列 A B C D 行 1 T1 あ 1 2 2 T2 い 4 5 3 T3 う 7 5 分かりにくいかもしれませんが、上記のような表があるとします。ファイル名:AA.xlsとします。 ”行1”の「T1」や「あ」等はファイルにより違うとします。 1つのファイルの1シートにこういった表が改ページにより(ある領域で1,2ページとしている)たくさんあります。 これを必要な行、列をVBAで作成されたボックス?に入力方式で行、列を入力して、入力された例えば"B"列が削除され、その部分は左詰にされ、そのファイルが新しく別のファイル名で例えばAB.xlsが自動的に作成することは可能でしょうか? 手順としては 1 ファイルにより必要、不要な列・行が違うのであらかじめ削除する列・行を確認する。(このファイルをA1.xlsとする) 2 実行したいファイルを参照で(任意のフォルダに進めるよう)読み込めるようにしたVBAを開き、A1.xlsを選択する。 3 削除したい列・行を入力できる窓があり、そこに打ち込む。 4 削除した列・行のスペース分左詰め、上詰めにされたA2.xlsというファイルが同一フォルダ内に作成される。 VBAは全くの初心者で、インターネットで勉強を始めようとしている青二才です。 最終的にはこれ以上のことをしたいですが、まずは最低限これをしたいです。 余談ですが、これができるようになるためにはやはり一から勉強をするしかないのでしょうか? 今したいことがずばり載っている入門書のそのページだけ勉強しても不可能でしょうか? ・PS3のあるゲームのキャラクターの必殺技のコマンドを覚えても、まずPS3をどうやって起動するのか? という考えと一緒でしょうか?

  • 【VBA】同一ディレクトリ内のファイル名取得とA列

    【VBA】同一ディレクトリ内のファイル名取得とA列、B列のコピペ A.xlsに同一ディレクトリ内にあるyyyymmdd.csvファイルを順に読み取り A.xlsの A1に対象ファイル名 B列に対象ファイル内のA列をコピペ C列に対象ファイル内のB列をコピペ 次のファイルはD1 その次はG1 ・ ・ といった処理をさせたいです。 どのように記述すればよいでしょうか。 よろしくお願いしますm(._.)m

  • エクセルVBAについて (データのマッチング)

    過去ログで解決できなかったのでここに書かせていただきます。 エクセルのVBで下記のプログラムを作成したいのですがうまくマクロが組めません。 ファイル名:TEST01.xls ファイル名:TEST02.xls があります。 TEST01.xlsにあるA列のデータとTEST02.xlsのA列にあるデータが一致したおり、かつTEST02.xlsのD列のデータが『×』の場合のみ、TEST01.xlsのB列に固定の文字(test)を入力し、TEST01.xlsのC列に入力されているデータを削除するプログラムを作りたいです。 ご存知の方がいらっしゃれば、ご教授よろしくお願い致します。

  • エクセル2000マクロ検索方法

    Aのファイル a.xls シート名 aaa Bのファイル b.xls シート名 bbb Aのファイルに下記のデータベースがあります。   A列 B列   0001 100   0002 200   0004 300 Bのファイルに下記のデータベースがあります。   A列 B列   0001 300   0002 200    抽出条件方法 AのファイルとBのファイルのA列を参照して違うものだけを、Aのファイルから 別のファイルに取り出す方法をマクロでの記述方法を教えてください。 別のファイルに取り出すデータは、下記の通リです。   A列 B列   0004 300 以上よろしくお願いします。

  • excelVBA でA+B列をファイル書き出し

    excel2003の VBA で、開いているシートのA列(項目行)とB列(データ)を抜粋してB列の1行目のセルに入力されているデータをファイル名として新しいEXCELファイル(B列の1行目のセルに入力されているデータ.xls)として書き出したいのです。また、B列以降も、A列+C列で1ファイル、A列+D列で1ファイル・・・のように列にデータが記載されているまでファイルとして書き出したいのです。 このような書き出しVBAを教えて下さい。宜しくお願いします。

  • VBAについての質問です、お願いします。

    VBA初心者のものです。 Excelで毎日コピペが大変なので、VBAをネットで調べるもののまったく上手くいきません。 どうかシステムが得意な方、教えて頂けませんか? 要件は Bデータ.xlsとCデータ.xlsとDデータ.xlstとEデータ.xlsの各sheet1のA1からZ100セルの データをAデータ.xlsのsheet1に各データ順にコピー&ペーストしてならべたいのです。 イメージは、 Aデータのエクセルを開いて、マクロボタンを押す。 そうすると、各B・C・D・Eのエクセルが自動的に開いてそれぞれのsheet1のA1からZ100セル をコピーします。 各B・C・D・Eのエクセルが自動的に閉じます。 各B・C・D・Eのエクセルの各データが、 Aデータのsheet1に、すべてのデータが順にコピーされる手順です。 できれば、ファイルサーバーにエクセルを保存しているので、 その点も加味いただけると嬉しいです。 (初心者なので、マクロの構文を書いて頂ける場合に、ファイルとかシートを自分で 設定する場合があるときには、説明文を頂けると嬉しいです。) 以上、宜しくお願い致します。

専門家に質問してみよう